Single source of documentation

This patch adds feature for parsing docs/packstack.rst file for parameter
USAGE values.

Change-Id: Iea404e8ade657e82ac1e33ad3697180680c3633e
Closes-bug: rhbz#1199847
This commit is contained in:
Martin Mágr
2015-03-25 16:55:32 +01:00
parent b576673fb8
commit 9a347f80d5
24 changed files with 163 additions and 625 deletions

View File

@@ -16,9 +16,10 @@
This module provides all the predefined variables. This module provides all the predefined variables.
""" """
import os
import sys
import datetime import datetime
import os
import pkg_resources
import sys
import tempfile import tempfile
from .utils import get_current_user from .utils import get_current_user
@@ -28,7 +29,15 @@ APP_NAME = "Packstack"
FILE_YUM_VERSION_LOCK = "/etc/yum/pluginconf.d/versionlock.list" FILE_YUM_VERSION_LOCK = "/etc/yum/pluginconf.d/versionlock.list"
PACKSTACK_VAR_DIR = "/var/tmp/packstack" PACKSTACK_SRC_DOC = pkg_resources.resource_filename(
pkg_resources.Requirement.parse('packstack'), 'docs/packstack.rst'
)
if os.path.exists(PACKSTACK_SRC_DOC):
PACKSTACK_DOC = PACKSTACK_SRC_DOC
else:
PACKSTACK_DOC = '/usr/share/packstack/packstack.rst'
PACKSTACK_VAR_DIR = '/var/tmp/packstack'
try: try:
os.mkdir(PACKSTACK_VAR_DIR, 0o700) os.mkdir(PACKSTACK_VAR_DIR, 0o700)
except OSError: except OSError:

View File

@@ -851,7 +851,7 @@ def printOptions():
paramUsage = param.USAGE paramUsage = param.USAGE
optionsList = param.OPTION_LIST or "" optionsList = param.OPTION_LIST or ""
print("%s" % (("**%s**" % str(cmdOption)).ljust(30))) print("%s" % (("**%s**" % str(cmdOption)).ljust(30)))
print(" %s %s" % (paramUsage, optionsList) + "\n") print(" %s" % paramUsage + "\n")
def plugin_compare(x, y): def plugin_compare(x, y):

View File

@@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2015 Red Hat, Inc.
#
# Author: Martin Magr <mmagr@redhat.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
from docutils import core
# ------------------ helpers to locate option list ------------------ #
def _iter_by_titles(tree):
for i in tree.children:
i = i.asdom()
for child in i.childNodes:
if child.nodeName != 'title':
continue
if child.childNodes and child.childNodes[0].nodeValue:
title = child.childNodes[0].nodeValue
yield title, i
def _get_options(tree, section):
for title, node in _iter_by_titles(tree):
if title == section:
return node
# --------------------- helper to locate options -------------------- #
def _iter_options(section):
for subsection in section.childNodes:
for subsub in subsection.childNodes:
if subsub.nodeName != 'definition_list':
# TO-DO: log parsing warning
continue
for defitem in subsub.childNodes:
key_node = defitem.getElementsByTagName('strong')
val_node = defitem.getElementsByTagName('paragraph')
if not key_node or not val_node:
# TO-DO: log parsing warning
continue
key_node = key_node[0].childNodes[0]
val_node = val_node[0].childNodes[0]
yield key_node.nodeValue, val_node.nodeValue
# ----------------------------- interface --------------------------- #
_rst_cache = {}
def update_params_usage(path, params, opt_title='OPTIONS', sectioned=True):
"""Updates params dict with USAGE texts parsed from given rst file."""
def _update(section, rst):
for param in section:
if param['CONF_NAME'] not in rst:
# TO-DO: log warning
continue
param['USAGE'] = rst[param['CONF_NAME']]
if not _rst_cache:
tree = core.publish_doctree(
source=open(path).read().decode('utf-8'), source_path=path
)
for key, value in _iter_options(_get_options(tree, opt_title)):
_rst_cache.setdefault(key, value)
if sectioned:
for section in params.values():
_update(section, _rst_cache)
else:
_update(params, _rst_cache)

View File

