Generate most of the pystache context automatically
For the most part, the pystache context is just a list of values from
undercloud.conf. Rather than maintain this list manually, including
duplicate default values (some of which are bad, like the "unset"
password defaults), let's just generate the context dict based on
the options we can look up from undercloud.py.
This also avoids masking mistakes where a value is added to the
context, but a corresponding config opt is not added to
undercloud.conf, resulting in an unconfigurable "option".
Closes-Bug: 1598846
Change-Id: I70cc0f98e4f869417e22270a71f1f18525a06aac
(cherry picked from commit c03d2ccbbc
)
This commit is contained in:
parent
ace0f6784f
commit
520c967592
|
@ -21,6 +21,8 @@ import tempfile
|
|||
|
||||
import pystache
|
||||
|
||||
from instack_undercloud import undercloud
|
||||
|
||||
renderer = pystache.Renderer()
|
||||
template = os.path.join(os.path.dirname(__file__),
|
||||
'..',
|
||||
|
@ -29,47 +31,10 @@ template = os.path.join(os.path.dirname(__file__),
|
|||
keystone_pki_dir = tempfile.mkdtemp()
|
||||
subprocess.check_call(['generate-keystone-pki', '-d', keystone_pki_dir])
|
||||
|
||||
# Only variables that are not oslo.config opts need to be added here
|
||||
context = {
|
||||
'LOCAL_IP': os.environ.get('LOCAL_IP', '192.0.2.1'),
|
||||
'UNDERCLOUD_ADMIN_TOKEN': os.environ.get('UNDERCLOUD_ADMIN_TOKEN', 'unset'),
|
||||
'UNDERCLOUD_ADMIN_PASSWORD': os.environ.get('UNDERCLOUD_ADMIN_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_RABBIT_USERNAME': os.environ.get('UNDERCLOUD_RABBIT_USERNAME', 'guest'),
|
||||
'UNDERCLOUD_RABBIT_PASSWORD': os.environ.get('UNDERCLOUD_RABBIT_PASSWORD', 'guest'),
|
||||
'UNDERCLOUD_RABBIT_COOKIE': os.environ.get('UNDERCLOUD_RABBIT_COOKIE', 'guest'),
|
||||
'UNDERCLOUD_SWIFT_HASH_SUFFIX': os.environ.get('UNDERCLOUD_SWIFT_HASH_SUFFIX', 'unset'),
|
||||
'UNDERCLOUD_SWIFT_PASSWORD': os.environ.get('UNDERCLOUD_SWIFT_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_MISTRAL_PASSWORD': os.environ.get('UNDERCLOUD_MISTRAL_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_ZAQAR_PASSWORD': os.environ.get('UNDERCLOUD_ZAQAR_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_GLANCE_PASSWORD': os.environ.get('UNDERCLOUD_GLANCE_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_HAPROXY_STATS_PASSWORD': os.environ.get('UNDERCLOUD_HAPROXY_STATS_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_HEAT_ENCRYPTION_KEY': os.environ.get('UNDERCLOUD_HEAT_ENCRYPTION_KEY', 'unset___________'),
|
||||
'UNDERCLOUD_HEAT_STACK_DOMAIN_ADMIN_PASSWORD': os.environ.get('UNDERCLOUD_HEAT_STACK_DOMAIN_ADMIN_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_HEAT_PASSWORD': os.environ.get('UNDERCLOUD_HEAT_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_HORIZON_SECRET_KEY': os.environ.get('UNDERCLOUD_HORIZON_SECRET_KEY', 'unset'),
|
||||
'UNDERCLOUD_NEUTRON_PASSWORD': os.environ.get('UNDERCLOUD_NEUTRON_PASSWORD', 'unset'),
|
||||
'LOCAL_INTERFACE': os.environ.get('LOCAL_INTERFACE', 'eth1'),
|
||||
'UNDERCLOUD_AODH_PASSWORD': os.environ.get('UNDERCLOUD_AODH_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_SENSU_PASSWORD': os.environ.get('UNDERCLOUD_SENSU_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_CEILOMETER_METERING_SECRET': os.environ.get('UNDERCLOUD_CEILOMETER_METERING_SECRET', 'unset'),
|
||||
'UNDERCLOUD_CEILOMETER_PASSWORD': os.environ.get('UNDERCLOUD_CEILOMETER_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_CEILOMETER_SNMPD_USER': os.environ.get('UNDERCLOUD_CEILOMETER_SNMPD_USER', 'unset'),
|
||||
'UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD': os.environ.get('UNDERCLOUD_CEILOMETER_SNMPD_PASSWORD', 'unset'),
|
||||
'STORE_EVENTS': os.environ.get('STORE_EVENTS', 'false'),
|
||||
'UNDERCLOUD_NOVA_PASSWORD': os.environ.get('UNDERCLOUD_NOVA_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_IRONIC_PASSWORD': os.environ.get('UNDERCLOUD_IRONIC_PASSWORD', 'unset'),
|
||||
'UNDERCLOUD_DEBUG': os.environ.get('UNDERCLOUD_DEBUG', 'true'),
|
||||
'INSPECTION_IPRANGE': os.environ.get('INSPECTION_IPRANGE', '192.0.2.100,192.0.2.120'),
|
||||
'INSPECTION_INTERFACE': os.environ.get('INSPECTION_INTERFACE', 'br-ctlplane'),
|
||||
'INSPECTION_COLLECTORS': os.environ.get('INSPECTION_COLLECTORS', 'default,logs'),
|
||||
'INSPECTION_KERNEL_ARGS': os.environ.get('INSPECTION_KERNEL_ARGS', ''),
|
||||
'ENABLE_TEMPEST': os.environ.get('ENABLE_TEMPEST', 'true'),
|
||||
'ENABLE_MISTRAL': os.environ.get('ENABLE_MISTRAL', 'false'),
|
||||
'ENABLE_ZAQAR': os.environ.get('ENABLE_ZAQAR', 'false'),
|
||||
'ENABLE_MONITORING': os.environ.get('ENABLE_MONITORING', 'false'),
|
||||
'IPXE_DEPLOY': os.environ.get('IPXE_DEPLOY', 'true'),
|
||||
'UNDERCLOUD_ADMIN_VIP': os.environ.get('UNDERCLOUD_ADMIN_VIP', ''),
|
||||
'UNDERCLOUD_PUBLIC_VIP': os.environ.get('UNDERCLOUD_PUBLIC_VIP', ''),
|
||||
'UNDERCLOUD_SERVICE_CERTIFICATE': os.environ.get('UNDERCLOUD_SERVICE_CERTIFICATE', ''),
|
||||
'INSPECTION_COLLECTORS': os.environ['INSPECTION_COLLECTORS'],
|
||||
'INSPECTION_KERNEL_ARGS': os.environ['INSPECTION_KERNEL_ARGS'],
|
||||
'KEYSTONE_SIGNING_CERTIFICATE':
|
||||
open(os.path.join(keystone_pki_dir, 'signing_cert.pem')).read(),
|
||||
'KEYSTONE_SIGNING_KEY':
|
||||
|
@ -78,9 +43,14 @@ context = {
|
|||
open(os.path.join(keystone_pki_dir, 'ca_cert.pem')).read(),
|
||||
'KEYSTONE_CA_KEY':
|
||||
open(os.path.join(keystone_pki_dir, 'ca_key.pem')).read(),
|
||||
'SCHEDULER_MAX_ATTEMPTS': os.environ.get('SCHEDULER_MAX_ATTEMPTS', 30),
|
||||
}
|
||||
|
||||
# Include all config opts in the context
|
||||
for _, group in undercloud.list_opts():
|
||||
for opt in group:
|
||||
upper_name = opt.name.upper()
|
||||
context[upper_name] = os.environ[upper_name]
|
||||
|
||||
endpoint_context = {}
|
||||
for k, v in os.environ.items():
|
||||
if k.startswith('UNDERCLOUD_ENDPOINT_'):
|
||||
|
|
Loading…
Reference in New Issue