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 commitc03d2ccbbc
) (cherry picked from commitecb3d7e23d
)
This commit is contained in:
parent
7062b26356
commit
c6afcc818e
|
@ -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,40 +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_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_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'),
|
||||
'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':
|
||||
|
@ -71,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