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
b3d22951e8
commit
ecb3d7e23d
|
@ -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