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