@@ -16,11 +16,13 @@
Installs and configures AMQP Installs and configures AMQP
""" """
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.common import filtered_hosts from packstack.modules.common import filtered_hosts
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -34,8 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "amqp-backend", {"CMD_OPTION": "amqp-backend",
"USAGE": ("Set the AMQP service backend. Allowed values are: "
"qpid, rabbitmq"),
"PROMPT": "Set the AMQP service backend", "PROMPT": "Set the AMQP service backend",
"OPTION_LIST": ["qpid", "rabbitmq"], "OPTION_LIST": ["qpid", "rabbitmq"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -49,8 +49,6 @@ def initConfig(controller):
"DEPRECATES": ['CONFIG_AMQP_SERVER']}, "DEPRECATES": ['CONFIG_AMQP_SERVER']},
{"CMD_OPTION": "amqp-host", {"CMD_OPTION": "amqp-host",
"USAGE": ("The IP address of the server on which to install the "
"AMQP service"),
"PROMPT": "Enter the IP address of the AMQP service", "PROMPT": "Enter the IP address of the AMQP service",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ssh], "VALIDATORS": [validators.validate_ssh],
@@ -63,7 +61,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-enable-ssl", {"CMD_OPTION": "amqp-enable-ssl",
"USAGE": "Enable SSL for the AMQP service",
"PROMPT": "Enable SSL for the AMQP service?", "PROMPT": "Enable SSL for the AMQP service?",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -76,7 +73,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-enable-auth", {"CMD_OPTION": "amqp-enable-auth",
"USAGE": "Enable Authentication for the AMQP service",
"PROMPT": "Enable Authentication for the AMQP service?", "PROMPT": "Enable Authentication for the AMQP service?",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -88,6 +84,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "AMQP", group = {"GROUP_NAME": "AMQP",
"DESCRIPTION": "AMQP Config parameters", "DESCRIPTION": "AMQP Config parameters",
"PRE_CONDITION": False, "PRE_CONDITION": False,
@@ -98,8 +95,6 @@ def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "amqp-nss-certdb-pw", {"CMD_OPTION": "amqp-nss-certdb-pw",
"USAGE": ("The password for the NSS certificate database of the AMQP "
"service"),
"PROMPT": "Enter the password for NSS certificate database", "PROMPT": "Enter the password for NSS certificate database",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -113,8 +108,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-ssl-port", {"CMD_OPTION": "amqp-ssl-port",
"USAGE": ("The port in which the AMQP service listens to SSL "
"connections"),
"PROMPT": "Enter the SSL port for the AMQP service", "PROMPT": "Enter the SSL port for the AMQP service",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -127,8 +120,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-ssl-cacert-file", {"CMD_OPTION": "amqp-ssl-cacert-file",
"USAGE": ("The filename of the CAcertificate that the AMQP service "
"is going to use for verification"),
"PROMPT": ("Enter the filename of the SSL CAcertificate for the AMQP" "PROMPT": ("Enter the filename of the SSL CAcertificate for the AMQP"
" service"), " service"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -142,8 +133,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-ssl-cert-file", {"CMD_OPTION": "amqp-ssl-cert-file",
"USAGE": ("The filename of the certificate that the AMQP service "
"is going to use"),
"PROMPT": ("Enter the filename of the SSL certificate for the AMQP " "PROMPT": ("Enter the filename of the SSL certificate for the AMQP "
"service"), "service"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -157,8 +146,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-ssl-key-file", {"CMD_OPTION": "amqp-ssl-key-file",
"USAGE": ("The filename of the private key that the AMQP service "
"is going to use"),
"PROMPT": "Enter the private key filename", "PROMPT": "Enter the private key filename",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -171,7 +158,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-ssl-self-signed", {"CMD_OPTION": "amqp-ssl-self-signed",
"USAGE": "Auto Generates self signed SSL certificate and key",
"PROMPT": "Generate Self Signed SSL Certificate", "PROMPT": "Generate Self Signed SSL Certificate",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -183,6 +169,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "AMQPSSL", group = {"GROUP_NAME": "AMQPSSL",
"DESCRIPTION": "AMQP Config SSL parameters", "DESCRIPTION": "AMQP Config SSL parameters",
"PRE_CONDITION": "CONFIG_AMQP_ENABLE_SSL", "PRE_CONDITION": "CONFIG_AMQP_ENABLE_SSL",
@@ -193,7 +180,6 @@ def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "amqp-auth-user", {"CMD_OPTION": "amqp-auth-user",
"USAGE": "User for amqp authentication",
"PROMPT": "Enter the user for amqp authentication", "PROMPT": "Enter the user for amqp authentication",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -206,7 +192,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "amqp-auth-password", {"CMD_OPTION": "amqp-auth-password",
"USAGE": "Password for user authentication",
"PROMPT": "Enter the password for user authentication", "PROMPT": "Enter the password for user authentication",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -219,6 +204,7 @@ def initConfig(controller):
"NEED_CONFIRM": True, "NEED_CONFIRM": True,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "AMQPAUTH", group = {"GROUP_NAME": "AMQPAUTH",
"DESCRIPTION": "AMQP Config Athentication parameters", "DESCRIPTION": "AMQP Config Athentication parameters",
"PRE_CONDITION": "CONFIG_AMQP_ENABLE_AUTH", "PRE_CONDITION": "CONFIG_AMQP_ENABLE_AUTH",

View File

@@ -18,10 +18,13 @@ Installs and configures Ceilometer
import uuid import uuid
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer.utils import split_hosts from packstack.installer.utils import split_hosts
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -38,7 +41,6 @@ def initConfig(controller):
"CEILOMETER": [ "CEILOMETER": [
{"CONF_NAME": "CONFIG_CEILOMETER_SECRET", {"CONF_NAME": "CONFIG_CEILOMETER_SECRET",
"CMD_OPTION": "ceilometer-secret", "CMD_OPTION": "ceilometer-secret",
"USAGE": "Secret key for signing metering messages",
"PROMPT": "Enter the Ceilometer secret key", "PROMPT": "Enter the Ceilometer secret key",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -51,8 +53,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_CEILOMETER_KS_PW", {"CONF_NAME": "CONFIG_CEILOMETER_KS_PW",
"CMD_OPTION": "ceilometer-ks-passwd", "CMD_OPTION": "ceilometer-ks-passwd",
"USAGE": ("The password to use for Ceilometer to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Ceilometer Keystone access", "PROMPT": "Enter the password for the Ceilometer Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -66,7 +66,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_CEILOMETER_COORDINATION_BACKEND", {"CONF_NAME": "CONFIG_CEILOMETER_COORDINATION_BACKEND",
"CMD_OPTION": "ceilometer-coordination-backend", "CMD_OPTION": "ceilometer-coordination-backend",
"USAGE": "Backend driver for group membership coordination",
"PROMPT": "Enter the coordination driver", "PROMPT": "Enter the coordination driver",
"OPTION_LIST": ['redis', 'none'], "OPTION_LIST": ['redis', 'none'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -79,8 +78,6 @@ def initConfig(controller):
"MONGODB": [ "MONGODB": [
{"CMD_OPTION": "mongodb-host", {"CMD_OPTION": "mongodb-host",
"USAGE": ("The IP address of the server on which to install "
"MongoDB"),
"PROMPT": "Enter the IP address of the MongoDB server", "PROMPT": "Enter the IP address of the MongoDB server",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ssh], "VALIDATORS": [validators.validate_ssh],
@@ -94,8 +91,6 @@ def initConfig(controller):
], ],
"REDIS": [ "REDIS": [
{"CMD_OPTION": "redis-master-host", {"CMD_OPTION": "redis-master-host",
"USAGE": ("The IP address of the server on which to install "
"redis master server"),
"PROMPT": "Enter the IP address of the redis master server", "PROMPT": "Enter the IP address of the redis master server",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ssh], "VALIDATORS": [validators.validate_ssh],
@@ -108,7 +103,6 @@ def initConfig(controller):
"CONDITION": False, "CONDITION": False,
"DEPRECATES": ["CONFIG_REDIS_HOST"]}, "DEPRECATES": ["CONFIG_REDIS_HOST"]},
{"CMD_OPTION": "redis-port", {"CMD_OPTION": "redis-port",
"USAGE": "The port on which the redis server(s) listens",
"PROMPT": "Enter the port of the redis server(s)", "PROMPT": "Enter the port of the redis server(s)",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_port], "VALIDATORS": [validators.validate_port],
@@ -120,7 +114,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-ha", {"CMD_OPTION": "redis-ha",
"USAGE": "Should redis try to use HA",
"PROMPT": "Should redis try to use HA?", "PROMPT": "Should redis try to use HA?",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -132,7 +125,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-slaves", {"CMD_OPTION": "redis-slaves",
"USAGE": "The hosts on which to install redis slaves",
"PROMPT": "Enter the IP addresses of the redis slave servers", "PROMPT": "Enter the IP addresses of the redis slave servers",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_multi_ssh], "VALIDATORS": [validators.validate_multi_ssh],
@@ -144,7 +136,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-sentinels", {"CMD_OPTION": "redis-sentinels",
"USAGE": "The hosts on which to install redis sentinel servers",
"PROMPT": "Enter the IP addresses of the redis sentinel servers", "PROMPT": "Enter the IP addresses of the redis sentinel servers",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_multi_ssh], "VALIDATORS": [validators.validate_multi_ssh],
@@ -156,7 +147,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-sentinel-contact", {"CMD_OPTION": "redis-sentinel-contact",
"USAGE": "The host to configure as the coordination sentinel",
"PROMPT": "PROMPT":
"Enter the IP address of the coordination redis sentinel", "Enter the IP address of the coordination redis sentinel",
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -169,7 +159,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-sentinel-port", {"CMD_OPTION": "redis-sentinel-port",
"USAGE": "The port on which redis sentinel servers listen",
"PROMPT": ("Enter the port on which the redis sentinel servers" "PROMPT": ("Enter the port on which the redis sentinel servers"
" listen"), " listen"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -182,7 +171,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-sentinel-quorum", {"CMD_OPTION": "redis-sentinel-quorum",
"USAGE": "The quorum value for redis sentinel servers",
"PROMPT": ( "PROMPT": (
"Enter the quorum value for the redis sentinel servers"), "Enter the quorum value for the redis sentinel servers"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -195,7 +183,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "redis-sentinel-master-name", {"CMD_OPTION": "redis-sentinel-master-name",
"USAGE": "The name of the master server watched by the sentinel",
"PROMPT": ( "PROMPT": (
"Enter the logical name of the master server"), "Enter the logical name of the master server"),
"OPTION_LIST": [r'[a-z]+'], "OPTION_LIST": [r'[a-z]+'],
@@ -209,6 +196,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
], ],
} }
update_params_usage(basedefs.PACKSTACK_DOC, ceilometer_params)
ceilometer_groups = [ ceilometer_groups = [
{"GROUP_NAME": "CEILOMETER", {"GROUP_NAME": "CEILOMETER",

View File

@@ -18,6 +18,7 @@ Installs and configures Cinder
import re import re
from packstack.installer import basedefs
from packstack.installer import exceptions from packstack.installer import exceptions
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import validators from packstack.installer import validators
@@ -25,7 +26,7 @@ from packstack.installer.utils import split_hosts
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -44,7 +45,6 @@ def initConfig(controller):
conf_params = { conf_params = {
"CINDER": [ "CINDER": [
{"CMD_OPTION": "cinder-db-passwd", {"CMD_OPTION": "cinder-db-passwd",
"USAGE": "The password to use for the Cinder to access DB",
"PROMPT": "Enter the password for the Cinder DB access", "PROMPT": "Enter the password for the Cinder DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -58,8 +58,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-ks-passwd", {"CMD_OPTION": "cinder-ks-passwd",
"USAGE": ("The password to use for the Cinder to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Cinder Keystone access", "PROMPT": "Enter the password for the Cinder Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -73,8 +71,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-backend", {"CMD_OPTION": "cinder-backend",
"USAGE": ("The Cinder backend to use, valid options are: lvm, "
"gluster, nfs, vmdk, netapp"),
"PROMPT": "Enter the Cinder backend to be configured", "PROMPT": "Enter the Cinder backend to be configured",
"OPTION_LIST": ["lvm", "gluster", "nfs", "vmdk", "netapp"], "OPTION_LIST": ["lvm", "gluster", "nfs", "vmdk", "netapp"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -89,10 +85,6 @@ def initConfig(controller):
"CINDERVOLUMECREATE": [ "CINDERVOLUMECREATE": [
{"CMD_OPTION": "cinder-volumes-create", {"CMD_OPTION": "cinder-volumes-create",
"USAGE": ("Create Cinder's volumes group. This should only be "
"done for testing on a proof-of-concept installation "
"of Cinder. This will create a file-backed volume group"
" and is not suitable for production usage."),
"PROMPT": ("Should Cinder's volumes group be created (for " "PROMPT": ("Should Cinder's volumes group be created (for "
"proof-of-concept installation)?"), "proof-of-concept installation)?"),
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
@@ -108,9 +100,6 @@ def initConfig(controller):
"CINDERVOLUMESIZE": [ "CINDERVOLUMESIZE": [
{"CMD_OPTION": "cinder-volumes-size", {"CMD_OPTION": "cinder-volumes-size",
"USAGE": ("Cinder's volumes group size. Note that actual volume "
"size will be extended with 3% more space for VG "
"metadata."),
"PROMPT": "Enter Cinder's volumes group usable size", "PROMPT": "Enter Cinder's volumes group usable size",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -125,9 +114,6 @@ def initConfig(controller):
"CINDERGLUSTERMOUNTS": [ "CINDERGLUSTERMOUNTS": [
{"CMD_OPTION": "cinder-gluster-mounts", {"CMD_OPTION": "cinder-gluster-mounts",
"USAGE": ("A single or comma separated list of gluster volume "
"shares to mount, eg: ip-address:/vol-name, "
"domain:/vol-name "),
"PROMPT": ("Enter a single or comma separated list of gluster " "PROMPT": ("Enter a single or comma separated list of gluster "
"volume shares to use with Cinder"), "volume shares to use with Cinder"),
"OPTION_LIST": ["^([\d]{1,3}\.){3}[\d]{1,3}:/.*", "OPTION_LIST": ["^([\d]{1,3}\.){3}[\d]{1,3}:/.*",
@@ -145,8 +131,6 @@ def initConfig(controller):
"CINDERNFSMOUNTS": [ "CINDERNFSMOUNTS": [
{"CMD_OPTION": "cinder-nfs-mounts", {"CMD_OPTION": "cinder-nfs-mounts",
"USAGE": ("A single or comma seprated list of NFS exports to "
"mount, eg: ip-address:/export-name "),
"PROMPT": ("Enter a single or comma seprated list of NFS exports " "PROMPT": ("Enter a single or comma seprated list of NFS exports "
"to use with Cinder"), "to use with Cinder"),
"OPTION_LIST": ["^([\d]{1,3}\.){3}[\d]{1,3}:/.*"], "OPTION_LIST": ["^([\d]{1,3}\.){3}[\d]{1,3}:/.*"],
@@ -163,8 +147,6 @@ def initConfig(controller):
"CINDERNETAPPMAIN": [ "CINDERNETAPPMAIN": [
{"CMD_OPTION": "cinder-netapp-login", {"CMD_OPTION": "cinder-netapp-login",
"USAGE": ("(required) Administrative user account name used to "
"access the storage system or proxy server. "),
"PROMPT": ("Enter a NetApp login"), "PROMPT": ("Enter a NetApp login"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -177,8 +159,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-password", {"CMD_OPTION": "cinder-netapp-password",
"USAGE": ("(required) Password for the administrative user "
"account specified in the netapp_login parameter."),
"PROMPT": ("Enter a NetApp password"), "PROMPT": ("Enter a NetApp password"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -191,8 +171,6 @@ def initConfig(controller):
"NEED_CONFIRM": True, "NEED_CONFIRM": True,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-hostname", {"CMD_OPTION": "cinder-netapp-hostname",
"USAGE": ("(required) The hostname (or IP address) for the "
"storage system or proxy server."),
"PROMPT": ("Enter a NetApp hostname"), "PROMPT": ("Enter a NetApp hostname"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -205,12 +183,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-server-port", {"CMD_OPTION": "cinder-netapp-server-port",
"USAGE": ("(optional) The TCP port to use for communication with "
"ONTAPI on the storage system. Traditionally, port 80 "
"is used for HTTP and port 443 is used for HTTPS; "
"however, this value should be changed if an alternate "
"port has been configured on the storage system or "
"proxy server. Defaults to 80."),
"PROMPT": ("Enter a NetApp server port"), "PROMPT": ("Enter a NetApp server port"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_port], "VALIDATORS": [validators.validate_port],
@@ -223,11 +195,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-storage-family", {"CMD_OPTION": "cinder-netapp-storage-family",
"USAGE": ("(optional) The storage family type used on the storage"
" system; valid values are ontap_7mode for using Data "
"ONTAP operating in 7-Mode or ontap_cluster for using "
"clustered Data ONTAP, or eseries for NetApp E-Series. "
"Defaults to %s." % NETAPP_DEFAULT_STORAGE_FAMILY),
"PROMPT": ("Enter a NetApp storage family"), "PROMPT": ("Enter a NetApp storage family"),
"OPTION_LIST": ["ontap_7mode", "ontap_cluster", "eseries"], "OPTION_LIST": ["ontap_7mode", "ontap_cluster", "eseries"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -240,10 +207,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-transport-type", {"CMD_OPTION": "cinder-netapp-transport-type",
"USAGE": ("(optional) The transport protocol used when "
"communicating with ONTAPI on the storage system or "
"proxy server. Valid values are http or https. "
"Defaults to http."),
"PROMPT": ("Enter a NetApp transport type"), "PROMPT": ("Enter a NetApp transport type"),
"OPTION_LIST": ["http", "https"], "OPTION_LIST": ["http", "https"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -256,10 +219,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-storage-protocol", {"CMD_OPTION": "cinder-netapp-storage-protocol",
"USAGE": ("(optional) The storage protocol to be used on the data"
" path with the storage system; valid values are iscsi "
"or nfs. "
"Defaults to %s." % NETAPP_DEFAULT_STORAGE_PROTOCOL),
"PROMPT": ("Enter a NetApp storage protocol"), "PROMPT": ("Enter a NetApp storage protocol"),
"OPTION_LIST": ["iscsi", "nfs"], "OPTION_LIST": ["iscsi", "nfs"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -275,11 +234,6 @@ def initConfig(controller):
"CINDERNETAPPONTAPISCSI": [ "CINDERNETAPPONTAPISCSI": [
{"CMD_OPTION": "cinder-netapp-size-multiplier", {"CMD_OPTION": "cinder-netapp-size-multiplier",
"USAGE": ("(optional) The quantity to be multiplied by the "
"requested volume size to ensure enough space is "
"available on the virtual storage server (Vserver)"
" to fulfill the volume creation request. "
"Defaults to 1.0."),
"PROMPT": ("Enter a NetApp size multiplier"), "PROMPT": ("Enter a NetApp size multiplier"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [], "VALIDATORS": [],
@@ -295,13 +249,6 @@ def initConfig(controller):
"CINDERNETAPPNFS": [ "CINDERNETAPPNFS": [
{"CMD_OPTION": "cinder-netapp-expiry-thres-minutes", {"CMD_OPTION": "cinder-netapp-expiry-thres-minutes",
"USAGE": ("(optional) This parameter specifies the threshold for "
"last access time for images in the NFS image cache. "
"When a cache cleaning cycle begins, images in the "
"cache that have not been accessed in the last M "
"minutes, where M is the value of this parameter, will "
"be deleted from the cache to create free space on the "
"NFS share. Defaults to 720."),
"PROMPT": ("Enter a threshold"), "PROMPT": ("Enter a threshold"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_integer], "VALIDATORS": [validators.validate_integer],
@@ -314,10 +261,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-thres-avl-size-perc-start", {"CMD_OPTION": "cinder-netapp-thres-avl-size-perc-start",
"USAGE": ("(optional) If the percentage of available space for an"
" NFS share has dropped below the value specified by "
"this parameter, the NFS image cache will be cleaned. "
"Defaults to 20"),
"PROMPT": ("Enter a value"), "PROMPT": ("Enter a value"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_integer], "VALIDATORS": [validators.validate_integer],
@@ -330,13 +273,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-thres-avl-size-perc-stop", {"CMD_OPTION": "cinder-netapp-thres-avl-size-perc-stop",
"USAGE": ("(optional) When the percentage of available space on "
"an NFS share has reached the percentage specified by "
"this parameter, the driver will stop clearing files "
"from the NFS image cache that have not been accessed "
"in the last M minutes, where M is the value of the "
"expiry_thres_minutes parameter. "
"Defaults to 60."),
"PROMPT": ("Enter a value"), "PROMPT": ("Enter a value"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_integer], "VALIDATORS": [validators.validate_integer],
@@ -349,9 +285,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-nfs-shares", {"CMD_OPTION": "cinder-netapp-nfs-shares",
"USAGE": ("(optional) Single or comma-separated list of NetApp NFS shares "
"for Cinder to use. Format: ip-address:/export-name"
" Defaults to ''."),
"PROMPT": ("Enter a single or comma-separated list of NetApp NFS shares"), "PROMPT": ("Enter a single or comma-separated list of NetApp NFS shares"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [], "VALIDATORS": [],
@@ -364,8 +297,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-nfs-shares-config", {"CMD_OPTION": "cinder-netapp-nfs-shares-config",
"USAGE": ("(optional) File with the list of available NFS shares."
" Defaults to '/etc/cinder/shares.conf'."),
"PROMPT": ("Enter a NetApp NFS share config file"), "PROMPT": ("Enter a NetApp NFS share config file"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [], "VALIDATORS": [],
@@ -381,13 +312,6 @@ def initConfig(controller):
"CINDERNETAPPISCSI7MODE": [ "CINDERNETAPPISCSI7MODE": [
{"CMD_OPTION": "cinder-netapp-volume-list", {"CMD_OPTION": "cinder-netapp-volume-list",
"USAGE": ("(optional) This parameter is only utilized when the "
"storage protocol is configured to use iSCSI. This "
"parameter is used to restrict provisioning to the "
"specified controller volumes. Specify the value of "
"this parameter to be a comma separated list of NetApp "
"controller volume names to be used for provisioning. "
"Defaults to ''."),
"PROMPT": ("Enter a NetApp volume list"), "PROMPT": ("Enter a NetApp volume list"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -400,14 +324,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-vfiler", {"CMD_OPTION": "cinder-netapp-vfiler",
"USAGE": ("(optional) The vFiler unit on which provisioning of "
"block storage volumes will be done. This parameter is "
"only used by the driver when connecting to an instance"
" with a storage family of Data ONTAP operating in "
"7-Mode and the storage protocol selected is iSCSI. "
"Only use this parameter when utilizing the MultiStore "
"feature on the NetApp storage system. "
"Defaults to ''."),
"PROMPT": ("Enter a NetApp vFiler"), "PROMPT": ("Enter a NetApp vFiler"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -423,19 +339,6 @@ def initConfig(controller):
"CINDERNETAPPVSERVER": [ "CINDERNETAPPVSERVER": [
{"CMD_OPTION": "cinder-netapp-vserver", {"CMD_OPTION": "cinder-netapp-vserver",
"USAGE": ("(optional) This parameter specifies the virtual "
"storage server (Vserver) name on the storage cluster "
"on which provisioning of block storage volumes should "
"occur. If using the NFS storage protocol, this "
"parameter is mandatory for storage service catalog "
"support (utilized by Cinder volume type extra_specs "
"support). If this parameter is specified, the exports "
"belonging to the Vserver will only be used for "
"provisioning in the future. Block storage volumes on "
"exports not belonging to the Vserver specified by this"
" parameter will "
"continue to function normally. "
"Defaults to ''."),
"PROMPT": ("Enter a NetApp Vserver"), "PROMPT": ("Enter a NetApp Vserver"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -451,13 +354,6 @@ def initConfig(controller):
"CINDERNETAPPESERIES": [ "CINDERNETAPPESERIES": [
{"CMD_OPTION": "cinder-netapp-controller-ips", {"CMD_OPTION": "cinder-netapp-controller-ips",
"USAGE": ("(optional) This option is only utilized when the "
"storage family is configured to eseries. This option "
"is used to restrict provisioning to the specified "
"controllers. Specify the value of this option to be a "
"comma separated list of controller hostnames or IP "
"addresses to be used for provisioning. "
"Defaults to ''."),
"PROMPT": ("Enter a value"), "PROMPT": ("Enter a value"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_multi_ping], "VALIDATORS": [validators.validate_multi_ping],
@@ -470,9 +366,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-sa-password", {"CMD_OPTION": "cinder-netapp-sa-password",
"USAGE": ("(optional) Password for the NetApp E-Series storage "
"array. "
"Defaults to ''."),
"PROMPT": ("Enter a password"), "PROMPT": ("Enter a password"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [], "VALIDATORS": [],
@@ -485,13 +378,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-webservice-path", {"CMD_OPTION": "cinder-netapp-webservice-path",
"USAGE": ("(optional) This option is used to specify the path to "
"the E-Series proxy application on a proxy server. The "
"value is combined with the value of the "
"netapp_transport_type, netapp_server_hostname, and "
"netapp_server_port options to create the URL used by "
"the driver to connect to the proxy application. "
"Defaults to '/devmgr/v2'."),
"PROMPT": ("Enter a path"), "PROMPT": ("Enter a path"),
"OPTION_LIST": ["^[/].*$"], "OPTION_LIST": ["^[/].*$"],
"VALIDATORS": [validators.validate_regexp], "VALIDATORS": [validators.validate_regexp],
@@ -504,12 +390,6 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "cinder-netapp-storage-pools", {"CMD_OPTION": "cinder-netapp-storage-pools",
"USAGE": ("(optional) This option is used to restrict "
"provisioning to the specified storage pools. Only "
"dynamic disk pools are currently supported. Specify "
"the value of this option to be a comma separated list "
"of disk pool names to be used for provisioning. "
"Defaults to ''."),
"PROMPT": ("Enter a value"), "PROMPT": ("Enter a value"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [], "VALIDATORS": [],
@@ -523,6 +403,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
] ]
} }
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
conf_groups = [ conf_groups = [
{"GROUP_NAME": "CINDER", {"GROUP_NAME": "CINDER",

View File

@@ -19,10 +19,12 @@ Installs and configures OpenStack Horizon
import os import os
import uuid import uuid
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import exceptions from packstack.installer import exceptions
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -35,7 +37,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "os-horizon-ssl", {"CMD_OPTION": "os-horizon-ssl",
"USAGE": "To set up Horizon communication over https set this to 'y'",
"PROMPT": "Would you like to set up Horizon communication over https", "PROMPT": "Would you like to set up Horizon communication over https",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -47,6 +48,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "OSHORIZON", group = {"GROUP_NAME": "OSHORIZON",
"DESCRIPTION": "OpenStack Horizon Config parameters", "DESCRIPTION": "OpenStack Horizon Config parameters",
"PRE_CONDITION": "CONFIG_HORIZON_INSTALL", "PRE_CONDITION": "CONFIG_HORIZON_INSTALL",
@@ -104,6 +106,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "OSSSL", group = {"GROUP_NAME": "OSSSL",
"DESCRIPTION": "SSL Config parameters", "DESCRIPTION": "SSL Config parameters",
"PRE_CONDITION": "CONFIG_HORIZON_SSL", "PRE_CONDITION": "CONFIG_HORIZON_SSL",

View File

@@ -16,10 +16,12 @@
Installs and configures Glance Installs and configures Glance
""" """
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -34,7 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "glance-db-passwd", {"CMD_OPTION": "glance-db-passwd",
"USAGE": "The password to use for the Glance to access DB",
"PROMPT": "Enter the password for the Glance DB access", "PROMPT": "Enter the password for the Glance DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -48,8 +49,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "glance-ks-passwd", {"CMD_OPTION": "glance-ks-passwd",
"USAGE": ("The password to use for the Glance to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Glance Keystone access", "PROMPT": "Enter the password for the Glance Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -63,10 +62,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "glance-backend", {"CMD_OPTION": "glance-backend",
"USAGE": ("Glance storage backend controls how Glance stores disk "
"images. Supported values: file, swift. Note that Swift "
"installation have to be enabled to have swift backend "
"working. Otherwise Packstack will fallback to 'file'."),
"PROMPT": "Glance storage backend", "PROMPT": "Glance storage backend",
"OPTION_LIST": ["file", "swift"], "OPTION_LIST": ["file", "swift"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -79,6 +74,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "GLANCE", group = {"GROUP_NAME": "GLANCE",
"DESCRIPTION": "Glance Config parameters", "DESCRIPTION": "Glance Config parameters",
"PRE_CONDITION": "CONFIG_GLANCE_INSTALL", "PRE_CONDITION": "CONFIG_GLANCE_INSTALL",

View File

@@ -18,10 +18,12 @@ Installs and configures Heat
import uuid import uuid
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -36,8 +38,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
parameters = [ parameters = [
{"CMD_OPTION": "os-heat-mysql-password", {"CMD_OPTION": "os-heat-mysql-password",
"USAGE": ('The password used by Heat user to authenticate against '
'DB'),
"PROMPT": "Enter the password for the Heat DB user", "PROMPT": "Enter the password for the Heat DB user",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -51,8 +51,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "heat-auth-encryption-key", {"CMD_OPTION": "heat-auth-encryption-key",
"USAGE": ("The encryption key to use for authentication info "
"in database (16, 24, or 32 chars)"),
"PROMPT": ("Enter the authentication key for Heat to use for " "PROMPT": ("Enter the authentication key for Heat to use for "
"authenticate info in database (16, 24, or 32 chars)"), "authenticate info in database (16, 24, or 32 chars)"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -66,8 +64,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-ks-passwd", {"CMD_OPTION": "os-heat-ks-passwd",
"USAGE": ("The password to use for the Heat to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Heat Keystone access", "PROMPT": "Enter the password for the Heat Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -81,8 +77,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-cloudwatch-install", {"CMD_OPTION": "os-heat-cloudwatch-install",
"USAGE": ("Set to 'y' if you would like Packstack to install Heat "
"CloudWatch API"),
"PROMPT": "Should Packstack install Heat CloudWatch API", "PROMPT": "Should Packstack install Heat CloudWatch API",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -95,8 +89,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-cfn-install", {"CMD_OPTION": "os-heat-cfn-install",
"USAGE": ("Set to 'y' if you would like Packstack to install Heat "
"CloudFormation API"),
"PROMPT": "Should Packstack install Heat CloudFormation API", "PROMPT": "Should Packstack install Heat CloudFormation API",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -109,7 +101,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-domain", {"CMD_OPTION": "os-heat-domain",
"USAGE": "Name of Keystone domain for Heat",
"PROMPT": "Enter name of Keystone domain for Heat", "PROMPT": "Enter name of Keystone domain for Heat",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -122,7 +113,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-domain-admin", {"CMD_OPTION": "os-heat-domain-admin",
"USAGE": "Name of Keystone domain admin user for Heat",
"PROMPT": "Enter name of Keystone domain admin user for Heat", "PROMPT": "Enter name of Keystone domain admin user for Heat",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -135,7 +125,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-domain-password", {"CMD_OPTION": "os-heat-domain-password",
"USAGE": "Password for Keystone domain admin user for Heat",
"PROMPT": "Enter password for Keystone domain admin user for Heat", "PROMPT": "Enter password for Keystone domain admin user for Heat",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -148,6 +137,7 @@ def initConfig(controller):
"NEED_CONFIRM": True, "NEED_CONFIRM": True,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, parameters, sectioned=False)
group = {"GROUP_NAME": "Heat", group = {"GROUP_NAME": "Heat",
"DESCRIPTION": "Heat Config parameters", "DESCRIPTION": "Heat Config parameters",
"PRE_CONDITION": "CONFIG_HEAT_INSTALL", "PRE_CONDITION": "CONFIG_HEAT_INSTALL",

View File

@@ -16,10 +16,12 @@
Installs and configures Ironic Installs and configures Ironic
""" """
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -36,7 +38,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_IRONIC_DB_PW", {"CONF_NAME": "CONFIG_IRONIC_DB_PW",
"CMD_OPTION": "os-ironic-db-passwd", "CMD_OPTION": "os-ironic-db-passwd",
"PROMPT": "Enter the password for the Ironic DB user", "PROMPT": "Enter the password for the Ironic DB user",
"USAGE": "The password to use for the Ironic DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
"DEFAULT_VALUE": "PW_PLACEHOLDER", "DEFAULT_VALUE": "PW_PLACEHOLDER",
@@ -49,8 +50,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_IRONIC_KS_PW", {"CONF_NAME": "CONFIG_IRONIC_KS_PW",
"CMD_OPTION": "os-ironic-ks-passwd", "CMD_OPTION": "os-ironic-ks-passwd",
"USAGE": ("The password to use for Ironic to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for Ironic Keystone access", "PROMPT": "Enter the password for Ironic Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -62,7 +61,7 @@ def initConfig(controller):
"NEED_CONFIRM": True, "NEED_CONFIRM": True,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, ironic_params, sectioned=False)
ironic_group = {"GROUP_NAME": "IRONIC", ironic_group = {"GROUP_NAME": "IRONIC",
"DESCRIPTION": "Ironic Options", "DESCRIPTION": "Ironic Options",
"PRE_CONDITION": "CONFIG_IRONIC_INSTALL", "PRE_CONDITION": "CONFIG_IRONIC_INSTALL",

View File

@@ -18,10 +18,12 @@ Installs and configures Keystone
import uuid import uuid
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -36,7 +38,6 @@ def initConfig(controller):
keystone_params = { keystone_params = {
"KEYSTONE": [ # base keystone options "KEYSTONE": [ # base keystone options
{"CMD_OPTION": "keystone-db-passwd", {"CMD_OPTION": "keystone-db-passwd",
"USAGE": "The password to use for the Keystone to access DB",
"PROMPT": "Enter the password for the Keystone DB access", "PROMPT": "Enter the password for the Keystone DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -50,7 +51,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-region", {"CMD_OPTION": "keystone-region",
"USAGE": "Region name",
"PROMPT": "Region name", "PROMPT": "Region name",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -63,7 +63,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-admin-token", {"CMD_OPTION": "keystone-admin-token",
"USAGE": "The token to use for the Keystone service api",
"PROMPT": "The token to use for the Keystone service api", "PROMPT": "The token to use for the Keystone service api",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -76,7 +75,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-admin-passwd", {"CMD_OPTION": "keystone-admin-passwd",
"USAGE": "The password to use for the Keystone admin user",
"PROMPT": "Enter the password for the Keystone admin user", "PROMPT": "Enter the password for the Keystone admin user",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -90,7 +88,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-demo-passwd", {"CMD_OPTION": "keystone-demo-passwd",
"USAGE": "The password to use for the Keystone demo user",
"PROMPT": "Enter the password for the Keystone demo user", "PROMPT": "Enter the password for the Keystone demo user",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -104,7 +101,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-api-version", {"CMD_OPTION": "keystone-api-version",
"USAGE": "Keystone API version string",
"PROMPT": "Enter the Keystone API version string.", "PROMPT": "Enter the Keystone API version string.",
"OPTION_LIST": ['v2.0', 'v3'], "OPTION_LIST": ['v2.0', 'v3'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -117,7 +113,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-token-format", {"CMD_OPTION": "keystone-token-format",
"USAGE": "Keystone token format. Use either UUID or PKI",
"PROMPT": "Enter the Keystone token format.", "PROMPT": "Enter the Keystone token format.",
"OPTION_LIST": ['UUID', 'PKI'], "OPTION_LIST": ['UUID', 'PKI'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -130,9 +125,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-service-name", {"CMD_OPTION": "keystone-service-name",
"USAGE": (
"Name of service to use to run keystone (keystone or httpd)"
),
"PROMPT": "Enter the Keystone service name.", "PROMPT": "Enter the Keystone service name.",
"OPTION_LIST": ['keystone', 'httpd'], "OPTION_LIST": ['keystone', 'httpd'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -145,7 +137,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-identity-backend", {"CMD_OPTION": "keystone-identity-backend",
"USAGE": "Type of identity backend (sql or ldap)",
"PROMPT": "Enter the Keystone identity backend type.", "PROMPT": "Enter the Keystone identity backend type.",
"OPTION_LIST": ['sql', 'ldap'], "OPTION_LIST": ['sql', 'ldap'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -160,7 +151,6 @@ def initConfig(controller):
"KEYSTONE_LDAP": [ # keystone ldap identity backend options "KEYSTONE_LDAP": [ # keystone ldap identity backend options
{"CMD_OPTION": "keystone-ldap-url", {"CMD_OPTION": "keystone-ldap-url",
"USAGE": "Keystone LDAP backend URL",
"PROMPT": "Enter the Keystone LDAP backend URL.", "PROMPT": "Enter the Keystone LDAP backend URL.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ldap_url], "VALIDATORS": [validators.validate_ldap_url],
@@ -173,11 +163,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-dn", {"CMD_OPTION": "keystone-ldap-user-dn",
"USAGE": (
"Keystone LDAP backend user DN. Used to bind to the LDAP "
"server when the LDAP server does not allow anonymous "
"authentication."
),
"PROMPT": "Enter the Keystone LDAP user DN.", "PROMPT": "Enter the Keystone LDAP user DN.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ldap_dn], "VALIDATORS": [validators.validate_ldap_dn],
@@ -190,7 +175,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-password", {"CMD_OPTION": "keystone-ldap-user-password",
"USAGE": "Keystone LDAP backend password for user DN",
"PROMPT": "Enter the Keystone LDAP user password.", "PROMPT": "Enter the Keystone LDAP user password.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -204,7 +188,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-suffix", {"CMD_OPTION": "keystone-ldap-suffix",
"USAGE": "Keystone LDAP backend base suffix",
"PROMPT": "Enter the Keystone LDAP suffix.", "PROMPT": "Enter the Keystone LDAP suffix.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty, "VALIDATORS": [validators.validate_not_empty,
@@ -218,7 +201,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-query-scope", {"CMD_OPTION": "keystone-ldap-query-scope",
"USAGE": "Keystone LDAP backend query scope (base, one, sub)",
"PROMPT": "Enter the Keystone LDAP query scope.", "PROMPT": "Enter the Keystone LDAP query scope.",
"OPTION_LIST": ['base', 'one', 'sub'], "OPTION_LIST": ['base', 'one', 'sub'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -231,7 +213,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-page-size", {"CMD_OPTION": "keystone-ldap-page-size",
"USAGE": "Keystone LDAP backend query page size",
"PROMPT": "Enter the Keystone LDAP query page size.", "PROMPT": "Enter the Keystone LDAP query page size.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_integer], "VALIDATORS": [validators.validate_integer],
@@ -244,7 +225,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-subtree", {"CMD_OPTION": "keystone-ldap-user-subtree",
"USAGE": "Keystone LDAP backend user subtree",
"PROMPT": "Enter the Keystone LDAP user subtree.", "PROMPT": "Enter the Keystone LDAP user subtree.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty, "VALIDATORS": [validators.validate_not_empty,
@@ -258,7 +238,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-filter", {"CMD_OPTION": "keystone-ldap-user-filter",
"USAGE": "Keystone LDAP backend user query filter",
"PROMPT": "Enter the Keystone LDAP user query filter.", "PROMPT": "Enter the Keystone LDAP user query filter.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -271,7 +250,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-objectclass", {"CMD_OPTION": "keystone-ldap-user-objectclass",
"USAGE": "Keystone LDAP backend user objectclass",
"PROMPT": "Enter the Keystone LDAP user objectclass.", "PROMPT": "Enter the Keystone LDAP user objectclass.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -284,7 +262,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-id-attribute", {"CMD_OPTION": "keystone-ldap-user-id-attribute",
"USAGE": "Keystone LDAP backend user ID attribute",
"PROMPT": "Enter the Keystone LDAP user ID attribute.", "PROMPT": "Enter the Keystone LDAP user ID attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -297,7 +274,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-name-attribute", {"CMD_OPTION": "keystone-ldap-user-name-attribute",
"USAGE": "Keystone LDAP backend user name attribute",
"PROMPT": "Enter the Keystone LDAP user name attribute.", "PROMPT": "Enter the Keystone LDAP user name attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -310,7 +286,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-mail-attribute", {"CMD_OPTION": "keystone-ldap-user-mail-attribute",
"USAGE": "Keystone LDAP backend user email address attribute",
"PROMPT": "Enter the Keystone LDAP user email address attribute.", "PROMPT": "Enter the Keystone LDAP user email address attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -323,7 +298,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-enabled-attribute", {"CMD_OPTION": "keystone-ldap-user-enabled-attribute",
"USAGE": "Keystone LDAP backend user enabled attribute",
"PROMPT": "Enter the Keystone LDAP user enabled attribute.", "PROMPT": "Enter the Keystone LDAP user enabled attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -336,10 +310,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-enabled-mask", {"CMD_OPTION": "keystone-ldap-user-enabled-mask",
"USAGE": (
"Keystone LDAP backend - bit mask applied to "
"user enabled attribute"
),
"PROMPT": "Enter the Keystone LDAP user enabled mask.", "PROMPT": "Enter the Keystone LDAP user enabled mask.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_integer], "VALIDATORS": [validators.validate_integer],
@@ -352,10 +322,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-enabled-default", {"CMD_OPTION": "keystone-ldap-user-enabled-default",
"USAGE": (
"Keystone LDAP backend - value of enabled attribute which "
"indicates user is enabled"
),
"PROMPT": "Enter the Keystone LDAP user enabled default.", "PROMPT": "Enter the Keystone LDAP user enabled default.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -368,7 +334,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-enabled-invert", {"CMD_OPTION": "keystone-ldap-user-enabled-invert",
"USAGE": "Keystone LDAP backend - users are disabled not enabled",
"PROMPT": "Enter the Keystone LDAP user enabled invert (n or y).", "PROMPT": "Enter the Keystone LDAP user enabled invert (n or y).",
"OPTION_LIST": ['n', 'y'], "OPTION_LIST": ['n', 'y'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -381,10 +346,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-attribute-ignore", {"CMD_OPTION": "keystone-ldap-user-attribute-ignore",
"USAGE": (
"Comma separated list of attributes stripped "
"from user entry upon update"
),
"PROMPT": ( "PROMPT": (
"Enter the comma separated Keystone LDAP user " "Enter the comma separated Keystone LDAP user "
"attributes to ignore." "attributes to ignore."
@@ -399,10 +360,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-default-project-id-attribute", {"CMD_OPTION": "keystone-ldap-user-default-project-id-attribute",
"USAGE": (
"Keystone LDAP attribute mapped to default_project_id "
"for users"
),
"PROMPT": ( "PROMPT": (
"Enter the Keystone LDAP user default_project_id attribute." "Enter the Keystone LDAP user default_project_id attribute."
), ),
@@ -417,11 +374,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-allow-create", {"CMD_OPTION": "keystone-ldap-user-allow-create",
"USAGE": (
"Set to 'y' if you want to be able to create Keystone "
"users through the Keystone interface. Set to 'n' if you "
"will create directly in the LDAP backend."
),
"PROMPT": ( "PROMPT": (
"Do you want to allow user create through Keystone (n or y)." "Do you want to allow user create through Keystone (n or y)."
), ),
@@ -436,11 +388,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-allow-update", {"CMD_OPTION": "keystone-ldap-user-allow-update",
"USAGE": (
"Set to 'y' if you want to be able to update Keystone "
"users through the Keystone interface. Set to 'n' if you "
"will update directly in the LDAP backend."
),
"PROMPT": ( "PROMPT": (
"Do you want to allow user update through Keystone (n or y)." "Do you want to allow user update through Keystone (n or y)."
), ),
@@ -455,11 +402,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-allow-delete", {"CMD_OPTION": "keystone-ldap-user-allow-delete",
"USAGE": (
"Set to 'y' if you want to be able to delete Keystone "
"users through the Keystone interface. Set to 'n' if you "
"will delete directly in the LDAP backend."
),
"PROMPT": ( "PROMPT": (
"Do you want to allow user delete through Keystone (n or y)." "Do you want to allow user delete through Keystone (n or y)."
), ),
@@ -474,7 +416,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-pass-attribute", {"CMD_OPTION": "keystone-ldap-user-pass-attribute",
"USAGE": "Keystone LDAP attribute mapped to password",
"PROMPT": "Enter the Keystone LDAP user password attribute.", "PROMPT": "Enter the Keystone LDAP user password attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -486,10 +427,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-enabled-emulation-dn", {"CMD_OPTION": "keystone-ldap-user-enabled-emulation-dn",
"USAGE": (
"DN of the group entry to hold enabled users when "
"using enabled emulation."
),
"PROMPT": "Enter the Keystone LDAP enabled emulation DN.", "PROMPT": "Enter the Keystone LDAP enabled emulation DN.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ldap_dn], "VALIDATORS": [validators.validate_ldap_dn],
@@ -502,13 +439,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-user-additional-attribute-mapping", {"CMD_OPTION": "keystone-ldap-user-additional-attribute-mapping",
"USAGE": (
'List of additional LDAP attributes used for mapping '
'additional attribute mappings for users. Attribute '
'mapping format is <ldap_attr>:<user_attr>, where '
'ldap_attr is the attribute in the LDAP entry and '
'user_attr is the Identity API attribute.'
),
"PROMPT": ( "PROMPT": (
"Enter the comma separated Keystone LDAP user additional " "Enter the comma separated Keystone LDAP user additional "
"attribute mappings in the form " "attribute mappings in the form "
@@ -525,7 +455,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-subtree", {"CMD_OPTION": "keystone-ldap-group-subtree",
"USAGE": "Keystone LDAP backend group subtree",
"PROMPT": "Enter the Keystone LDAP group subtree.", "PROMPT": "Enter the Keystone LDAP group subtree.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty, "VALIDATORS": [validators.validate_not_empty,
@@ -539,7 +468,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-filter", {"CMD_OPTION": "keystone-ldap-group-filter",
"USAGE": "Keystone LDAP backend group query filter",
"PROMPT": "Enter the Keystone LDAP group query filter.", "PROMPT": "Enter the Keystone LDAP group query filter.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -552,7 +480,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-objectclass", {"CMD_OPTION": "keystone-ldap-group-objectclass",
"USAGE": "Keystone LDAP backend group objectclass",
"PROMPT": "Enter the Keystone LDAP group objectclass.", "PROMPT": "Enter the Keystone LDAP group objectclass.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -565,7 +492,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-id-attribute", {"CMD_OPTION": "keystone-ldap-group-id-attribute",
"USAGE": "Keystone LDAP backend group ID attribute",
"PROMPT": "Enter the Keystone LDAP group ID attribute.", "PROMPT": "Enter the Keystone LDAP group ID attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -578,7 +504,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-name-attribute", {"CMD_OPTION": "keystone-ldap-group-name-attribute",
"USAGE": "Keystone LDAP backend group name attribute",
"PROMPT": "Enter the Keystone LDAP group name attribute.", "PROMPT": "Enter the Keystone LDAP group name attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -591,7 +516,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-member-attribute", {"CMD_OPTION": "keystone-ldap-group-member-attribute",
"USAGE": "Keystone LDAP backend group member attribute",
"PROMPT": "Enter the Keystone LDAP group member attribute.", "PROMPT": "Enter the Keystone LDAP group member attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -604,7 +528,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-desc-attribute", {"CMD_OPTION": "keystone-ldap-group-desc-attribute",
"USAGE": "Keystone LDAP backend group description attribute",
"PROMPT": "Enter the Keystone LDAP group description attribute.", "PROMPT": "Enter the Keystone LDAP group description attribute.",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -617,10 +540,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-attribute-ignore", {"CMD_OPTION": "keystone-ldap-group-attribute-ignore",
"USAGE": (
"Comma separated list of attributes stripped from "
"group entry upon update"
),
"PROMPT": ( "PROMPT": (
"Enter the comma separated Keystone LDAP group " "Enter the comma separated Keystone LDAP group "
"attributes to ignore." "attributes to ignore."
@@ -635,11 +554,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-allow-create", {"CMD_OPTION": "keystone-ldap-group-allow-create",
"USAGE": (
"Set to 'y' if you want to be able to create Keystone "
"groups through the Keystone interface. Set to 'n' if you "
"will create directly in the LDAP backend."
),
"PROMPT": ( "PROMPT": (
"Do you want to allow group create through Keystone (n or y)." "Do you want to allow group create through Keystone (n or y)."
), ),
@@ -654,11 +568,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-allow-update", {"CMD_OPTION": "keystone-ldap-group-allow-update",
"USAGE": (
"Set to 'y' if you want to be able to update Keystone "
"groups through the Keystone interface. Set to 'n' if you "
"will update directly in the LDAP backend."
),
"PROMPT": ( "PROMPT": (
"Do you want to allow group update through Keystone (n or y)." "Do you want to allow group update through Keystone (n or y)."
), ),
@@ -673,11 +582,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-allow-delete", {"CMD_OPTION": "keystone-ldap-group-allow-delete",
"USAGE": (
"Set to 'y' if you want to be able to delete Keystone "
"groups through the Keystone interface. Set to 'n' if you "
"will delete directly in the LDAP backend."
),
"PROMPT": ( "PROMPT": (
"Do you want to allow group delete through Keystone (n or y)." "Do you want to allow group delete through Keystone (n or y)."
), ),
@@ -692,13 +596,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-group-additional-attribute-mapping", {"CMD_OPTION": "keystone-ldap-group-additional-attribute-mapping",
"USAGE": (
'List of additional LDAP attributes used for mapping '
'additional attribute mappings for groups. Attribute '
'mapping format is <ldap_attr>:<group_attr>, where '
'ldap_attr is the attribute in the LDAP entry and '
'group_attr is the Identity API attribute.'
),
"PROMPT": ( "PROMPT": (
"Enter the comma separated Keystone LDAP group additional " "Enter the comma separated Keystone LDAP group additional "
"attribute mappings in the form " "attribute mappings in the form "
@@ -715,7 +612,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-use-tls", {"CMD_OPTION": "keystone-ldap-use-tls",
"USAGE": "Should Keystone LDAP use TLS",
"PROMPT": ( "PROMPT": (
"Enable TLS for Keystone communicating with " "Enable TLS for Keystone communicating with "
"LDAP servers (n or y)." "LDAP servers (n or y)."
@@ -731,7 +627,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-tls-cacertdir", {"CMD_OPTION": "keystone-ldap-tls-cacertdir",
"USAGE": "Keystone LDAP CA certificate directory",
"PROMPT": "CA Certificate directory for Keystone LDAP.", "PROMPT": "CA Certificate directory for Keystone LDAP.",
"OPTION_LIST": [], "OPTION_LIST": [],
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -743,7 +638,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-tls-cacertfile", {"CMD_OPTION": "keystone-ldap-tls-cacertfile",
"USAGE": "Keystone LDAP CA certificate file",
"PROMPT": "CA Certificate file for Keystone LDAP.", "PROMPT": "CA Certificate file for Keystone LDAP.",
"OPTION_LIST": [], "OPTION_LIST": [],
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -755,10 +649,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "keystone-ldap-tls-req-cert", {"CMD_OPTION": "keystone-ldap-tls-req-cert",
"USAGE": (
"Keystone LDAP certificate checking strictness "
"(never, allow, demand)"
),
"PROMPT": ( "PROMPT": (
"Keystone LDAP certificate checking strictness " "Keystone LDAP certificate checking strictness "
"(never, allow, demand)" "(never, allow, demand)"
@@ -774,7 +664,7 @@ def initConfig(controller):
"CONDITION": False} "CONDITION": False}
] ]
} }
update_params_usage(basedefs.PACKSTACK_DOC, keystone_params)
keystone_groups = [ keystone_groups = [
{"GROUP_NAME": "KEYSTONE", {"GROUP_NAME": "KEYSTONE",
"DESCRIPTION": "Keystone Config parameters", "DESCRIPTION": "Keystone Config parameters",

View File

@@ -15,10 +15,13 @@
""" """
Installs and configures Manila Installs and configures Manila
""" """
from packstack.installer import basedefs
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
@@ -34,7 +37,6 @@ def initConfig(controller):
conf_params = { conf_params = {
"MANILA": [ "MANILA": [
{"CMD_OPTION": "manila-db-passwd", {"CMD_OPTION": "manila-db-passwd",
"USAGE": "The password to use for the Manila to access DB",
"PROMPT": "Enter the password for the Manila DB access", "PROMPT": "Enter the password for the Manila DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -48,8 +50,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-ks-passwd", {"CMD_OPTION": "manila-ks-passwd",
"USAGE": ("The password to use for the Manila to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Manila Keystone access", "PROMPT": "Enter the password for the Manila Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -63,8 +63,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-backend", {"CMD_OPTION": "manila-backend",
"USAGE": ("The Manila backend to use, valid options are: "
"generic, netapp"),
"PROMPT": "Enter the Manila backend to be configured", "PROMPT": "Enter the Manila backend to be configured",
"OPTION_LIST": ["generic", "netapp"], "OPTION_LIST": ["generic", "netapp"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -79,10 +77,6 @@ def initConfig(controller):
"MANILANETAPP": [ "MANILANETAPP": [
{"CMD_OPTION": "manila-netapp-nas-transport-type", {"CMD_OPTION": "manila-netapp-nas-transport-type",
"USAGE": ("The transport protocol used when "
"communicating with ONTAPI on the storage system or "
"proxy server. Valid values are http or https. "
"Defaults to http"),
"PROMPT": ("Enter a NetApp transport type"), "PROMPT": ("Enter a NetApp transport type"),
"OPTION_LIST": ["http", "https"], "OPTION_LIST": ["http", "https"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -95,8 +89,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-netapp-nas-login", {"CMD_OPTION": "manila-netapp-nas-login",
"USAGE": ("Administrative user account name used to "
"access the storage system or proxy server. "),
"PROMPT": ("Enter a NetApp login"), "PROMPT": ("Enter a NetApp login"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -109,8 +101,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-netapp-nas-password", {"CMD_OPTION": "manila-netapp-nas-password",
"USAGE": ("Password for the administrative user "
"account specified in the netapp_nas_login parameter."),
"PROMPT": ("Enter a NetApp password"), "PROMPT": ("Enter a NetApp password"),
"OPTION_LIST": [""], "OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -123,8 +113,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-netapp-nas-server-hostname", {"CMD_OPTION": "manila-netapp-nas-server-hostname",
"USAGE": ("The hostname (or IP address) for the "
"storage system or proxy server."),
"PROMPT": ("Enter a NetApp hostname"), "PROMPT": ("Enter a NetApp hostname"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -138,8 +126,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-netapp-aggregate-name-search-pattern", {"CMD_OPTION": "manila-netapp-aggregate-name-search-pattern",
"USAGE": ("Pattern for searching available aggregates "
"for provisioning."),
"PROMPT": ("Enter a NetApp aggregate name search pattern"), "PROMPT": ("Enter a NetApp aggregate name search pattern"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -152,8 +138,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-netapp-root-volume-aggregate", {"CMD_OPTION": "manila-netapp-root-volume-aggregate",
"USAGE": ("Name of aggregate to create root volume "
"on. "),
"PROMPT": ("Enter a NetApp root volume aggregate"), "PROMPT": ("Enter a NetApp root volume aggregate"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -166,7 +150,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-netapp-root-volume-name", {"CMD_OPTION": "manila-netapp-root-volume-name",
"USAGE": ("Root volume name. "),
"PROMPT": ("Enter a NetApp root volume name"), "PROMPT": ("Enter a NetApp root volume name"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -181,8 +164,6 @@ def initConfig(controller):
"MANILAGENERIC": [ "MANILAGENERIC": [
{"CMD_OPTION": "manila-generic-volume-name-template", {"CMD_OPTION": "manila-generic-volume-name-template",
"USAGE": ("Volume name template. "
"Defaults to manila-share-%s"),
"PROMPT": ("Enter a volume name template"), "PROMPT": ("Enter a volume name template"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -195,8 +176,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-generic-share-mount-path", {"CMD_OPTION": "manila-generic-share-mount-path",
"USAGE": ("Share mount path. "
"Defaults to /shares"),
"PROMPT": ("Enter a share mount path"), "PROMPT": ("Enter a share mount path"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -209,8 +188,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-service-image-location", {"CMD_OPTION": "manila-service-image-location",
"USAGE": ("Location of disk image for service "
"instance."),
"PROMPT": ("Enter a service image location"), "PROMPT": ("Enter a service image location"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -224,7 +201,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-service-instance-user", {"CMD_OPTION": "manila-service-instance-user",
"USAGE": ("User in service instance."),
"PROMPT": ("Enter a service instance user"), "PROMPT": ("Enter a service instance user"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -237,7 +213,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "manila-service-instance-password", {"CMD_OPTION": "manila-service-instance-password",
"USAGE": ("Password to service instance user."),
"PROMPT": ("Enter a service instance password"), "PROMPT": ("Enter a service instance password"),
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -250,7 +225,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
] ]
} }
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
conf_groups = [ conf_groups = [
{"GROUP_NAME": "MANILA", {"GROUP_NAME": "MANILA",
"DESCRIPTION": "Manila Config parameters", "DESCRIPTION": "Manila Config parameters",

View File

@@ -16,11 +16,13 @@
Installs and configures MariaDB Installs and configures MariaDB
""" """
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.common import filtered_hosts
from packstack.modules.common import filtered_hosts
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -34,9 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "mariadb-host", {"CMD_OPTION": "mariadb-host",
"USAGE": ("The IP address of the server on which to install MariaDB "
"or IP address of DB server to use if MariaDB "
"installation was not selected"),
"PROMPT": "Enter the IP address of the MariaDB server", "PROMPT": "Enter the IP address of the MariaDB server",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ssh], "VALIDATORS": [validators.validate_ssh],
@@ -78,6 +77,7 @@ def initConfig(controller):
"CONDITION": False, "CONDITION": False,
"DEPRECATES": ['CONFIG_MYSQL_PW']}, "DEPRECATES": ['CONFIG_MYSQL_PW']},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "MARIADB", group = {"GROUP_NAME": "MARIADB",
"DESCRIPTION": "MariaDB Config parameters", "DESCRIPTION": "MariaDB Config parameters",
"PRE_CONDITION": lambda x: 'yes', "PRE_CONDITION": lambda x: 'yes',

View File

@@ -16,10 +16,12 @@
Installs and configures Nagios Installs and configures Nagios
""" """
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer import utils from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.common import filtered_hosts from packstack.modules.common import filtered_hosts
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -34,7 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "nagios-passwd", {"CMD_OPTION": "nagios-passwd",
"USAGE": "The password of the nagiosadmin user on the Nagios server",
"PROMPT": "Enter the password for the nagiosadmin user", "PROMPT": "Enter the password for the nagiosadmin user",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -47,6 +48,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "NAGIOS", group = {"GROUP_NAME": "NAGIOS",
"DESCRIPTION": "Nagios Config parameters", "DESCRIPTION": "Nagios Config parameters",
"PRE_CONDITION": "CONFIG_NAGIOS_INSTALL", "PRE_CONDITION": "CONFIG_NAGIOS_INSTALL",

View File

@@ -16,6 +16,7 @@
Installs and configures Neutron Installs and configures Neutron
""" """
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
@@ -23,6 +24,7 @@ from packstack.installer import output_messages
from packstack.installer.utils import split_hosts from packstack.installer.utils import split_hosts
from packstack.modules.common import filtered_hosts from packstack.modules.common import filtered_hosts
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -38,8 +40,6 @@ def initConfig(controller):
conf_params = { conf_params = {
"NEUTRON": [ "NEUTRON": [
{"CMD_OPTION": "os-neutron-ks-password", {"CMD_OPTION": "os-neutron-ks-password",
"USAGE": ("The password to use for Neutron to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for Neutron Keystone access", "PROMPT": "Enter the password for Neutron Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -53,7 +53,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-db-password", {"CMD_OPTION": "os-neutron-db-password",
"USAGE": "The password to use for Neutron to access DB",
"PROMPT": "Enter the password for Neutron DB access", "PROMPT": "Enter the password for Neutron DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -67,9 +66,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-l3-ext-bridge", {"CMD_OPTION": "os-neutron-l3-ext-bridge",
"USAGE": ("The name of the ovs bridge (or empty for linuxbridge)"
" that the Neutron L3 agent will use for external "
" traffic, or 'provider' using provider networks. "),
"PROMPT": ("Enter the ovs bridge the Neutron L3 agent will use " "PROMPT": ("Enter the ovs bridge the Neutron L3 agent will use "
"for external traffic, or 'provider' if using " "for external traffic, or 'provider' if using "
"provider networks."), "provider networks."),
@@ -84,7 +80,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-metadata-pw", {"CMD_OPTION": "os-neutron-metadata-pw",
"USAGE": "Neutron metadata agent password",
"PROMPT": "Enter Neutron metadata agent password", "PROMPT": "Enter Neutron metadata agent password",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -98,8 +93,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-lbaas-install", {"CMD_OPTION": "os-neutron-lbaas-install",
"USAGE": ("Set to 'y' if you would like Packstack to install "
"Neutron LBaaS"),
"PROMPT": "Should Packstack install Neutron LBaaS", "PROMPT": "Should Packstack install Neutron LBaaS",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -112,8 +105,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-metering-agent-install", {"CMD_OPTION": "os-neutron-metering-agent-install",
"USAGE": ("Set to 'y' if you would like Packstack to install "
"Neutron L3 Metering agent"),
"PROMPT": ("Should Packstack install Neutron L3 Metering agent"), "PROMPT": ("Should Packstack install Neutron L3 Metering agent"),
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -126,7 +117,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "neutron-fwaas", {"CMD_OPTION": "neutron-fwaas",
"USAGE": ("Whether to configure neutron Firewall as a Service"),
"PROMPT": "Would you like to configure neutron FWaaS?", "PROMPT": "Would you like to configure neutron FWaaS?",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -141,9 +131,6 @@ def initConfig(controller):
"NEUTRON_LB_AGENT": [ "NEUTRON_LB_AGENT": [
{"CMD_OPTION": "os-neutron-lb-interface-mappings", {"CMD_OPTION": "os-neutron-lb-interface-mappings",
"USAGE": ("A comma separated list of interface mappings for the "
"Neutron linuxbridge plugin (eg. physnet1:eth1,"
"physnet2:eth2,physnet3:eth3)"),
"PROMPT": ("Enter a comma separated list of interface mappings " "PROMPT": ("Enter a comma separated list of interface mappings "
"for the Neutron linuxbridge plugin"), "for the Neutron linuxbridge plugin"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -159,9 +146,6 @@ def initConfig(controller):
"NEUTRON_OVS_AGENT": [ "NEUTRON_OVS_AGENT": [
{"CMD_OPTION": "os-neutron-ovs-bridge-mappings", {"CMD_OPTION": "os-neutron-ovs-bridge-mappings",
"USAGE": ("A comma separated list of bridge mappings for the "
"Neutron openvswitch plugin (eg. physnet1:br-eth1,"
"physnet2:br-eth2,physnet3:br-eth3)"),
"PROMPT": ("Enter a comma separated list of bridge mappings for " "PROMPT": ("Enter a comma separated list of bridge mappings for "
"the Neutron openvswitch plugin"), "the Neutron openvswitch plugin"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -175,9 +159,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-ovs-bridge-interfaces", {"CMD_OPTION": "os-neutron-ovs-bridge-interfaces",
"USAGE": ("A comma separated list of colon-separated OVS "
"bridge:interface pairs. The interface will be added "
"to the associated bridge."),
"PROMPT": ("Enter a comma separated list of OVS bridge:interface " "PROMPT": ("Enter a comma separated list of OVS bridge:interface "
"pairs for the Neutron openvswitch plugin"), "pairs for the Neutron openvswitch plugin"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -193,10 +174,6 @@ def initConfig(controller):
"NEUTRON_OVS_AGENT_TUNNEL": [ "NEUTRON_OVS_AGENT_TUNNEL": [
{"CMD_OPTION": "os-neutron-ovs-tunnel-if", {"CMD_OPTION": "os-neutron-ovs-tunnel-if",
"USAGE": ("The interface for the OVS tunnel. Packstack will "
"override the IP address used for tunnels on this "
"hypervisor to the IP found on the specified interface."
" (eg. eth1)"),
"PROMPT": ("Enter interface with IP to override the default " "PROMPT": ("Enter interface with IP to override the default "
"tunnel local_ip"), "tunnel local_ip"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -213,7 +190,6 @@ def initConfig(controller):
"NEUTRON_OVS_AGENT_VXLAN": [ "NEUTRON_OVS_AGENT_VXLAN": [
{"CMD_OPTION": "os-neutron-ovs-vxlan-udp-port", {"CMD_OPTION": "os-neutron-ovs-vxlan-udp-port",
"CONF_NAME": "CONFIG_NEUTRON_OVS_VXLAN_UDP_PORT", "CONF_NAME": "CONFIG_NEUTRON_OVS_VXLAN_UDP_PORT",
"USAGE": "VXLAN UDP port",
"PROMPT": "Enter VXLAN UDP port number", "PROMPT": "Enter VXLAN UDP port number",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_port], "VALIDATORS": [validators.validate_port],
@@ -228,9 +204,6 @@ def initConfig(controller):
"NEUTRON_ML2_PLUGIN": [ "NEUTRON_ML2_PLUGIN": [
{"CMD_OPTION": "os-neutron-ml2-type-drivers", {"CMD_OPTION": "os-neutron-ml2-type-drivers",
"CONF_NAME": "CONFIG_NEUTRON_ML2_TYPE_DRIVERS", "CONF_NAME": "CONFIG_NEUTRON_ML2_TYPE_DRIVERS",
"USAGE": ("A comma separated list of network type driver "
"entrypoints to be loaded from the "
"neutron.ml2.type_drivers namespace."),
"PROMPT": ("Enter a comma separated list of network type driver " "PROMPT": ("Enter a comma separated list of network type driver "
"entrypoints"), "entrypoints"),
"OPTION_LIST": ["local", "flat", "vlan", "gre", "vxlan"], "OPTION_LIST": ["local", "flat", "vlan", "gre", "vxlan"],
@@ -244,10 +217,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-tenant-network-types", {"CMD_OPTION": "os-neutron-ml2-tenant-network-types",
"CONF_NAME": "CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES", "CONF_NAME": "CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES",
"USAGE": ("A comma separated ordered list of network_types to "
"allocate as tenant networks. The value 'local' is "
"only useful for single-box testing but provides no "
"connectivity between hosts."),
"PROMPT": ("Enter a comma separated ordered list of " "PROMPT": ("Enter a comma separated ordered list of "
"network_types to allocate as tenant networks"), "network_types to allocate as tenant networks"),
"OPTION_LIST": ["local", "vlan", "gre", "vxlan"], "OPTION_LIST": ["local", "vlan", "gre", "vxlan"],
@@ -261,9 +230,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-mechanism-drivers", {"CMD_OPTION": "os-neutron-ml2-mechanism-drivers",
"CONF_NAME": "CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS", "CONF_NAME": "CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS",
"USAGE": ("A comma separated ordered list of networking "
"mechanism driver entrypoints to be loaded from the "
"neutron.ml2.mechanism_drivers namespace."),
"PROMPT": ("Enter a comma separated ordered list of networking " "PROMPT": ("Enter a comma separated ordered list of networking "
"mechanism driver entrypoints"), "mechanism driver entrypoints"),
"OPTION_LIST": ["logger", "test", "linuxbridge", "openvswitch", "OPTION_LIST": ["logger", "test", "linuxbridge", "openvswitch",
@@ -279,10 +245,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-flat-networks", {"CMD_OPTION": "os-neutron-ml2-flat-networks",
"CONF_NAME": "CONFIG_NEUTRON_ML2_FLAT_NETWORKS", "CONF_NAME": "CONFIG_NEUTRON_ML2_FLAT_NETWORKS",
"USAGE": ("A comma separated list of physical_network names "
"with which flat networks can be created. Use * to "
"allow flat networks with arbitrary physical_network "
"names."),
"PROMPT": ("Enter a comma separated list of physical_network " "PROMPT": ("Enter a comma separated list of physical_network "
"names with which flat networks can be created"), "names with which flat networks can be created"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -296,12 +258,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-vlan-ranges", {"CMD_OPTION": "os-neutron-ml2-vlan-ranges",
"CONF_NAME": "CONFIG_NEUTRON_ML2_VLAN_RANGES", "CONF_NAME": "CONFIG_NEUTRON_ML2_VLAN_RANGES",
"USAGE": ("A comma separated list of <physical_network>:"
"<vlan_min>:<vlan_max> or <physical_network> "
"specifying physical_network names usable for VLAN "
"provider and tenant networks, as well as ranges of "
"VLAN tags on each available for allocation to tenant "
"networks."),
"PROMPT": ("Enter a comma separated list of physical_network " "PROMPT": ("Enter a comma separated list of physical_network "
"names usable for VLAN"), "names usable for VLAN"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -315,10 +271,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-tunnel-id-ranges", {"CMD_OPTION": "os-neutron-ml2-tunnel-id-ranges",
"CONF_NAME": "CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES", "CONF_NAME": "CONFIG_NEUTRON_ML2_TUNNEL_ID_RANGES",
"USAGE": ("A comma separated list of <tun_min>:<tun_max> tuples "
"enumerating ranges of GRE tunnel IDs that are "
"available for tenant network allocation. Should be "
"an array with tun_max +1 - tun_min > 1000000"),
"PROMPT": ("Enter a comma separated list of <tun_min>:<tun_max> " "PROMPT": ("Enter a comma separated list of <tun_min>:<tun_max> "
"tuples enumerating ranges of GRE tunnel IDs that " "tuples enumerating ranges of GRE tunnel IDs that "
"are available for tenant network allocation"), "are available for tenant network allocation"),
@@ -333,11 +285,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-vxlan-group", {"CMD_OPTION": "os-neutron-ml2-vxlan-group",
"CONF_NAME": "CONFIG_NEUTRON_ML2_VXLAN_GROUP", "CONF_NAME": "CONFIG_NEUTRON_ML2_VXLAN_GROUP",
"USAGE": ("Multicast group for VXLAN. If unset, disables VXLAN "
"enable sending allocate broadcast traffic to this "
"multicast group. When left unconfigured, will disable "
"multicast VXLAN mode. Should be an Multicast IP "
"(v4 or v6) address."),
"PROMPT": "Enter a multicast group for VXLAN", "PROMPT": "Enter a multicast group for VXLAN",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [], "VALIDATORS": [],
@@ -350,10 +297,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-neutron-ml2-vni-ranges", {"CMD_OPTION": "os-neutron-ml2-vni-ranges",
"CONF_NAME": "CONFIG_NEUTRON_ML2_VNI_RANGES", "CONF_NAME": "CONFIG_NEUTRON_ML2_VNI_RANGES",
"USAGE": ("A comma separated list of <vni_min>:<vni_max> tuples "
"enumerating ranges of VXLAN VNI IDs that are "
"available for tenant network allocation. Min value "
"is 0 and Max value is 16777215."),
"PROMPT": ("Enter a comma separated list of <vni_min>:<vni_max> " "PROMPT": ("Enter a comma separated list of <vni_min>:<vni_max> "
"tuples enumerating ranges of VXLAN VNI IDs that are " "tuples enumerating ranges of VXLAN VNI IDs that are "
"available for tenant network allocation"), "available for tenant network allocation"),
@@ -368,7 +311,6 @@ def initConfig(controller):
# We need to ask for this only in case of ML2 plugins # We need to ask for this only in case of ML2 plugins
{"CMD_OPTION": "os-neutron-l2-agent", {"CMD_OPTION": "os-neutron-l2-agent",
"USAGE": "The name of the L2 agent to be used with Neutron",
"PROMPT": ("Enter the name of the L2 agent to be used " "PROMPT": ("Enter the name of the L2 agent to be used "
"with Neutron"), "with Neutron"),
"OPTION_LIST": ["linuxbridge", "openvswitch"], "OPTION_LIST": ["linuxbridge", "openvswitch"],
@@ -382,7 +324,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
], ],
} }
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
conf_groups = [ conf_groups = [
{"GROUP_NAME": "NEUTRON", {"GROUP_NAME": "NEUTRON",
"DESCRIPTION": "Neutron config", "DESCRIPTION": "Neutron config",

View File

@@ -26,6 +26,7 @@ from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer.exceptions import ScriptRuntimeError from packstack.installer.exceptions import ScriptRuntimeError
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -50,7 +51,6 @@ def initConfig(controller):
nova_params = { nova_params = {
"NOVA": [ "NOVA": [
{"CMD_OPTION": "nova-db-passwd", {"CMD_OPTION": "nova-db-passwd",
"USAGE": "The password to use for the Nova to access DB",
"PROMPT": "Enter the password for the Nova DB access", "PROMPT": "Enter the password for the Nova DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -64,8 +64,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "nova-ks-passwd", {"CMD_OPTION": "nova-ks-passwd",
"USAGE": ("The password to use for the Nova to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Nova Keystone access", "PROMPT": "Enter the password for the Nova Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -79,8 +77,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novasched-cpu-allocation-ratio", {"CMD_OPTION": "novasched-cpu-allocation-ratio",
"USAGE": ("The overcommitment ratio for virtual to physical CPUs."
" Set to 1.0 to disable CPU overcommitment"),
"PROMPT": "Enter the CPU overcommitment ratio. Set to 1.0 to " "PROMPT": "Enter the CPU overcommitment ratio. Set to 1.0 to "
"disable CPU overcommitment", "disable CPU overcommitment",
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -94,8 +90,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novasched-ram-allocation-ratio", {"CMD_OPTION": "novasched-ram-allocation-ratio",
"USAGE": ("The overcommitment ratio for virtual to physical RAM. "
"Set to 1.0 to disable RAM overcommitment"),
"PROMPT": ("Enter the RAM overcommitment ratio. Set to 1.0 to " "PROMPT": ("Enter the RAM overcommitment ratio. Set to 1.0 to "
"disable RAM overcommitment"), "disable RAM overcommitment"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -109,11 +103,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novacompute-migrate-protocol", {"CMD_OPTION": "novacompute-migrate-protocol",
"USAGE": ("Protocol used for instance migration. Allowed values "
"are tcp and ssh. Note that by defaul nova user is "
"created with /sbin/nologin shell so that ssh protocol "
"won't be working. To make ssh protocol work you have "
"to fix nova user on compute hosts manually."),
"PROMPT": ("Enter protocol which will be used for instance " "PROMPT": ("Enter protocol which will be used for instance "
"migration"), "migration"),
"OPTION_LIST": ['tcp', 'ssh'], "OPTION_LIST": ['tcp', 'ssh'],
@@ -127,7 +116,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "nova-compute-manager", {"CMD_OPTION": "nova-compute-manager",
"USAGE": ("The manager that will run nova compute."),
"PROMPT": ("Enter the compute manager for nova " "PROMPT": ("Enter the compute manager for nova "
"migration"), "migration"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -144,8 +132,6 @@ def initConfig(controller):
"NOVA_NETWORK": [ "NOVA_NETWORK": [
{"CMD_OPTION": "novacompute-privif", {"CMD_OPTION": "novacompute-privif",
"USAGE": ("Private interface for Flat DHCP on the Nova compute "
"servers"),
"PROMPT": ("Enter the Private interface for Flat DHCP on the Nova" "PROMPT": ("Enter the Private interface for Flat DHCP on the Nova"
" compute servers"), " compute servers"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -159,7 +145,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-manager", {"CMD_OPTION": "novanetwork-manager",
"USAGE": "Nova network manager",
"PROMPT": "Enter the Nova network manager", "PROMPT": "Enter the Nova network manager",
"OPTION_LIST": [r'^nova\.network\.manager\.\w+Manager$'], "OPTION_LIST": [r'^nova\.network\.manager\.\w+Manager$'],
"VALIDATORS": [validators.validate_regexp], "VALIDATORS": [validators.validate_regexp],
@@ -172,7 +157,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-pubif", {"CMD_OPTION": "novanetwork-pubif",
"USAGE": "Public interface on the Nova network server",
"PROMPT": "Enter the Public interface on the Nova network server", "PROMPT": "Enter the Public interface on the Nova network server",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -185,8 +169,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-privif", {"CMD_OPTION": "novanetwork-privif",
"USAGE": ("Private interface for network manager on the Nova "
"network server"),
"PROMPT": ("Enter the Private interface for network manager on " "PROMPT": ("Enter the Private interface for network manager on "
"the Nova network server"), "the Nova network server"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -200,7 +182,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-fixed-range", {"CMD_OPTION": "novanetwork-fixed-range",
"USAGE": "IP Range for network manager",
"PROMPT": "Enter the IP Range for network manager", "PROMPT": "Enter the IP Range for network manager",
"OPTION_LIST": ["^[\:\.\da-fA-f]+(\/\d+){0,1}$"], "OPTION_LIST": ["^[\:\.\da-fA-f]+(\/\d+){0,1}$"],
"PROCESSORS": [processors.process_cidr], "PROCESSORS": [processors.process_cidr],
@@ -214,7 +195,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-floating-range", {"CMD_OPTION": "novanetwork-floating-range",
"USAGE": "IP Range for Floating IP's",
"PROMPT": "Enter the IP Range for Floating IP's", "PROMPT": "Enter the IP Range for Floating IP's",
"OPTION_LIST": ["^[\:\.\da-fA-f]+(\/\d+){0,1}$"], "OPTION_LIST": ["^[\:\.\da-fA-f]+(\/\d+){0,1}$"],
"PROCESSORS": [processors.process_cidr], "PROCESSORS": [processors.process_cidr],
@@ -228,7 +208,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-auto-assign-floating-ip", {"CMD_OPTION": "novanetwork-auto-assign-floating-ip",
"USAGE": "Automatically assign a floating IP to new instances",
"PROMPT": ("Should new instances automatically have a floating " "PROMPT": ("Should new instances automatically have a floating "
"IP assigned?"), "IP assigned?"),
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
@@ -244,7 +223,6 @@ def initConfig(controller):
"NOVA_NETWORK_VLAN": [ "NOVA_NETWORK_VLAN": [
{"CMD_OPTION": "novanetwork-vlan-start", {"CMD_OPTION": "novanetwork-vlan-start",
"USAGE": "First VLAN for private networks",
"PROMPT": "Enter first VLAN for private networks", "PROMPT": "Enter first VLAN for private networks",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -257,7 +235,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-num-networks", {"CMD_OPTION": "novanetwork-num-networks",
"USAGE": "Number of networks to support",
"PROMPT": "How many networks should be supported", "PROMPT": "How many networks should be supported",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -270,7 +247,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "novanetwork-network-size", {"CMD_OPTION": "novanetwork-network-size",
"USAGE": "Number of addresses in each private subnet",
"PROMPT": "How many addresses should be in each private subnet", "PROMPT": "How many addresses should be in each private subnet",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -283,6 +259,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
], ],
} }
update_params_usage(basedefs.PACKSTACK_DOC, nova_params)
def use_nova_network(config): def use_nova_network(config):
return (config['CONFIG_NOVA_INSTALL'] == 'y' and return (config['CONFIG_NOVA_INSTALL'] == 'y' and

View File

@@ -29,6 +29,7 @@ from packstack.installer import validators
from packstack.modules.common import filtered_hosts from packstack.modules.common import filtered_hosts
from packstack.modules.common import is_all_in_one from packstack.modules.common import is_all_in_one
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -44,12 +45,6 @@ def initConfig(controller):
params = { params = {
"GLOBAL": [ "GLOBAL": [
{"CMD_OPTION": "ssh-public-key", {"CMD_OPTION": "ssh-public-key",
"USAGE": (
"Path to a Public key to install on servers. If a usable "
"key has not been installed on the remote servers the user "
"will be prompted for a password and this key will be "
"installed so the password will not be required again"
),
"PROMPT": ( "PROMPT": (
"Enter the path to your ssh Public key to install on servers" "Enter the path to your ssh Public key to install on servers"
), ),
@@ -68,11 +63,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "default-password", {"CMD_OPTION": "default-password",
"USAGE": (
"Set a default password everywhere. The default password "
"will be overriden by whatever password is set for each "
"individual service or user."
),
"PROMPT": ( "PROMPT": (
"Enter a default password to be used. Leave blank for a " "Enter a default password to be used. Leave blank for a "
"randomly generated one." "randomly generated one."
@@ -87,9 +77,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "mariadb-install", {"CMD_OPTION": "mariadb-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install MariaDB"
),
"PROMPT": "Should Packstack install MariaDB", "PROMPT": "Should Packstack install MariaDB",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -103,10 +90,6 @@ def initConfig(controller):
"DEPRECATES": ['CONFIG_MYSQL_INSTALL']}, "DEPRECATES": ['CONFIG_MYSQL_INSTALL']},
{"CMD_OPTION": "os-glance-install", {"CMD_OPTION": "os-glance-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Image Service (Glance)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Image Service (Glance)" "Should Packstack install OpenStack Image Service (Glance)"
), ),
@@ -121,10 +104,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-cinder-install", {"CMD_OPTION": "os-cinder-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Block Storage (Cinder)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Block Storage " "Should Packstack install OpenStack Block Storage "
"(Cinder) service" "(Cinder) service"
@@ -140,10 +119,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-manila-install", {"CMD_OPTION": "os-manila-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Shared File System (Manila)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Shared File System " "Should Packstack install OpenStack Shared File System "
"(Manila) service" "(Manila) service"
@@ -159,10 +134,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-nova-install", {"CMD_OPTION": "os-nova-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Compute (Nova)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Compute (Nova) service" "Should Packstack install OpenStack Compute (Nova) service"
), ),
@@ -177,11 +148,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-neutron-install", {"CMD_OPTION": "os-neutron-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Networking (Neutron). Otherwise Nova Network "
"will be used."
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Networking (Neutron) " "Should Packstack install OpenStack Networking (Neutron) "
"service" "service"
@@ -197,10 +163,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-horizon-install", {"CMD_OPTION": "os-horizon-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Dashboard (Horizon)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Dashboard (Horizon)" "Should Packstack install OpenStack Dashboard (Horizon)"
), ),
@@ -215,10 +177,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-swift-install", {"CMD_OPTION": "os-swift-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Object Storage (Swift)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Object Storage (Swift)" "Should Packstack install OpenStack Object Storage (Swift)"
), ),
@@ -233,10 +191,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-ceilometer-install", {"CMD_OPTION": "os-ceilometer-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Metering (Ceilometer)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Metering (Ceilometer)" "Should Packstack install OpenStack Metering (Ceilometer)"
), ),
@@ -251,10 +205,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-heat-install", {"CMD_OPTION": "os-heat-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Orchestration (Heat)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Orchestration (Heat)" "Should Packstack install OpenStack Orchestration (Heat)"
), ),
@@ -269,10 +219,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-sahara-install", {"CMD_OPTION": "os-sahara-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Clustering (Sahara)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Clustering (Sahara)" "Should Packstack install OpenStack Clustering (Sahara)"
), ),
@@ -287,10 +233,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-trove-install", {"CMD_OPTION": "os-trove-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Database (Trove)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Database (Trove)" "Should Packstack install OpenStack Database (Trove)"
), ),
@@ -305,10 +247,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-ironic-install", {"CMD_OPTION": "os-ironic-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Bare Metal (Ironic)"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install OpenStack Bare Metal (Ironic)" "Should Packstack install OpenStack Bare Metal (Ironic)"
), ),
@@ -323,11 +261,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-client-install", {"CMD_OPTION": "os-client-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"the OpenStack Client packages. An admin \"rc\" file will "
"also be installed"
),
"PROMPT": "Should Packstack install OpenStack client tools", "PROMPT": "Should Packstack install OpenStack client tools",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -340,8 +273,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "ntp-servers", {"CMD_OPTION": "ntp-servers",
"USAGE": ("Comma separated list of NTP servers. Leave plain if "
"Packstack should not install ntpd on instances."),
"PROMPT": ("Enter a comma separated list of NTP server(s). Leave " "PROMPT": ("Enter a comma separated list of NTP server(s). Leave "
"plain if Packstack should not install ntpd " "plain if Packstack should not install ntpd "
"on instances."), "on instances."),
@@ -355,10 +286,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "nagios-install", {"CMD_OPTION": "nagios-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install Nagios "
"to monitor OpenStack hosts"
),
"PROMPT": ( "PROMPT": (
"Should Packstack install Nagios to monitor OpenStack " "Should Packstack install Nagios to monitor OpenStack "
"hosts" "hosts"
@@ -374,13 +301,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "exclude-servers", {"CMD_OPTION": "exclude-servers",
"USAGE": (
"Comma separated list of servers to be excluded from "
"installation in case you are running Packstack the second "
"time with the same answer file and don't want Packstack "
"to touch these servers. Leave plain if you don't need to "
"exclude any server."
),
"PROMPT": ( "PROMPT": (
"Enter a comma separated list of server(s) to be excluded." "Enter a comma separated list of server(s) to be excluded."
" Leave plain if you don't need to exclude any server." " Leave plain if you don't need to exclude any server."
@@ -395,10 +315,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-debug-mode", {"CMD_OPTION": "os-debug-mode",
"USAGE": (
"Set to 'y' if you want to run OpenStack services in debug "
"mode. Otherwise set to 'n'."
),
"PROMPT": "Do you want to run OpenStack services in debug mode", "PROMPT": "Do you want to run OpenStack services in debug mode",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"DEFAULT_VALUE": "n", "DEFAULT_VALUE": "n",
@@ -412,11 +328,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_CONTROLLER_HOST", {"CONF_NAME": "CONFIG_CONTROLLER_HOST",
"CMD_OPTION": "os-controller-host", "CMD_OPTION": "os-controller-host",
"USAGE": (
"The IP address of the server on which to install OpenStack"
" services specific to controller role such as API servers,"
" Horizon, etc."
),
"PROMPT": "Enter the IP address of the controller host", "PROMPT": "Enter the IP address of the controller host",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip, "VALIDATORS": [validators.validate_ip,
@@ -446,10 +357,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_COMPUTE_HOSTS", {"CONF_NAME": "CONFIG_COMPUTE_HOSTS",
"CMD_OPTION": "os-compute-hosts", "CMD_OPTION": "os-compute-hosts",
"USAGE": (
"The list of IP addresses of the server on which to install"
" the Nova compute service"
),
"PROMPT": ( "PROMPT": (
"Enter list of IP addresses on which to install compute " "Enter list of IP addresses on which to install compute "
"service" "service"
@@ -467,9 +374,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_NETWORK_HOSTS", {"CONF_NAME": "CONFIG_NETWORK_HOSTS",
"CMD_OPTION": "os-network-hosts", "CMD_OPTION": "os-network-hosts",
"USAGE": ("The list of IP addresses of the server on which "
"to install the network service such as Nova "
"network or Neutron"),
"PROMPT": ("Enter list of IP addresses on which to install " "PROMPT": ("Enter list of IP addresses on which to install "
"network service"), "network service"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -487,10 +391,6 @@ def initConfig(controller):
'CONFIG_NOVA_NETWORK_HOSTS']}, 'CONFIG_NOVA_NETWORK_HOSTS']},
{"CMD_OPTION": "os-vmware", {"CMD_OPTION": "os-vmware",
"USAGE": (
"Set to 'y' if you want to use VMware vCenter as hypervisor"
" and storage. Otherwise set to 'n'."
),
"PROMPT": ( "PROMPT": (
"Do you want to use VMware vCenter as hypervisor and " "Do you want to use VMware vCenter as hypervisor and "
"datastore" "datastore"
@@ -506,10 +406,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-vmware", {"CMD_OPTION": "os-vmware",
"USAGE": (
"Set to 'y' if you want to use VMware vCenter as hypervisor"
" and storage. Otherwise set to 'n'."
),
"PROMPT": ( "PROMPT": (
"Do you want to use VMware vCenter as hypervisor and " "Do you want to use VMware vCenter as hypervisor and "
"datastore" "datastore"
@@ -525,12 +421,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "unsupported", {"CMD_OPTION": "unsupported",
"USAGE": (
"Set to 'y' if you want to use unsupported parameters. "
"This should be used only if you know what you are doing."
"Issues caused by using unsupported options won't be fixed "
"before next major release."
),
"PROMPT": ( "PROMPT": (
"Enable this on your own risk. Do you want to use " "Enable this on your own risk. Do you want to use "
"insupported parameters" "insupported parameters"
@@ -548,7 +438,6 @@ def initConfig(controller):
"VMWARE": [ "VMWARE": [
{"CMD_OPTION": "vcenter-host", {"CMD_OPTION": "vcenter-host",
"USAGE": "The IP address of the VMware vCenter server",
"PROMPT": ( "PROMPT": (
"Enter the IP address of the VMware vCenter server to use " "Enter the IP address of the VMware vCenter server to use "
"with Nova" "with Nova"
@@ -564,7 +453,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "vcenter-username", {"CMD_OPTION": "vcenter-username",
"USAGE": "The username to authenticate to VMware vCenter server",
"PROMPT": ("Enter the username to authenticate on VMware " "PROMPT": ("Enter the username to authenticate on VMware "
"vCenter server"), "vCenter server"),
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -576,7 +464,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "vcenter-password", {"CMD_OPTION": "vcenter-password",
"USAGE": "The password to authenticate to VMware vCenter server",
"PROMPT": ("Enter the password to authenticate on VMware " "PROMPT": ("Enter the password to authenticate on VMware "
"vCenter server"), "vCenter server"),
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -588,7 +475,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "vcenter-cluster", {"CMD_OPTION": "vcenter-cluster",
"USAGE": "The name of the vCenter cluster",
"PROMPT": "Enter the name of the vCenter datastore", "PROMPT": "Enter the name of the vCenter datastore",
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
"MASK_INPUT": False, "MASK_INPUT": False,
@@ -602,11 +488,6 @@ def initConfig(controller):
"UNSUPPORTED": [ "UNSUPPORTED": [
{"CONF_NAME": "CONFIG_STORAGE_HOST", {"CONF_NAME": "CONFIG_STORAGE_HOST",
"CMD_OPTION": "os-storage-host", "CMD_OPTION": "os-storage-host",
"USAGE": (
"(Unsupported!) The IP address of the server on which "
"to install OpenStack services specific to storage servers "
"such as Glance and Cinder."
),
"PROMPT": "Enter the IP address of the storage host", "PROMPT": "Enter the IP address of the storage host",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip, "VALIDATORS": [validators.validate_ip,
@@ -620,10 +501,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_SAHARA_HOST", {"CONF_NAME": "CONFIG_SAHARA_HOST",
"CMD_OPTION": "os-sahara-host", "CMD_OPTION": "os-sahara-host",
"USAGE": (
"(Unsupported!) The IP address of the server on which "
"to install OpenStack services specific to Sahara"
),
"PROMPT": "Enter the IP address of the Sahara host", "PROMPT": "Enter the IP address of the Sahara host",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip, "VALIDATORS": [validators.validate_ip,
@@ -636,6 +513,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
] ]
} }
update_params_usage(basedefs.PACKSTACK_DOC, params)
def use_vcenter(config): def use_vcenter(config):
return (config['CONFIG_NOVA_INSTALL'] == 'y' and return (config['CONFIG_NOVA_INSTALL'] == 'y' and

View File

@@ -16,11 +16,13 @@
Installs and configures Provisioning for demo usage and testing Installs and configures Provisioning for demo usage and testing
""" """
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.modules.common import is_all_in_one from packstack.modules.common import is_all_in_one
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -45,9 +47,6 @@ def initConfig(controller):
conf_params = { conf_params = {
"PROVISION_INIT": [ "PROVISION_INIT": [
{"CMD_OPTION": "provision-demo", {"CMD_OPTION": "provision-demo",
"USAGE": ("Whether to provision for demo usage and testing. Note "
"that provisioning is only supported for all-in-one "
"installations."),
"PROMPT": ("Would you like to provision for demo usage " "PROMPT": ("Would you like to provision for demo usage "
"and testing"), "and testing"),
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
@@ -61,7 +60,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-tempest", {"CMD_OPTION": "provision-tempest",
"USAGE": "Whether to configure tempest for testing",
"PROMPT": ("Would you like to configure Tempest (OpenStack test " "PROMPT": ("Would you like to configure Tempest (OpenStack test "
"suite). Note that provisioning is only supported for " "suite). Note that provisioning is only supported for "
"all-in-one installations."), "all-in-one installations."),
@@ -78,7 +76,6 @@ def initConfig(controller):
"PROVISION_DEMO": [ "PROVISION_DEMO": [
{"CMD_OPTION": "provision-demo-floatrange", {"CMD_OPTION": "provision-demo-floatrange",
"USAGE": "The CIDR network address for the floating IP subnet",
"PROMPT": "Enter the network address for the floating IP subnet", "PROMPT": "Enter the network address for the floating IP subnet",
"OPTION_LIST": False, "OPTION_LIST": False,
"VALIDATORS": False, "VALIDATORS": False,
@@ -91,7 +88,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-image-name", {"CMD_OPTION": "provision-image-name",
"USAGE": "A named to be used for the demo image in Glance",
"PROMPT": "Enter the name to be assigned to the demo image", "PROMPT": "Enter the name to be assigned to the demo image",
"OPTION_LIST": False, "OPTION_LIST": False,
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -104,8 +100,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-image-url", {"CMD_OPTION": "provision-image-url",
"USAGE": ("A URL or local file location for an image "
"to be loaded into Glance"),
"PROMPT": ("Enter the location of an image to be loaded " "PROMPT": ("Enter the location of an image to be loaded "
"into Glance"), "into Glance"),
"OPTION_LIST": False, "OPTION_LIST": False,
@@ -119,7 +113,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-image-format", {"CMD_OPTION": "provision-image-format",
"USAGE": ("Disk format (qcow2, raw, etc) of demo image"),
"PROMPT": ("Enter the format of the demo image"), "PROMPT": ("Enter the format of the demo image"),
"OPTION_LIST": False, "OPTION_LIST": False,
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -132,8 +125,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-image-ssh-user", {"CMD_OPTION": "provision-image-ssh-user",
"USAGE": ("Name of a user to use when connecting via ssh to "
"instances booted from the demo image"),
"PROMPT": ("Enter the name of a user to use when connecting " "PROMPT": ("Enter the name of a user to use when connecting "
"to the demo image via ssh"), "to the demo image via ssh"),
"OPTION_LIST": False, "OPTION_LIST": False,
@@ -149,9 +140,6 @@ def initConfig(controller):
"PROVISION_TEMPEST": [ "PROVISION_TEMPEST": [
{"CMD_OPTION": "provision-tempest-user", {"CMD_OPTION": "provision-tempest-user",
"USAGE": "The name of the Tempest Provisioning user. If you "
"don't provide a user name, Tempest will be configured "
"in a standalone mode",
"PROMPT": ("Enter the name of the Tempest Provisioning user " "PROMPT": ("Enter the name of the Tempest Provisioning user "
"(if blank, Tempest will be configured in a " "(if blank, Tempest will be configured in a "
"standalone mode) "), "standalone mode) "),
@@ -166,7 +154,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-tempest-user-passwd", {"CMD_OPTION": "provision-tempest-user-passwd",
"USAGE": "The password to use for the Tempest Provisioning user",
"PROMPT": "Enter the password for the Tempest Provisioning user", "PROMPT": "Enter the password for the Tempest Provisioning user",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -180,7 +167,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-tempest-floatrange", {"CMD_OPTION": "provision-tempest-floatrange",
"USAGE": "The CIDR network address for the floating IP subnet",
"PROMPT": "Enter the network address for the floating IP subnet", "PROMPT": "Enter the network address for the floating IP subnet",
"OPTION_LIST": False, "OPTION_LIST": False,
"VALIDATORS": False, "VALIDATORS": False,
@@ -193,7 +179,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-tempest-repo-uri", {"CMD_OPTION": "provision-tempest-repo-uri",
"USAGE": "The uri of the tempest git repository to use",
"PROMPT": "What is the uri of the Tempest git repository?", "PROMPT": "What is the uri of the Tempest git repository?",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -206,7 +191,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "provision-tempest-repo-revision", {"CMD_OPTION": "provision-tempest-repo-revision",
"USAGE": "The revision of the tempest git repository to use",
"PROMPT": ("What revision, branch, or tag of the Tempest git " "PROMPT": ("What revision, branch, or tag of the Tempest git "
"repository should be used"), "repository should be used"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -222,8 +206,6 @@ def initConfig(controller):
"PROVISION_ALL_IN_ONE_OVS_BRIDGE": [ "PROVISION_ALL_IN_ONE_OVS_BRIDGE": [
{"CMD_OPTION": "provision-all-in-one-ovs-bridge", {"CMD_OPTION": "provision-all-in-one-ovs-bridge",
"USAGE": ("Whether to configure the ovs external bridge in an "
"all-in-one deployment"),
"PROMPT": "Would you like to configure the external ovs bridge", "PROMPT": "Would you like to configure the external ovs bridge",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -236,6 +218,7 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
], ],
} }
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
def check_provisioning_demo(config): def check_provisioning_demo(config):
return (config.get('CONFIG_PROVISION_DEMO', 'n') == 'y') return (config.get('CONFIG_PROVISION_DEMO', 'n') == 'y')

View File

@@ -16,9 +16,12 @@
Installs and configures Sahara Installs and configures Sahara
""" """
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -35,7 +38,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_SAHARA_DB_PW", {"CONF_NAME": "CONFIG_SAHARA_DB_PW",
"CMD_OPTION": "sahara-db-passwd", "CMD_OPTION": "sahara-db-passwd",
"PROMPT": "Enter the password to use for Sahara to access the DB", "PROMPT": "Enter the password to use for Sahara to access the DB",
"USAGE": "The password to use for the Sahara DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
"DEFAULT_VALUE": "PW_PLACEHOLDER", "DEFAULT_VALUE": "PW_PLACEHOLDER",
@@ -48,8 +50,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_SAHARA_KS_PW", {"CONF_NAME": "CONFIG_SAHARA_KS_PW",
"CMD_OPTION": "sahara-ks-passwd", "CMD_OPTION": "sahara-ks-passwd",
"USAGE": ("The password to use for Sahara to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for Sahara Keystone access", "PROMPT": "Enter the password for Sahara Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -61,6 +61,7 @@ def initConfig(controller):
"NEED_CONFIRM": True, "NEED_CONFIRM": True,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "SAHARA", group = {"GROUP_NAME": "SAHARA",
"DESCRIPTION": "Sahara Config parameters", "DESCRIPTION": "Sahara Config parameters",
"PRE_CONDITION": "CONFIG_SAHARA_INSTALL", "PRE_CONDITION": "CONFIG_SAHARA_INSTALL",

View File

@@ -21,12 +21,14 @@ import re
import logging import logging
import platform import platform
from packstack.installer import basedefs
from packstack.installer import exceptions from packstack.installer import exceptions
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.modules.common import filtered_hosts from packstack.modules.common import filtered_hosts
from packstack.modules.common import is_all_in_one from packstack.modules.common import is_all_in_one
from packstack.modules.documentation import update_params_usage
# ------------ Server Preparation Packstack Plugin Initialization ------------- # ------------ Server Preparation Packstack Plugin Initialization -------------
@@ -38,7 +40,6 @@ def initConfig(controller):
conf_params = { conf_params = {
"SERVERPREPARE": [ "SERVERPREPARE": [
{"CMD_OPTION": "use-epel", {"CMD_OPTION": "use-epel",
"USAGE": "To subscribe each server to EPEL enter \"y\"",
"PROMPT": "To subscribe each server to EPEL enter \"y\"", "PROMPT": "To subscribe each server to EPEL enter \"y\"",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -51,8 +52,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "additional-repo", {"CMD_OPTION": "additional-repo",
"USAGE": ("A comma separated list of URLs to any additional yum "
"repositories to install"),
"PROMPT": ("Enter a comma separated list of URLs to any " "PROMPT": ("Enter a comma separated list of URLs to any "
"additional yum repositories to install"), "additional yum repositories to install"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -67,8 +66,6 @@ def initConfig(controller):
"RHEL": [ "RHEL": [
{"CMD_OPTION": "rh-username", {"CMD_OPTION": "rh-username",
"USAGE": ("To subscribe each server with Red Hat subscription "
"manager, include this with CONFIG_RH_PW"),
"PROMPT": "To subscribe each server to Red Hat enter a username ", "PROMPT": "To subscribe each server to Red Hat enter a username ",
"OPTION_LIST": [], "OPTION_LIST": [],
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -80,10 +77,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-server", {"CMD_OPTION": "rhn-satellite-server",
"USAGE": ("To subscribe each server with RHN Satellite,fill "
"Satellite's URL here. Note that either satellite's "
"username/password or activation key has "
"to be provided"),
"PROMPT": ("To subscribe each server with RHN Satellite enter " "PROMPT": ("To subscribe each server with RHN Satellite enter "
"RHN Satellite server URL"), "RHN Satellite server URL"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -98,8 +91,6 @@ def initConfig(controller):
"RHSM": [ "RHSM": [
{"CMD_OPTION": "rh-password", {"CMD_OPTION": "rh-password",
"USAGE": ("To subscribe each server with Red Hat subscription "
"manager, include this with CONFIG_RH_USER"),
"PROMPT": ("To subscribe each server to Red Hat enter your " "PROMPT": ("To subscribe each server to Red Hat enter your "
"password"), "password"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -112,7 +103,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rh-enable-optional", {"CMD_OPTION": "rh-enable-optional",
"USAGE": "To enable RHEL optional repos use value \"y\"",
"PROMPT": "To enable RHEL optional repos use value \"y\"", "PROMPT": "To enable RHEL optional repos use value \"y\"",
"OPTION_LIST": ["y", "n"], "OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -125,8 +115,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rh-proxy-host", {"CMD_OPTION": "rh-proxy-host",
"USAGE": ("Specify a HTTP proxy to use with Red Hat subscription "
"manager"),
"PROMPT": ("Specify a HTTP proxy to use with Red Hat subscription" "PROMPT": ("Specify a HTTP proxy to use with Red Hat subscription"
" manager"), " manager"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -141,8 +129,6 @@ def initConfig(controller):
"RHSM_PROXY": [ "RHSM_PROXY": [
{"CMD_OPTION": "rh-proxy-port", {"CMD_OPTION": "rh-proxy-port",
"USAGE": ("Specify port of Red Hat subscription manager HTTP "
"proxy"),
"PROMPT": ("Specify port of Red Hat subscription manager HTTP " "PROMPT": ("Specify port of Red Hat subscription manager HTTP "
"proxy"), "proxy"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -155,8 +141,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rh-proxy-user", {"CMD_OPTION": "rh-proxy-user",
"USAGE": ("Specify a username to use with Red Hat subscription "
"manager HTTP proxy"),
"PROMPT": ("Specify a username to use with Red Hat subscription " "PROMPT": ("Specify a username to use with Red Hat subscription "
"manager HTTP proxy"), "manager HTTP proxy"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -169,8 +153,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rh-proxy-password", {"CMD_OPTION": "rh-proxy-password",
"USAGE": ("Specify a password to use with Red Hat subscription "
"manager HTTP proxy"),
"PROMPT": ("Specify a password to use with Red Hat subscription " "PROMPT": ("Specify a password to use with Red Hat subscription "
"manager HTTP proxy"), "manager HTTP proxy"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -185,7 +167,6 @@ def initConfig(controller):
"SATELLITE": [ "SATELLITE": [
{"CMD_OPTION": "rhn-satellite-username", {"CMD_OPTION": "rhn-satellite-username",
"USAGE": "Username to access RHN Satellite",
"PROMPT": ("Enter RHN Satellite username or leave plain if you " "PROMPT": ("Enter RHN Satellite username or leave plain if you "
"will use activation key instead"), "will use activation key instead"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -198,7 +179,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-password", {"CMD_OPTION": "rhn-satellite-password",
"USAGE": "Password to access RHN Satellite",
"PROMPT": ("Enter RHN Satellite password or leave plain if you " "PROMPT": ("Enter RHN Satellite password or leave plain if you "
"will use activation key instead"), "will use activation key instead"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -211,7 +191,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-activation-key", {"CMD_OPTION": "rhn-satellite-activation-key",
"USAGE": "Activation key for subscription to RHN Satellite",
"PROMPT": ("Enter RHN Satellite activation key or leave plain if " "PROMPT": ("Enter RHN Satellite activation key or leave plain if "
"you used username/password instead"), "you used username/password instead"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -224,7 +203,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-cacert", {"CMD_OPTION": "rhn-satellite-cacert",
"USAGE": "Specify a path or URL to a SSL CA certificate to use",
"PROMPT": "Specify a path or URL to a SSL CA certificate to use", "PROMPT": "Specify a path or URL to a SSL CA certificate to use",
"OPTION_LIST": [], "OPTION_LIST": [],
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -236,9 +214,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-profile", {"CMD_OPTION": "rhn-satellite-profile",
"USAGE": ("If required specify the profile name that should be "
"used as an identifier for the system "
"in RHN Satellite"),
"PROMPT": ("If required specify the profile name that should be " "PROMPT": ("If required specify the profile name that should be "
"used as an identifier for the system " "used as an identifier for the system "
"in RHN Satellite"), "in RHN Satellite"),
@@ -252,8 +227,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-flags", {"CMD_OPTION": "rhn-satellite-flags",
"USAGE": ("Comma separated list of flags passed to rhnreg_ks. "
"Valid flags are: novirtinfo, norhnsd, nopackages"),
"PROMPT": ("Enter comma separated list of flags passed " "PROMPT": ("Enter comma separated list of flags passed "
"to rhnreg_ks"), "to rhnreg_ks"),
"OPTION_LIST": ['novirtinfo', 'norhnsd', 'nopackages'], "OPTION_LIST": ['novirtinfo', 'norhnsd', 'nopackages'],
@@ -267,7 +240,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-proxy-host", {"CMD_OPTION": "rhn-satellite-proxy-host",
"USAGE": "Specify a HTTP proxy to use with RHN Satellite",
"PROMPT": "Specify a HTTP proxy to use with RHN Satellite", "PROMPT": "Specify a HTTP proxy to use with RHN Satellite",
"OPTION_LIST": [], "OPTION_LIST": [],
"DEFAULT_VALUE": "", "DEFAULT_VALUE": "",
@@ -281,8 +253,6 @@ def initConfig(controller):
"SATELLITE_PROXY": [ "SATELLITE_PROXY": [
{"CMD_OPTION": "rhn-satellite-proxy-username", {"CMD_OPTION": "rhn-satellite-proxy-username",
"USAGE": ("Specify a username to use with an authenticated "
"HTTP proxy"),
"PROMPT": ("Specify a username to use with an authenticated " "PROMPT": ("Specify a username to use with an authenticated "
"HTTP proxy"), "HTTP proxy"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -295,8 +265,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "rhn-satellite-proxy-password", {"CMD_OPTION": "rhn-satellite-proxy-password",
"USAGE": ("Specify a password to use with an authenticated "
"HTTP proxy."),
"PROMPT": ("Specify a password to use with an authenticated " "PROMPT": ("Specify a password to use with an authenticated "
"HTTP proxy."), "HTTP proxy."),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -309,6 +277,7 @@ def initConfig(controller):
"CONDITION": False} "CONDITION": False}
] ]
} }
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
def filled_rhsm(config): def filled_rhsm(config):
return bool(config.get('CONFIG_RH_USER')) return bool(config.get('CONFIG_RH_USER'))

View File

@@ -21,12 +21,14 @@ import re
import uuid import uuid
import netaddr import netaddr
from packstack.installer import basedefs
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.installer.exceptions import ParamValidationError from packstack.installer.exceptions import ParamValidationError
from packstack.installer import utils from packstack.installer import utils
from packstack.installer.utils import split_hosts from packstack.installer.utils import split_hosts
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate from packstack.modules.ospluginutils import getManifestTemplate
@@ -41,8 +43,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller): def initConfig(controller):
params = [ params = [
{"CMD_OPTION": "os-swift-ks-passwd", {"CMD_OPTION": "os-swift-ks-passwd",
"USAGE": ("The password to use for the Swift to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for the Swift Keystone access", "PROMPT": "Enter the password for the Swift Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -56,13 +56,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-swift-storages", {"CMD_OPTION": "os-swift-storages",
"USAGE": ("A comma separated list of devices which to use as Swift "
"Storage device. Each entry should take the format "
"/path/to/dev, for example /dev/vdb will install /dev/vdb "
"as Swift storage device (packstack does not create "
"the filesystem, you must do this first). If value is "
"omitted Packstack will create a loopback device for test "
"setup"),
"PROMPT": "Enter the Swift Storage devices e.g. /path/to/dev", "PROMPT": "Enter the Swift Storage devices e.g. /path/to/dev",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validate_storage], "VALIDATORS": [validate_storage],
@@ -76,8 +69,6 @@ def initConfig(controller):
"DEPRECATES": ['CONFIG_SWIFT_STORAGE_HOSTS']}, "DEPRECATES": ['CONFIG_SWIFT_STORAGE_HOSTS']},
{"CMD_OPTION": "os-swift-storage-zones", {"CMD_OPTION": "os-swift-storage-zones",
"USAGE": ("Number of swift storage zones, this number MUST be "
"no bigger than the number of storage devices configured"),
"PROMPT": ("Enter the number of swift storage zones, MUST be no " "PROMPT": ("Enter the number of swift storage zones, MUST be no "
"bigger than the number of storage devices configured"), "bigger than the number of storage devices configured"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -91,8 +82,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-swift-storage-replicas", {"CMD_OPTION": "os-swift-storage-replicas",
"USAGE": ("Number of swift storage replicas, this number MUST be "
"no bigger than the number of storage zones configured"),
"PROMPT": ("Enter the number of swift storage replicas, MUST be no " "PROMPT": ("Enter the number of swift storage replicas, MUST be no "
"bigger than the number of storage zones configured"), "bigger than the number of storage zones configured"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -106,7 +95,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-swift-storage-fstype", {"CMD_OPTION": "os-swift-storage-fstype",
"USAGE": "FileSystem type for storage nodes",
"PROMPT": "Enter FileSystem type for storage nodes", "PROMPT": "Enter FileSystem type for storage nodes",
"OPTION_LIST": ['xfs', 'ext4'], "OPTION_LIST": ['xfs', 'ext4'],
"VALIDATORS": [validators.validate_options], "VALIDATORS": [validators.validate_options],
@@ -119,7 +107,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-swift-hash", {"CMD_OPTION": "os-swift-hash",
"USAGE": "Shared secret for Swift",
"PROMPT": "Enter hash for Swift shared secret", "PROMPT": "Enter hash for Swift shared secret",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -132,7 +119,6 @@ def initConfig(controller):
"CONDITION": False}, "CONDITION": False},
{"CMD_OPTION": "os-swift-storage-size", {"CMD_OPTION": "os-swift-storage-size",
"USAGE": "Size of the swift loopback file storage device",
"PROMPT": ("Enter the size of the storage device (eg. 2G, 2000M, " "PROMPT": ("Enter the size of the storage device (eg. 2G, 2000M, "
"2000000K)"), "2000000K)"),
"OPTION_LIST": [], "OPTION_LIST": [],
@@ -145,6 +131,7 @@ def initConfig(controller):
"NEED_CONFIRM": False, "NEED_CONFIRM": False,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "OSSWIFT", group = {"GROUP_NAME": "OSSWIFT",
"DESCRIPTION": "OpenStack Swift Config parameters", "DESCRIPTION": "OpenStack Swift Config parameters",
"PRE_CONDITION": "CONFIG_SWIFT_INSTALL", "PRE_CONDITION": "CONFIG_SWIFT_INSTALL",

View File

@@ -16,9 +16,12 @@
Installs and configures Trove Installs and configures Trove
""" """
from packstack.installer import basedefs
from packstack.installer import utils from packstack.installer import utils
from packstack.installer import validators from packstack.installer import validators
from packstack.installer import processors from packstack.installer import processors
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources from packstack.modules.ospluginutils import createFirewallResources
@@ -45,7 +48,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_TROVE_DB_PW", {"CONF_NAME": "CONFIG_TROVE_DB_PW",
"CMD_OPTION": "trove-db-passwd", "CMD_OPTION": "trove-db-passwd",
"PROMPT": "Enter the password to use for Trove to access the DB", "PROMPT": "Enter the password to use for Trove to access the DB",
"USAGE": "The password to use for the Trove DB access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
"DEFAULT_VALUE": "PW_PLACEHOLDER", "DEFAULT_VALUE": "PW_PLACEHOLDER",
@@ -58,8 +60,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_TROVE_KS_PW", {"CONF_NAME": "CONFIG_TROVE_KS_PW",
"CMD_OPTION": "trove-ks-passwd", "CMD_OPTION": "trove-ks-passwd",
"USAGE": ("The password to use for Trove to authenticate "
"with Keystone"),
"PROMPT": "Enter the password for Trove Keystone access", "PROMPT": "Enter the password for Trove Keystone access",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -73,7 +73,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_TROVE_NOVA_USER", {"CONF_NAME": "CONFIG_TROVE_NOVA_USER",
"CMD_OPTION": "trove-nova-user", "CMD_OPTION": "trove-nova-user",
"USAGE": "The user to use when Trove connects to Nova",
"PROMPT": "Enter the user for Trove to use to connect to Nova", "PROMPT": "Enter the user for Trove to use to connect to Nova",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -86,7 +85,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_TROVE_NOVA_TENANT", {"CONF_NAME": "CONFIG_TROVE_NOVA_TENANT",
"CMD_OPTION": "trove-nova-tenant", "CMD_OPTION": "trove-nova-tenant",
"USAGE": "The tenant to use when Trove connects to Nova",
"PROMPT": "Enter the tenant for Trove to use to connect to Nova", "PROMPT": "Enter the tenant for Trove to use to connect to Nova",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -99,7 +97,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_TROVE_NOVA_PW", {"CONF_NAME": "CONFIG_TROVE_NOVA_PW",
"CMD_OPTION": "trove-nova-passwd", "CMD_OPTION": "trove-nova-passwd",
"USAGE": "The password to use when Trove connects to Nova",
"PROMPT": "Enter the password for Trove to use to connect to Nova", "PROMPT": "Enter the password for Trove to use to connect to Nova",
"OPTION_LIST": [], "OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty], "VALIDATORS": [validators.validate_not_empty],
@@ -111,7 +108,7 @@ def initConfig(controller):
"NEED_CONFIRM": True, "NEED_CONFIRM": True,
"CONDITION": False}, "CONDITION": False},
] ]
update_params_usage(basedefs.PACKSTACK_DOC, parameters, sectioned=False)
group = {"GROUP_NAME": "Trove", group = {"GROUP_NAME": "Trove",
"DESCRIPTION": "Trove config parameters", "DESCRIPTION": "Trove config parameters",
"PRE_CONDITION": "CONFIG_TROVE_INSTALL", "PRE_CONDITION": "CONFIG_TROVE_INSTALL",

View File

@@ -1,2 +1,3 @@
netaddr>=0.7.6 netaddr>=0.7.6
PyYAML>=3.10 PyYAML>=3.10
docutils>=0.11

View File

@@ -99,11 +99,12 @@ setup(
license="ASL 2.0", license="ASL 2.0",
keywords="openstack", keywords="openstack",
url="https://github.com/stackforge/packstack", url="https://github.com/stackforge/packstack",
packages=find_packages('.'), packages=find_packages('.') + ['docs'],
package_data={'docs': ['docs/packstack.rst']},
include_package_data=True, include_package_data=True,
long_description=read('README.md'), long_description=read('README.md'),
zip_safe=False, zip_safe=False,
install_requires=['netaddr', 'PyYAML'], install_requires=['netaddr', 'PyYAML', 'docutils'],
classifiers=[ classifiers=[
"Development Status :: 3 - Alpha", "Development Status :: 3 - Alpha",
"Topic :: Utilities", "Topic :: Utilities",