diff --git a/lib/cli.py b/lib/cli.py index 591926d53d3fab857af2a747479d4f04266fc9a5..08827061ab3c824b0b5fd44fd14b8b5621d82deb 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -1536,9 +1536,12 @@ def GenericInstanceCreate(mode, opts, args): elif opts.no_nics: # no nics nics = [] - else: + elif mode == constants.INSTANCE_CREATE: # default of one nic, all auto nics = [{}] + else: + # mode == import + nics = [] if opts.disk_template == constants.DT_DISKLESS: if opts.disks or opts.sd_size is not None: diff --git a/lib/cmdlib.py b/lib/cmdlib.py index ea404a7f7badf7daa492aa18f8a9ac7dec4b74c6..bb6a190e81cd7421a7acd5e45c10dc253202aba7 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -6278,6 +6278,17 @@ class LUCreateInstance(LogicalUnit): " is missing the disk information", errors.ECODE_INVAL) + if (not self.op.nics and + einfo.has_option(constants.INISECT_INS, "nic_count")): + nics = [] + for idx in range(einfo.getint(constants.INISECT_INS, "nic_count")): + ndict = {} + for name in list(constants.NICS_PARAMETERS) + ["ip", "mac"]: + v = einfo.get(constants.INISECT_INS, "nic%d_%s" % (idx, name)) + ndict[name] = v + nics.append(ndict) + self.op.nics = nics + if (self.op.hypervisor is None and einfo.has_option(constants.INISECT_INS, "hypervisor")): self.op.hypervisor = einfo.get(constants.INISECT_INS, "hypervisor")