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

Reply via email to