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.
"""
import os
import sys
import datetime
import os
import pkg_resources
import sys
import tempfile
from .utils import get_current_user
@ -28,7 +29,15 @@ APP_NAME = "Packstack"
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:
os.mkdir(PACKSTACK_VAR_DIR, 0o700)
except OSError:

View File

@ -851,7 +851,7 @@ def printOptions():
paramUsage = param.USAGE
optionsList = param.OPTION_LIST or ""
print("%s" % (("**%s**" % str(cmdOption)).ljust(30)))
print(" %s %s" % (paramUsage, optionsList) + "\n")
print(" %s" % paramUsage + "\n")
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
"""
from packstack.installer import basedefs
from packstack.installer import validators
from packstack.installer import processors
from packstack.installer import utils
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 createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate
@ -34,8 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller):
params = [
{"CMD_OPTION": "amqp-backend",
"USAGE": ("Set the AMQP service backend. Allowed values are: "
"qpid, rabbitmq"),
"PROMPT": "Set the AMQP service backend",
"OPTION_LIST": ["qpid", "rabbitmq"],
"VALIDATORS": [validators.validate_options],
@ -49,8 +49,6 @@ def initConfig(controller):
"DEPRECATES": ['CONFIG_AMQP_SERVER']},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ssh],
@ -63,7 +61,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "amqp-enable-ssl",
"USAGE": "Enable SSL for the AMQP service",
"PROMPT": "Enable SSL for the AMQP service?",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -76,7 +73,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "amqp-enable-auth",
"USAGE": "Enable Authentication for the AMQP service",
"PROMPT": "Enable Authentication for the AMQP service?",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -88,6 +84,7 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "AMQP",
"DESCRIPTION": "AMQP Config parameters",
"PRE_CONDITION": False,
@ -98,8 +95,6 @@ def initConfig(controller):
params = [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -113,8 +108,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -127,8 +120,6 @@ def initConfig(controller):
"CONDITION": False},
{"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"
" service"),
"OPTION_LIST": [],
@ -142,8 +133,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"service"),
"OPTION_LIST": [],
@ -157,8 +146,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -171,7 +158,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "amqp-ssl-self-signed",
"USAGE": "Auto Generates self signed SSL certificate and key",
"PROMPT": "Generate Self Signed SSL Certificate",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_not_empty],
@ -183,6 +169,7 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "AMQPSSL",
"DESCRIPTION": "AMQP Config SSL parameters",
"PRE_CONDITION": "CONFIG_AMQP_ENABLE_SSL",
@ -193,7 +180,6 @@ def initConfig(controller):
params = [
{"CMD_OPTION": "amqp-auth-user",
"USAGE": "User for amqp authentication",
"PROMPT": "Enter the user for amqp authentication",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -206,7 +192,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "amqp-auth-password",
"USAGE": "Password for user authentication",
"PROMPT": "Enter the password for user authentication",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_not_empty],
@ -219,6 +204,7 @@ def initConfig(controller):
"NEED_CONFIRM": True,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "AMQPAUTH",
"DESCRIPTION": "AMQP Config Athentication parameters",
"PRE_CONDITION": "CONFIG_AMQP_ENABLE_AUTH",

View File

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

View File

@ -18,6 +18,7 @@ Installs and configures Cinder
import re
from packstack.installer import basedefs
from packstack.installer import exceptions
from packstack.installer import processors
from packstack.installer import validators
@ -25,7 +26,7 @@ from packstack.installer.utils import split_hosts
from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources
@ -44,7 +45,6 @@ def initConfig(controller):
conf_params = {
"CINDER": [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -58,8 +58,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -73,8 +71,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["lvm", "gluster", "nfs", "vmdk", "netapp"],
"VALIDATORS": [validators.validate_options],
@ -89,10 +85,6 @@ def initConfig(controller):
"CINDERVOLUMECREATE": [
{"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 "
"proof-of-concept installation)?"),
"OPTION_LIST": ["y", "n"],
@ -108,9 +100,6 @@ def initConfig(controller):
"CINDERVOLUMESIZE": [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -125,9 +114,6 @@ def initConfig(controller):
"CINDERGLUSTERMOUNTS": [
{"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 "
"volume shares to use with Cinder"),
"OPTION_LIST": ["^([\d]{1,3}\.){3}[\d]{1,3}:/.*",
@ -145,8 +131,6 @@ def initConfig(controller):
"CINDERNFSMOUNTS": [
{"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 "
"to use with Cinder"),
"OPTION_LIST": ["^([\d]{1,3}\.){3}[\d]{1,3}:/.*"],
@ -163,8 +147,6 @@ def initConfig(controller):
"CINDERNETAPPMAIN": [
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -177,8 +159,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"CMD_OPTION": "cinder-netapp-password",
"USAGE": ("(required) Password for the administrative user "
"account specified in the netapp_login parameter."),
"PROMPT": ("Enter a NetApp password"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -191,8 +171,6 @@ def initConfig(controller):
"NEED_CONFIRM": True,
"CONDITION": False},
{"CMD_OPTION": "cinder-netapp-hostname",
"USAGE": ("(required) The hostname (or IP address) for the "
"storage system or proxy server."),
"PROMPT": ("Enter a NetApp hostname"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -205,12 +183,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_port],
@ -223,11 +195,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": ["ontap_7mode", "ontap_cluster", "eseries"],
"VALIDATORS": [validators.validate_options],
@ -240,10 +207,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": ["http", "https"],
"VALIDATORS": [validators.validate_options],
@ -256,10 +219,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": ["iscsi", "nfs"],
"VALIDATORS": [validators.validate_options],
@ -275,11 +234,6 @@ def initConfig(controller):
"CINDERNETAPPONTAPISCSI": [
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [],
@ -295,13 +249,6 @@ def initConfig(controller):
"CINDERNETAPPNFS": [
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_integer],
@ -314,10 +261,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_integer],
@ -330,13 +273,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_integer],
@ -349,9 +285,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [],
@ -364,8 +297,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [],
@ -381,13 +312,6 @@ def initConfig(controller):
"CINDERNETAPPISCSI7MODE": [
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -400,14 +324,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -423,19 +339,6 @@ def initConfig(controller):
"CINDERNETAPPVSERVER": [
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -451,13 +354,6 @@ def initConfig(controller):
"CINDERNETAPPESERIES": [
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_multi_ping],
@ -470,9 +366,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"CMD_OPTION": "cinder-netapp-sa-password",
"USAGE": ("(optional) Password for the NetApp E-Series storage "
"array. "
"Defaults to ''."),
"PROMPT": ("Enter a password"),
"OPTION_LIST": [""],
"VALIDATORS": [],
@ -485,13 +378,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": ["^[/].*$"],
"VALIDATORS": [validators.validate_regexp],
@ -504,12 +390,6 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [],
@ -523,6 +403,7 @@ def initConfig(controller):
"CONDITION": False},
]
}
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
conf_groups = [
{"GROUP_NAME": "CINDER",

View File

@ -19,10 +19,12 @@ Installs and configures OpenStack Horizon
import os
import uuid
from packstack.installer import basedefs
from packstack.installer import validators
from packstack.installer import exceptions
from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import getManifestTemplate
@ -35,7 +37,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller):
params = [
{"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",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -47,6 +48,7 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "OSHORIZON",
"DESCRIPTION": "OpenStack Horizon Config parameters",
"PRE_CONDITION": "CONFIG_HORIZON_INSTALL",
@ -104,6 +106,7 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "OSSSL",
"DESCRIPTION": "SSL Config parameters",
"PRE_CONDITION": "CONFIG_HORIZON_SSL",

View File

@ -16,10 +16,12 @@
Installs and configures Glance
"""
from packstack.installer import basedefs
from packstack.installer import validators
from packstack.installer import processors
from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources
@ -34,7 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller):
params = [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -48,8 +49,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -63,10 +62,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["file", "swift"],
"VALIDATORS": [validators.validate_options],
@ -79,6 +74,7 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "GLANCE",
"DESCRIPTION": "Glance Config parameters",
"PRE_CONDITION": "CONFIG_GLANCE_INSTALL",

View File

@ -18,10 +18,12 @@ Installs and configures Heat
import uuid
from packstack.installer import basedefs
from packstack.installer import utils
from packstack.installer import validators
from packstack.installer import processors
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources
@ -36,8 +38,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller):
parameters = [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -51,8 +51,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"authenticate info in database (16, 24, or 32 chars)"),
"OPTION_LIST": [],
@ -66,8 +64,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -81,8 +77,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -95,8 +89,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -109,7 +101,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-heat-domain",
"USAGE": "Name of Keystone domain for Heat",
"PROMPT": "Enter name of Keystone domain for Heat",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -122,7 +113,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -135,7 +125,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -148,6 +137,7 @@ def initConfig(controller):
"NEED_CONFIRM": True,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, parameters, sectioned=False)
group = {"GROUP_NAME": "Heat",
"DESCRIPTION": "Heat Config parameters",
"PRE_CONDITION": "CONFIG_HEAT_INSTALL",

View File

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

View File

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

View File

@ -15,10 +15,13 @@
"""
Installs and configures Manila
"""
from packstack.installer import basedefs
from packstack.installer import processors
from packstack.installer import validators
from packstack.installer import utils
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import getManifestTemplate
from packstack.modules.ospluginutils import appendManifestFile
@ -34,7 +37,6 @@ def initConfig(controller):
conf_params = {
"MANILA": [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -48,8 +50,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -63,8 +63,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-backend",
"USAGE": ("The Manila backend to use, valid options are: "
"generic, netapp"),
"PROMPT": "Enter the Manila backend to be configured",
"OPTION_LIST": ["generic", "netapp"],
"VALIDATORS": [validators.validate_options],
@ -79,10 +77,6 @@ def initConfig(controller):
"MANILANETAPP": [
{"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"),
"OPTION_LIST": ["http", "https"],
"VALIDATORS": [validators.validate_options],
@ -95,8 +89,6 @@ def initConfig(controller):
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -109,8 +101,6 @@ def initConfig(controller):
"CONDITION": False},
{"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"),
"OPTION_LIST": [""],
"VALIDATORS": [validators.validate_not_empty],
@ -123,8 +113,6 @@ def initConfig(controller):
"CONDITION": False},
{"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"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -138,8 +126,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-netapp-aggregate-name-search-pattern",
"USAGE": ("Pattern for searching available aggregates "
"for provisioning."),
"PROMPT": ("Enter a NetApp aggregate name search pattern"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -152,8 +138,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-netapp-root-volume-aggregate",
"USAGE": ("Name of aggregate to create root volume "
"on. "),
"PROMPT": ("Enter a NetApp root volume aggregate"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -166,7 +150,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-netapp-root-volume-name",
"USAGE": ("Root volume name. "),
"PROMPT": ("Enter a NetApp root volume name"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -181,8 +164,6 @@ def initConfig(controller):
"MANILAGENERIC": [
{"CMD_OPTION": "manila-generic-volume-name-template",
"USAGE": ("Volume name template. "
"Defaults to manila-share-%s"),
"PROMPT": ("Enter a volume name template"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -195,8 +176,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-generic-share-mount-path",
"USAGE": ("Share mount path. "
"Defaults to /shares"),
"PROMPT": ("Enter a share mount path"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -209,8 +188,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-service-image-location",
"USAGE": ("Location of disk image for service "
"instance."),
"PROMPT": ("Enter a service image location"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -224,7 +201,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-service-instance-user",
"USAGE": ("User in service instance."),
"PROMPT": ("Enter a service instance user"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -237,7 +213,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "manila-service-instance-password",
"USAGE": ("Password to service instance user."),
"PROMPT": ("Enter a service instance password"),
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -250,7 +225,7 @@ def initConfig(controller):
"CONDITION": False},
]
}
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
conf_groups = [
{"GROUP_NAME": "MANILA",
"DESCRIPTION": "Manila Config parameters",

View File

@ -16,11 +16,13 @@
Installs and configures MariaDB
"""
from packstack.installer import basedefs
from packstack.installer import validators
from packstack.installer import processors
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 createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate
@ -34,9 +36,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller):
params = [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ssh],
@ -78,6 +77,7 @@ def initConfig(controller):
"CONDITION": False,
"DEPRECATES": ['CONFIG_MYSQL_PW']},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "MARIADB",
"DESCRIPTION": "MariaDB Config parameters",
"PRE_CONDITION": lambda x: 'yes',

View File

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

View File

@ -16,6 +16,7 @@
Installs and configures Neutron
"""
from packstack.installer import basedefs
from packstack.installer import utils
from packstack.installer import validators
from packstack.installer import processors
@ -23,6 +24,7 @@ from packstack.installer import output_messages
from packstack.installer.utils import split_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.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources
@ -38,8 +40,6 @@ def initConfig(controller):
conf_params = {
"NEUTRON": [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -53,7 +53,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-neutron-db-password",
"USAGE": "The password to use for Neutron to access DB",
"PROMPT": "Enter the password for Neutron DB access",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -67,9 +66,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"for external traffic, or 'provider' if using "
"provider networks."),
@ -84,7 +80,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-neutron-metadata-pw",
"USAGE": "Neutron metadata agent password",
"PROMPT": "Enter Neutron metadata agent password",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -98,8 +93,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -112,8 +105,6 @@ def initConfig(controller):
"CONDITION": False},
{"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"),
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -126,7 +117,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "neutron-fwaas",
"USAGE": ("Whether to configure neutron Firewall as a Service"),
"PROMPT": "Would you like to configure neutron FWaaS?",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -141,9 +131,6 @@ def initConfig(controller):
"NEUTRON_LB_AGENT": [
{"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 "
"for the Neutron linuxbridge plugin"),
"OPTION_LIST": [],
@ -159,9 +146,6 @@ def initConfig(controller):
"NEUTRON_OVS_AGENT": [
{"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 "
"the Neutron openvswitch plugin"),
"OPTION_LIST": [],
@ -175,9 +159,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"pairs for the Neutron openvswitch plugin"),
"OPTION_LIST": [],
@ -193,10 +174,6 @@ def initConfig(controller):
"NEUTRON_OVS_AGENT_TUNNEL": [
{"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 "
"tunnel local_ip"),
"OPTION_LIST": [],
@ -213,7 +190,6 @@ def initConfig(controller):
"NEUTRON_OVS_AGENT_VXLAN": [
{"CMD_OPTION": "os-neutron-ovs-vxlan-udp-port",
"CONF_NAME": "CONFIG_NEUTRON_OVS_VXLAN_UDP_PORT",
"USAGE": "VXLAN UDP port",
"PROMPT": "Enter VXLAN UDP port number",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_port],
@ -228,9 +204,6 @@ def initConfig(controller):
"NEUTRON_ML2_PLUGIN": [
{"CMD_OPTION": "os-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 "
"entrypoints"),
"OPTION_LIST": ["local", "flat", "vlan", "gre", "vxlan"],
@ -244,10 +217,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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 "
"network_types to allocate as tenant networks"),
"OPTION_LIST": ["local", "vlan", "gre", "vxlan"],
@ -261,9 +230,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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 "
"mechanism driver entrypoints"),
"OPTION_LIST": ["logger", "test", "linuxbridge", "openvswitch",
@ -279,10 +245,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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 "
"names with which flat networks can be created"),
"OPTION_LIST": [],
@ -296,12 +258,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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 "
"names usable for VLAN"),
"OPTION_LIST": [],
@ -315,10 +271,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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> "
"tuples enumerating ranges of GRE tunnel IDs that "
"are available for tenant network allocation"),
@ -333,11 +285,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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",
"OPTION_LIST": [],
"VALIDATORS": [],
@ -350,10 +297,6 @@ def initConfig(controller):
{"CMD_OPTION": "os-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> "
"tuples enumerating ranges of VXLAN VNI IDs that are "
"available for tenant network allocation"),
@ -368,7 +311,6 @@ def initConfig(controller):
# We need to ask for this only in case of ML2 plugins
{"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 "
"with Neutron"),
"OPTION_LIST": ["linuxbridge", "openvswitch"],
@ -382,7 +324,7 @@ def initConfig(controller):
"CONDITION": False},
],
}
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
conf_groups = [
{"GROUP_NAME": "NEUTRON",
"DESCRIPTION": "Neutron config",

View File

@ -26,6 +26,7 @@ from packstack.installer import utils
from packstack.installer import validators
from packstack.installer.exceptions import ScriptRuntimeError
from packstack.modules.documentation import update_params_usage
from packstack.modules.shortcuts import get_mq
from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import createFirewallResources
@ -50,7 +51,6 @@ def initConfig(controller):
nova_params = {
"NOVA": [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -64,8 +64,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -79,8 +77,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"disable CPU overcommitment",
"OPTION_LIST": [],
@ -94,8 +90,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"disable RAM overcommitment"),
"OPTION_LIST": [],
@ -109,11 +103,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"migration"),
"OPTION_LIST": ['tcp', 'ssh'],
@ -127,7 +116,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "nova-compute-manager",
"USAGE": ("The manager that will run nova compute."),
"PROMPT": ("Enter the compute manager for nova "
"migration"),
"OPTION_LIST": [],
@ -144,8 +132,6 @@ def initConfig(controller):
"NOVA_NETWORK": [
{"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"
" compute servers"),
"OPTION_LIST": [],
@ -159,7 +145,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-manager",
"USAGE": "Nova network manager",
"PROMPT": "Enter the Nova network manager",
"OPTION_LIST": [r'^nova\.network\.manager\.\w+Manager$'],
"VALIDATORS": [validators.validate_regexp],
@ -172,7 +157,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-pubif",
"USAGE": "Public interface on the Nova network server",
"PROMPT": "Enter the Public interface on the Nova network server",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -185,8 +169,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-privif",
"USAGE": ("Private interface for network manager on the Nova "
"network server"),
"PROMPT": ("Enter the Private interface for network manager on "
"the Nova network server"),
"OPTION_LIST": [],
@ -200,7 +182,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-fixed-range",
"USAGE": "IP Range for network manager",
"PROMPT": "Enter the IP Range for network manager",
"OPTION_LIST": ["^[\:\.\da-fA-f]+(\/\d+){0,1}$"],
"PROCESSORS": [processors.process_cidr],
@ -214,7 +195,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-floating-range",
"USAGE": "IP Range for Floating IP's",
"PROMPT": "Enter the IP Range for Floating IP's",
"OPTION_LIST": ["^[\:\.\da-fA-f]+(\/\d+){0,1}$"],
"PROCESSORS": [processors.process_cidr],
@ -228,7 +208,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-auto-assign-floating-ip",
"USAGE": "Automatically assign a floating IP to new instances",
"PROMPT": ("Should new instances automatically have a floating "
"IP assigned?"),
"OPTION_LIST": ["y", "n"],
@ -244,7 +223,6 @@ def initConfig(controller):
"NOVA_NETWORK_VLAN": [
{"CMD_OPTION": "novanetwork-vlan-start",
"USAGE": "First VLAN for private networks",
"PROMPT": "Enter first VLAN for private networks",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -257,7 +235,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-num-networks",
"USAGE": "Number of networks to support",
"PROMPT": "How many networks should be supported",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -270,7 +247,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "novanetwork-network-size",
"USAGE": "Number of addresses in each private subnet",
"PROMPT": "How many addresses should be in each private subnet",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -283,6 +259,7 @@ def initConfig(controller):
"CONDITION": False},
],
}
update_params_usage(basedefs.PACKSTACK_DOC, nova_params)
def use_nova_network(config):
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 is_all_in_one
from packstack.modules.documentation import update_params_usage
from packstack.modules.ospluginutils import appendManifestFile
from packstack.modules.ospluginutils import getManifestTemplate
@ -44,12 +45,6 @@ def initConfig(controller):
params = {
"GLOBAL": [
{"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": (
"Enter the path to your ssh Public key to install on servers"
),
@ -68,11 +63,6 @@ def initConfig(controller):
"CONDITION": False},
{"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": (
"Enter a default password to be used. Leave blank for a "
"randomly generated one."
@ -87,9 +77,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "mariadb-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install MariaDB"
),
"PROMPT": "Should Packstack install MariaDB",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -103,10 +90,6 @@ def initConfig(controller):
"DEPRECATES": ['CONFIG_MYSQL_INSTALL']},
{"CMD_OPTION": "os-glance-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Image Service (Glance)"
),
"PROMPT": (
"Should Packstack install OpenStack Image Service (Glance)"
),
@ -121,10 +104,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-cinder-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Block Storage (Cinder)"
),
"PROMPT": (
"Should Packstack install OpenStack Block Storage "
"(Cinder) service"
@ -140,10 +119,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-manila-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Shared File System (Manila)"
),
"PROMPT": (
"Should Packstack install OpenStack Shared File System "
"(Manila) service"
@ -159,10 +134,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-nova-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Compute (Nova)"
),
"PROMPT": (
"Should Packstack install OpenStack Compute (Nova) service"
),
@ -177,11 +148,6 @@ def initConfig(controller):
"CONDITION": False},
{"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": (
"Should Packstack install OpenStack Networking (Neutron) "
"service"
@ -197,10 +163,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-horizon-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Dashboard (Horizon)"
),
"PROMPT": (
"Should Packstack install OpenStack Dashboard (Horizon)"
),
@ -215,10 +177,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-swift-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Object Storage (Swift)"
),
"PROMPT": (
"Should Packstack install OpenStack Object Storage (Swift)"
),
@ -233,10 +191,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-ceilometer-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Metering (Ceilometer)"
),
"PROMPT": (
"Should Packstack install OpenStack Metering (Ceilometer)"
),
@ -251,10 +205,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-heat-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Orchestration (Heat)"
),
"PROMPT": (
"Should Packstack install OpenStack Orchestration (Heat)"
),
@ -269,10 +219,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-sahara-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Clustering (Sahara)"
),
"PROMPT": (
"Should Packstack install OpenStack Clustering (Sahara)"
),
@ -287,10 +233,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-trove-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Database (Trove)"
),
"PROMPT": (
"Should Packstack install OpenStack Database (Trove)"
),
@ -305,10 +247,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-ironic-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install "
"OpenStack Bare Metal (Ironic)"
),
"PROMPT": (
"Should Packstack install OpenStack Bare Metal (Ironic)"
),
@ -323,11 +261,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -340,8 +273,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"plain if Packstack should not install ntpd "
"on instances."),
@ -355,10 +286,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "nagios-install",
"USAGE": (
"Set to 'y' if you would like Packstack to install Nagios "
"to monitor OpenStack hosts"
),
"PROMPT": (
"Should Packstack install Nagios to monitor OpenStack "
"hosts"
@ -374,13 +301,6 @@ def initConfig(controller):
"CONDITION": False},
{"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": (
"Enter a comma separated list of server(s) to be excluded."
" Leave plain if you don't need to exclude any server."
@ -395,10 +315,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": ["y", "n"],
"DEFAULT_VALUE": "n",
@ -412,11 +328,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip,
@ -446,10 +357,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_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": (
"Enter list of IP addresses on which to install compute "
"service"
@ -467,9 +374,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_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 "
"network service"),
"OPTION_LIST": [],
@ -487,10 +391,6 @@ def initConfig(controller):
'CONFIG_NOVA_NETWORK_HOSTS']},
{"CMD_OPTION": "os-vmware",
"USAGE": (
"Set to 'y' if you want to use VMware vCenter as hypervisor"
" and storage. Otherwise set to 'n'."
),
"PROMPT": (
"Do you want to use VMware vCenter as hypervisor and "
"datastore"
@ -506,10 +406,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-vmware",
"USAGE": (
"Set to 'y' if you want to use VMware vCenter as hypervisor"
" and storage. Otherwise set to 'n'."
),
"PROMPT": (
"Do you want to use VMware vCenter as hypervisor and "
"datastore"
@ -525,12 +421,6 @@ def initConfig(controller):
"CONDITION": False},
{"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": (
"Enable this on your own risk. Do you want to use "
"insupported parameters"
@ -548,7 +438,6 @@ def initConfig(controller):
"VMWARE": [
{"CMD_OPTION": "vcenter-host",
"USAGE": "The IP address of the VMware vCenter server",
"PROMPT": (
"Enter the IP address of the VMware vCenter server to use "
"with Nova"
@ -564,7 +453,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "vcenter-username",
"USAGE": "The username to authenticate to VMware vCenter server",
"PROMPT": ("Enter the username to authenticate on VMware "
"vCenter server"),
"DEFAULT_VALUE": "",
@ -576,7 +464,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "vcenter-password",
"USAGE": "The password to authenticate to VMware vCenter server",
"PROMPT": ("Enter the password to authenticate on VMware "
"vCenter server"),
"DEFAULT_VALUE": "",
@ -588,7 +475,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "vcenter-cluster",
"USAGE": "The name of the vCenter cluster",
"PROMPT": "Enter the name of the vCenter datastore",
"DEFAULT_VALUE": "",
"MASK_INPUT": False,
@ -602,11 +488,6 @@ def initConfig(controller):
"UNSUPPORTED": [
{"CONF_NAME": "CONFIG_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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip,
@ -620,10 +501,6 @@ def initConfig(controller):
{"CONF_NAME": "CONFIG_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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_ip,
@ -636,6 +513,7 @@ def initConfig(controller):
"CONDITION": False},
]
}
update_params_usage(basedefs.PACKSTACK_DOC, params)
def use_vcenter(config):
return (config['CONFIG_NOVA_INSTALL'] == 'y' and

View File

@ -16,11 +16,13 @@
Installs and configures Provisioning for demo usage and testing
"""
from packstack.installer import basedefs
from packstack.installer import utils
from packstack.installer import validators
from packstack.installer import processors
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 getManifestTemplate
@ -45,9 +47,6 @@ def initConfig(controller):
conf_params = {
"PROVISION_INIT": [
{"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 "
"and testing"),
"OPTION_LIST": ["y", "n"],
@ -61,7 +60,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "provision-tempest",
"USAGE": "Whether to configure tempest for testing",
"PROMPT": ("Would you like to configure Tempest (OpenStack test "
"suite). Note that provisioning is only supported for "
"all-in-one installations."),
@ -78,7 +76,6 @@ def initConfig(controller):
"PROVISION_DEMO": [
{"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",
"OPTION_LIST": False,
"VALIDATORS": False,
@ -91,7 +88,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": False,
"VALIDATORS": [validators.validate_not_empty],
@ -104,8 +100,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"into Glance"),
"OPTION_LIST": False,
@ -119,7 +113,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "provision-image-format",
"USAGE": ("Disk format (qcow2, raw, etc) of demo image"),
"PROMPT": ("Enter the format of the demo image"),
"OPTION_LIST": False,
"VALIDATORS": [validators.validate_not_empty],
@ -132,8 +125,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"to the demo image via ssh"),
"OPTION_LIST": False,
@ -149,9 +140,6 @@ def initConfig(controller):
"PROVISION_TEMPEST": [
{"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 "
"(if blank, Tempest will be configured in a "
"standalone mode) "),
@ -166,7 +154,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -180,7 +167,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": False,
"VALIDATORS": False,
@ -193,7 +179,6 @@ def initConfig(controller):
"CONDITION": False},
{"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?",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -206,7 +191,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"repository should be used"),
"OPTION_LIST": [],
@ -222,8 +206,6 @@ def initConfig(controller):
"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",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -236,6 +218,7 @@ def initConfig(controller):
"CONDITION": False},
],
}
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
def check_provisioning_demo(config):
return (config.get('CONFIG_PROVISION_DEMO', 'n') == 'y')

View File

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

View File

@ -21,12 +21,14 @@ import re
import logging
import platform
from packstack.installer import basedefs
from packstack.installer import exceptions
from packstack.installer import utils
from packstack.installer import validators
from packstack.modules.common import filtered_hosts
from packstack.modules.common import is_all_in_one
from packstack.modules.documentation import update_params_usage
# ------------ Server Preparation Packstack Plugin Initialization -------------
@ -38,7 +40,6 @@ def initConfig(controller):
conf_params = {
"SERVERPREPARE": [
{"CMD_OPTION": "use-epel",
"USAGE": "To subscribe each server to EPEL enter \"y\"",
"PROMPT": "To subscribe each server to EPEL enter \"y\"",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -51,8 +52,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"additional yum repositories to install"),
"OPTION_LIST": [],
@ -67,8 +66,6 @@ def initConfig(controller):
"RHEL": [
{"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 ",
"OPTION_LIST": [],
"DEFAULT_VALUE": "",
@ -80,10 +77,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"RHN Satellite server URL"),
"OPTION_LIST": [],
@ -98,8 +91,6 @@ def initConfig(controller):
"RHSM": [
{"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 "
"password"),
"OPTION_LIST": [],
@ -112,7 +103,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "rh-enable-optional",
"USAGE": "To enable RHEL optional repos use value \"y\"",
"PROMPT": "To enable RHEL optional repos use value \"y\"",
"OPTION_LIST": ["y", "n"],
"VALIDATORS": [validators.validate_options],
@ -125,8 +115,6 @@ def initConfig(controller):
"CONDITION": False},
{"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"
" manager"),
"OPTION_LIST": [],
@ -141,8 +129,6 @@ def initConfig(controller):
"RHSM_PROXY": [
{"CMD_OPTION": "rh-proxy-port",
"USAGE": ("Specify port of Red Hat subscription manager HTTP "
"proxy"),
"PROMPT": ("Specify port of Red Hat subscription manager HTTP "
"proxy"),
"OPTION_LIST": [],
@ -155,8 +141,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"manager HTTP proxy"),
"OPTION_LIST": [],
@ -169,8 +153,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"manager HTTP proxy"),
"OPTION_LIST": [],
@ -185,7 +167,6 @@ def initConfig(controller):
"SATELLITE": [
{"CMD_OPTION": "rhn-satellite-username",
"USAGE": "Username to access RHN Satellite",
"PROMPT": ("Enter RHN Satellite username or leave plain if you "
"will use activation key instead"),
"OPTION_LIST": [],
@ -198,7 +179,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "rhn-satellite-password",
"USAGE": "Password to access RHN Satellite",
"PROMPT": ("Enter RHN Satellite password or leave plain if you "
"will use activation key instead"),
"OPTION_LIST": [],
@ -211,7 +191,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "rhn-satellite-activation-key",
"USAGE": "Activation key for subscription to RHN Satellite",
"PROMPT": ("Enter RHN Satellite activation key or leave plain if "
"you used username/password instead"),
"OPTION_LIST": [],
@ -224,7 +203,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"DEFAULT_VALUE": "",
@ -236,9 +214,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"used as an identifier for the system "
"in RHN Satellite"),
@ -252,8 +227,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"to rhnreg_ks"),
"OPTION_LIST": ['novirtinfo', 'norhnsd', 'nopackages'],
@ -267,7 +240,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"DEFAULT_VALUE": "",
@ -281,8 +253,6 @@ def initConfig(controller):
"SATELLITE_PROXY": [
{"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 "
"HTTP proxy"),
"OPTION_LIST": [],
@ -295,8 +265,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"HTTP proxy."),
"OPTION_LIST": [],
@ -309,6 +277,7 @@ def initConfig(controller):
"CONDITION": False}
]
}
update_params_usage(basedefs.PACKSTACK_DOC, conf_params)
def filled_rhsm(config):
return bool(config.get('CONFIG_RH_USER'))

View File

@ -21,12 +21,14 @@ import re
import uuid
import netaddr
from packstack.installer import basedefs
from packstack.installer import validators
from packstack.installer import processors
from packstack.installer.exceptions import ParamValidationError
from packstack.installer import utils
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 createFirewallResources
from packstack.modules.ospluginutils import getManifestTemplate
@ -41,8 +43,6 @@ PLUGIN_NAME_COLORED = utils.color_text(PLUGIN_NAME, 'blue')
def initConfig(controller):
params = [
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -56,13 +56,6 @@ def initConfig(controller):
"CONDITION": False},
{"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",
"OPTION_LIST": [],
"VALIDATORS": [validate_storage],
@ -76,8 +69,6 @@ def initConfig(controller):
"DEPRECATES": ['CONFIG_SWIFT_STORAGE_HOSTS']},
{"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 "
"bigger than the number of storage devices configured"),
"OPTION_LIST": [],
@ -91,8 +82,6 @@ def initConfig(controller):
"CONDITION": False},
{"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 "
"bigger than the number of storage zones configured"),
"OPTION_LIST": [],
@ -106,7 +95,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-swift-storage-fstype",
"USAGE": "FileSystem type for storage nodes",
"PROMPT": "Enter FileSystem type for storage nodes",
"OPTION_LIST": ['xfs', 'ext4'],
"VALIDATORS": [validators.validate_options],
@ -119,7 +107,6 @@ def initConfig(controller):
"CONDITION": False},
{"CMD_OPTION": "os-swift-hash",
"USAGE": "Shared secret for Swift",
"PROMPT": "Enter hash for Swift shared secret",
"OPTION_LIST": [],
"VALIDATORS": [validators.validate_not_empty],
@ -132,7 +119,6 @@ def initConfig(controller):
"CONDITION": False},
{"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, "
"2000000K)"),
"OPTION_LIST": [],
@ -145,6 +131,7 @@ def initConfig(controller):
"NEED_CONFIRM": False,
"CONDITION": False},
]
update_params_usage(basedefs.PACKSTACK_DOC, params, sectioned=False)
group = {"GROUP_NAME": "OSSWIFT",
"DESCRIPTION": "OpenStack Swift Config parameters",
"PRE_CONDITION": "CONFIG_SWIFT_INSTALL",

View File

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

View File

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

View File

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