diff --git a/packstack/plugins/nova_300.py b/packstack/plugins/nova_300.py index 0102c2442..39da6792b 100644 --- a/packstack/plugins/nova_300.py +++ b/packstack/plugins/nova_300.py @@ -180,6 +180,18 @@ def initConfig(controllerObject): "USE_DEFAULT" : False, "NEED_CONFIRM" : False, "CONDITION" : False }, + {"CMD_OPTION" : "novanetwork-auto-assign-floating-ip", + "USAGE" : "Automatically assign a floating IP to new instances", + "PROMPT" : "Should new instances automatically have a floating IP assigned?", + "OPTION_LIST" : ["y", "n"], + "VALIDATORS" : [validators.validate_options], + "DEFAULT_VALUE" : "n", + "MASK_INPUT" : False, + "LOOSE_VALIDATION": False, + "CONF_NAME" : "CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP", + "USE_DEFAULT" : False, + "NEED_CONFIRM" : False, + "CONDITION" : False }, {"CMD_OPTION" : "novasched-host", "USAGE" : "The IP address of the server on which to install the Nova Scheduler service", "PROMPT" : "Enter the IP address of the Nova Scheduler service", @@ -333,6 +345,11 @@ def createnetworkmanifest(): # just warn user to do it by himself controller.MESSAGES.append(str(ScriptRuntimeError)) + if controller.CONF['CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP'] == "y": + controller.CONF['CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP'] = True + else: + controller.CONF['CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP'] = False + manifestfile = "%s_nova.pp" % host manifestdata = getManifestTemplate("nova_network.pp") appendManifestFile(manifestfile, manifestdata) diff --git a/packstack/puppet/templates/nova_network.pp b/packstack/puppet/templates/nova_network.pp index c20868215..899510a09 100644 --- a/packstack/puppet/templates/nova_network.pp +++ b/packstack/puppet/templates/nova_network.pp @@ -1,3 +1,6 @@ +nova_config{ + "DEFAULT/auto_assign_floating_ip": value => '%(CONFIG_NOVA_NETWORK_AUTOASSIGNFLOATINGIP)s'; +} class {"nova::network": enabled => true,