On Tue, 2008-08-05 at 16:39 -0400, bkearney@xxxxxxxxxx wrote: > diff -r 6a207373b908 -r d9910a83bbf6 virtinst/cli.py > --- a/virtinst/cli.py Tue Jul 29 11:21:07 2008 -0400 > +++ b/virtinst/cli.py Mon Aug 04 15:00:25 2008 -0400 > @@ -262,41 +262,41 @@ > fail(_("Unknown network type ") + network) > guest.nics.append(n) > > -def digest_networks(macs, bridges, networks): > +def digest_networks(macs, bridges, networks, nics = 1): > if type(bridges) != list and bridges != None: > bridges = [ bridges ] > > - if type(macs) != list and macs != None: > + if macs is None: > + macs = [] > + elif type(macs) != list: > macs = [ macs ] > - > - if type(networks) != list and networks != None: > - networks = [ networks ] > + > + if networks is None: > + networks = [] > + elif type(networks) != list: > + networks = [ macs ] > > if bridges is not None and networks != None: > fail(_("Cannot mix both --bridge and --network arguments")) > > - # ensure we have equal length lists > + > if bridges != None: > networks = map(lambda b: "bridge:" + b, bridges) > - > - if networks != None: > - if macs != None: > - if len(macs) != len(networks): > - fail(_("Need to pass equal numbers of networks & mac addresses")) > - else: > - macs = [ None ] * len(networks) > - else: > - if os.getuid() == 0: > - net = util.default_network() > - networks = [net[0] + ":" + net[1]] > - else: > - networks = ["user"] > - if macs != None: > - if len(macs) > 1: > - fail(_("Need to pass equal numbers of networks & mac addresses")) > - else: > - macs = [ None ] > - > + > + # ensure we have equal length lists > + if len(macs) != len(networks): > + fail(_("Need to pass equal numbers of networks & mac addresses")) > + > + # Create extra networks up to the number of nics requested > + if len(macs) < nics: > + for cnt in range(len(macs),nics): > + if os.getuid() == 0: > + net = util.default_network() > + networks.append(net[0] + ":" + net[1]) > + else: > + networks.append("user") > + macs.append(None) > + > return (macs, networks) I didn't notice this the first time through: it used to be that you could just specify the network/bridge to connect to, without giving an explicit MAC (so that you use a random MAC) We definitely want to keep that ability. I think the above should be changed so that the behavior is (1) you need to specify nnics networks and/or bridges (2) you may specify up to nnics explicit MACS, with the meaning that successive -w and -b options talk about successive interfaces, and explicit MACS are assigned to them in sequence. For interfaces that don't have an explicit MAC assigned, we'll generate a random MAC. For example, virt-image -b br0 -w default -m 00:16:.. would connect the first interface to the bridge 'br0' on the host, and the second interface to the 'default' network. The first interface would get the explicit MAC assigned, whereas the second one would get some random MAC. David _______________________________________________ et-mgmt-tools mailing list et-mgmt-tools@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/et-mgmt-tools