On Thu, Jun 07, 2012 at 01:08:29PM +0200, Michael Hanselmann wrote: > In some QA environments static MAC addresses must be used. > > Signed-off-by: Michael Hanselmann <[email protected]> > --- > qa/qa-sample.json | 10 ++++++++-- > qa/qa_config.py | 8 ++++++++ > qa/qa_instance.py | 11 +++++++---- > qa/qa_rapi.py | 4 +++- > 4 files changed, 26 insertions(+), 7 deletions(-) > > diff --git a/qa/qa-sample.json b/qa/qa-sample.json > index 82f9c6c..0769d08 100644 > --- a/qa/qa-sample.json > +++ b/qa/qa-sample.json > @@ -45,10 +45,16 @@ > > "instances": [ > { > - "name": "xen-test-inst1" > + "name": "xen-test-inst1", > + > + "# Static MAC address": null, > + "#nic.mac/0": "AA:00:00:11:11:11" > }, > { > - "name": "xen-test-inst2" > + "name": "xen-test-inst2", > + > + "# Static MAC address": null, > + "#nic.mac/0": "AA:00:00:22:22:22" > } > ], > > diff --git a/qa/qa_config.py b/qa/qa_config.py > index 48a8a11..dda2ad1 100644 > --- a/qa/qa_config.py > +++ b/qa/qa_config.py > @@ -25,6 +25,7 @@ > > import os > > +from ganeti import constants > from ganeti import utils > from ganeti import serializer > from ganeti import compat > @@ -154,6 +155,13 @@ def GetInstanceCheckScript(): > return cfg.get(_INSTANCE_CHECK_KEY, None) > > > +def GetInstanceNicMac(inst): > + """Returns MAC address for instance's network interface. > + > + """ > + return inst.get("nic.mac/0", constants.VALUE_GENERATE) > + > + > def GetMasterNode(): > return cfg["nodes"][0] > > diff --git a/qa/qa_instance.py b/qa/qa_instance.py > index e6fd4f4..811d653 100644 > --- a/qa/qa_instance.py > +++ b/qa/qa_instance.py > @@ -42,7 +42,7 @@ def _GetDiskStatePath(disk): > return "/sys/block/%s/device/state" % disk > > > -def _GetGenericAddParameters(): > +def _GetGenericAddParameters(inst): > params = ["-B"] > params.append("%s=%s,%s=%s" % (constants.BE_MINMEM, > qa_config.get(constants.BE_MINMEM), > @@ -50,6 +50,10 @@ def _GetGenericAddParameters(): > qa_config.get(constants.BE_MAXMEM))) > for idx, size in enumerate(qa_config.get("disk")): > params.extend(["--disk", "%s:size=%s" % (idx, size)]) > + > + # All QA instances have exactly one network interface > + params.extend(["--net", "0:mac=%s" % qa_config.GetInstanceNicMac(inst)])
Hmm, I would prefer if we only add this parameter if the value is defined (not None), and then you can drop the import constants too. Rest LGTM, thanks. iustin
