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