From yoga onwards the ironic-conductor manges the grub.conf. This change ensure that the charm stops managing it. This change also ensures that the file permissions are set correctly prior to the upgrade to Yoga. While developing this change it became apparent that the charm was missing the code to trigger an upgrade after a change in openstack-origin so this change corrects that. Closes-Bug: #1968871 Change-Id: Ie7ac1b0203d3a51cf3ff74ed8797be3f169cfd1c
54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from __future__ import absolute_import
|
|
|
|
import charms.reactive as reactive
|
|
import charmhelpers.core.hookenv as hookenv
|
|
|
|
import charms_openstack.charm as charm
|
|
|
|
# Use the charms.openstack defaults for common states and hooks
|
|
charm.use_defaults(
|
|
'charm.installed',
|
|
'upgrade-charm',
|
|
'config.changed',
|
|
'update-status',
|
|
'certificates.available')
|
|
|
|
|
|
@reactive.when('shared-db.available')
|
|
@reactive.when('ironic-api.available')
|
|
@reactive.when('identity-credentials.available')
|
|
@reactive.when('amqp.available')
|
|
def render(*args):
|
|
hookenv.log("about to call the render_configs with {}".format(args))
|
|
with charm.provide_charm_instance() as ironic_charm:
|
|
ironic_charm.upgrade_if_available(args)
|
|
ironic_charm.render_with_interfaces(
|
|
charm.optional_interfaces(args))
|
|
ironic_charm.configure_tls()
|
|
ironic_charm.assess_status()
|
|
reactive.set_state('config.complete')
|
|
|
|
|
|
@reactive.when('identity-credentials.connected')
|
|
def request_keystone_credentials(keystone):
|
|
with charm.provide_charm_instance() as ironic_charm:
|
|
keystone.request_credentials(
|
|
ironic_charm.name, region=ironic_charm.region)
|
|
ironic_charm.assess_status()
|
|
|
|
|
|
@reactive.when('amqp.connected')
|
|
def request_amqp_access(amqp):
|
|
with charm.provide_charm_instance() as ironic_charm:
|
|
user, vhost = ironic_charm.get_amqp_credentials()
|
|
amqp.request_access(username=user, vhost=vhost)
|
|
ironic_charm.assess_status()
|
|
|
|
|
|
@reactive.when('shared-db.connected')
|
|
def request_database_access(database):
|
|
with charm.provide_charm_instance() as ironic_charm:
|
|
for db in ironic_charm.get_database_setup():
|
|
database.configure(**db)
|
|
ironic_charm.assess_status()
|