Hunt Xu has uploaded a new change for review.

Change subject: setup: allow specifying MAC range during setup
......................................................................

setup: allow specifying MAC range during setup

By default the setup script automatically generates a MAC range
for the MAC pool which contains 256 MAC addresses. However it is
not enough for a larger scale. Therefore it's better to make the
MAC range configurable while setting up.

Change-Id: Ie39a44af437afb9f752be1f824d964a7d52fb5ff
Signed-off-by: huntxu <mhun...@gmail.com>
---
M packaging/fedora/setup/engine-setup.py
M packaging/fedora/setup/engine_validators.py
M packaging/fedora/setup/output_messages.py
3 files changed, 18 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/8670/1

diff --git a/packaging/fedora/setup/engine-setup.py 
b/packaging/fedora/setup/engine-setup.py
index 0e6a872..2740d6e 100755
--- a/packaging/fedora/setup/engine-setup.py
+++ b/packaging/fedora/setup/engine-setup.py
@@ -257,14 +257,14 @@
          "ALL_PARAMS" : [
              {  "CMD_OPTION"      :"mac-range",
                 "USAGE"           
:output_messages.INFO_CONF_PARAMS_MAC_RANGE_USAGE,
-                "PROMPT"          
:output_messages.INFO_CONF_PARAMS_MAC_RANG_PROMPT,
+                "PROMPT"          
:output_messages.INFO_CONF_PARAMS_MAC_RANGE_PROMPT,
                 "OPTION_LIST"     :[],
-                "VALIDATION_FUNC" :validate.validateStringNotEmpty,
+                "VALIDATION_FUNC" :validate.validateMacRange,
                 "DEFAULT_VALUE"   : utils.generateMacRange(),
                 "MASK_INPUT"      : False,
                 "LOOSE_VALIDATION": False,
                 "CONF_NAME"       : "MAC_RANGE",
-                "USE_DEFAULT"     : True,
+                "USE_DEFAULT"     : False,
                 "NEED_CONFIRM"    : False,
                 "CONDITION"       : False},
 
@@ -1084,7 +1084,7 @@
             "SysPrep2K8R2Path":["/etc/ovirt-engine/sysprep/sysprep.2k8", 
'text'],
             "SysPrepWindows7Path":["/etc/ovirt-engine/sysprep/sysprep.w7", 
'text'],
             
"SysPrepWindows7x64Path":["/etc/ovirt-engine/sysprep/sysprep.w7x64", 'text'],
-            "MacPoolRanges":[controller.CONF["MAC_RANGE"], 'text'],
+            "MacPoolRanges":[controller.CONF["MAC_RANGE"].upper(), 'text'],
             "InstallVds":["true", 'text'],
             "ConfigDir":["/etc/ovirt-engine", 'text'],
             "DataDir":["/usr/share/ovirt-engine", 'text'],
diff --git a/packaging/fedora/setup/engine_validators.py 
b/packaging/fedora/setup/engine_validators.py
index 9090e1c..37421b2 100644
--- a/packaging/fedora/setup/engine_validators.py
+++ b/packaging/fedora/setup/engine_validators.py
@@ -149,6 +149,18 @@
 
     return False
 
+def validateMacRange(param, options = []):
+    logging.debug("Validating %s as a valid MAC range" % (param))
+    pattern = 
re.compile("^([\da-fA-F]{2}:){5}[\da-fA-F]{2}-([\da-fA-F]{2}:){5}[\da-fA-F]{2}$")
+    mac_range = pattern.match(param)
+    if mac_range:
+        range_parts = [p.replace(':', '') for p in param.split('-')]
+        if int(range_parts[0], 16) < int(range_parts[1], 16):
+            return True
+    logging.warn("validateMacRange('%s') - failed" % (param))
+    print output_messages.INFO_VAL_MAC_RANGE_INVALID
+    return False
+
 def validateStringNotEmpty(param, options=[]):
     if type(param) != types.StringType or len(param) == 0:
         logging.warn("validateStringNotEmpty('%s') - failed" %(param))
diff --git a/packaging/fedora/setup/output_messages.py 
b/packaging/fedora/setup/output_messages.py
index ecca950..8050c44 100644
--- a/packaging/fedora/setup/output_messages.py
+++ b/packaging/fedora/setup/output_messages.py
@@ -131,7 +131,7 @@
 INFO_CONF_PARAMS_NFS_DESC_USAGE="ISO Domain name"
 INFO_CONF_PARAMS_NFS_DESC_PROMPT="Display name for the ISO Domain"
 INFO_CONF_PARAMS_MAC_RANGE_USAGE="MAC range for the virtual machines, e.g. 
00:11:22:33:44:00-00:11:22:33:44:FF"
-INFO_CONF_PARAMS_MAC_RANG_PROMPT="MAC range for the virtual machines"
+INFO_CONF_PARAMS_MAC_RANGE_PROMPT="MAC range for the virtual machines"
 INFO_CONF_PARAMS_DB_PASSWD_USAGE="Password for the local database 
administrator"
 INFO_CONF_PARAMS_DB_PASSWD_PROMPT="Enter a password for a local %s DB admin 
user (%s)" % (basedefs.APP_NAME, basedefs.DB_USER)
 INFO_CONF_PARAMS_PASSWD_CONFIRM_PROMPT="Confirm password"
@@ -163,6 +163,7 @@
 INFO_VAL_CHOOSE_PORT = "Please choose a different port."
 INFO_VAL_FAILED_ADD_PORT_TO_HTTP_POLICY="Error: failed adding port %d to " + 
basedefs.HTTP_PORT_POLICY + " because it is \
 already preallocated in selinux."
+INFO_VAL_MAC_RANGE_INVALID="Invalid MAC range for the virtual machines"
 INFO_VAL_STRING_EMPTY="Error: can't accept an empty answer for param"
 INFO_VAL_NOT_IN_OPTIONS="Error: response is not part of the following accepted 
answers: %s"
 INFO_VAL_NOT_DOMAIN="Error: domain is not a valid domain name"


--
To view, visit http://gerrit.ovirt.org/8670
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie39a44af437afb9f752be1f824d964a7d52fb5ff
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Hunt Xu <mhun...@gmail.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to