---
lib/cli.py | 4 ++--
lib/cmdlib.py | 6 +++++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/cli.py b/lib/cli.py
index e18ebb2..5e811b5 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -1396,7 +1396,7 @@ def GenericInstanceCreate(mode, opts, args):
if opts.nics:
try:
- nic_max = max(int(nidx[0])+1 for nidx in opts.nics)
+ nic_max = max(int(nidx[0]) + 1 for nidx in opts.nics)
except ValueError, err:
raise errors.OpPrereqError("Invalid NIC index passed: %s" % str(err))
nics = [{}] * nic_max
@@ -1427,7 +1427,7 @@ def GenericInstanceCreate(mode, opts, args):
if opts.sd_size is not None:
opts.disks = [(0, {"size": opts.sd_size})]
try:
- disk_max = max(int(didx[0])+1 for didx in opts.disks)
+ disk_max = max(int(didx[0]) + 1 for didx in opts.disks)
except ValueError, err:
raise errors.OpPrereqError("Invalid disk index passed: %s" % str(err))
disks = [{}] * disk_max
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 7ed082e..d5bc1ac 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -7671,10 +7671,14 @@ class LUSetInstanceParams(LogicalUnit):
continue
if nic_op != constants.DDM_ADD:
# an existing nic
+ if not instance.nics:
+ raise errors.OpPrereqError("Invalid NIC index %s, instance has"
+ " no NICs" % nic_op,
+ errors.ECODE_INVAL)
if nic_op < 0 or nic_op >= len(instance.nics):
raise errors.OpPrereqError("Invalid NIC index %s, valid values"
" are 0 to %d" %
- (nic_op, len(instance.nics)),
+ (nic_op, len(instance.nics) - 1),
errors.ECODE_INVAL)
old_nic_params = instance.nics[nic_op].nicparams
old_nic_ip = instance.nics[nic_op].ip
--
1.6.4.3