Revision 08db7c5c scripts/gnt-instance

b/scripts/gnt-instance
293 293
  if opts.hypervisor:
294 294
    hypervisor, hvparams = opts.hypervisor
295 295

  
296
  if opts.nics:
297
    try:
298
      nic_max = max(int(nidx[0])+1 for nidx in opts.nics)
299
    except ValueError, err:
300
      raise errors.OpPrereqError("Invalid NIC index passed: %s" % str(err))
301
    nics = [{}] * nic_max
302
    for nidx, ndict in opts.nics.items():
303
      nidx = int(nidx)
304
      nics[nidx] = ndict
305
  else:
306
    # default of one nic, all auto
307
    nics = [{}]
308

  
309
  if not opts.disks and opts.disk_template != constants.DT_DISKLESS:
310
    raise errors.OpPrereqError("No disk information specified")
311
  elif opts.disks and opts.disk_template == constants.DT_DISKLESS:
312
    raise errors.OpPrereqError("Diskless instance but disk information passeD")
313
  else:
314
    try:
315
      disk_max = max(int(didx[0])+1 for didx in opts.disks)
316
    except ValueError, err:
317
      raise errors.OpPrereqError("Invalid disk index passed: %s" % str(err))
318
    disks = [{}] * disk_max
319
    for didx, ddict in opts.disks:
320
      didx = int(didx)
321
      if "size" not in ddict:
322
        raise errors.OpPrereqError("Missing size for disk %d" % didx)
323
      try:
324
        ddict["size"] = utils.ParseUnit(ddict["size"])
325
      except ValueError, err:
326
        raise errors.OpPrereqError("Invalid disk size for disk %d: %s" %
327
                                   (didx, err))
328
      disks[didx] = ddict
329

  
296 330
  ValidateBeParams(opts.beparams)
297 331

  
298 332
##  kernel_path = _TransformPath(opts.kernel_path)
......
308 342
##    hvm_cdrom_image_path = opts.hvm_cdrom_image_path
309 343

  
310 344
  op = opcodes.OpCreateInstance(instance_name=instance,
311
                                disk_size=opts.size, swap_size=opts.swap,
345
                                disks=disks,
312 346
                                disk_template=opts.disk_template,
347
                                nics=nics,
313 348
                                mode=constants.INSTANCE_CREATE,
314 349
                                os_type=opts.os, pnode=pnode,
315 350
                                snode=snode,
316
                                ip=opts.ip, bridge=opts.bridge,
317 351
                                start=opts.start, ip_check=opts.ip_check,
318 352
                                wait_for_sync=opts.wait_for_sync,
319
                                mac=opts.mac,
320 353
                                hypervisor=hypervisor,
321 354
                                hvparams=hvparams,
322 355
                                beparams=opts.beparams,
......
1075 1108
  make_option("-t", "--disk-template", dest="disk_template",
1076 1109
              help="Custom disk setup (diskless, file, plain or drbd)",
1077 1110
              default=None, metavar="TEMPL"),
1078
  make_option("-i", "--ip", dest="ip",
1079
              help="IP address ('none' [default], 'auto', or specify address)",
1080
              default='none', type="string", metavar="<ADDRESS>"),
1081
  make_option("--mac", dest="mac",
1082
              help="MAC address ('auto' [default], or specify address)",
1083
              default='auto', type="string", metavar="<MACADDRESS>"),
1111
  ikv_option("--disk", help="Disk information",
1112
             default=[], dest="disks",
1113
             action="append",
1114
             type="identkeyval"),
1115
  ikv_option("--net", help="NIC information",
1116
             default=[], dest="nics",
1117
             action="append",
1118
             type="identkeyval"),
1084 1119
  make_option("--no-wait-for-sync", dest="wait_for_sync", default=True,
1085 1120
              action="store_false", help="Don't wait for sync (DANGEROUS!)"),
1086
  make_option("-b", "--bridge", dest="bridge",
1087
              help="Bridge to connect this instance to",
1088
              default=None, metavar="<bridge>"),
1089 1121
  make_option("--no-start", dest="start", default=True,
1090 1122
              action="store_false", help="Don't start the instance after"
1091 1123
              " creation"),

Also available in: Unified diff