76
73
@hooks.hook('config-changed')
77
74
@restart_on_change(restart_map())
78
75
def config_changed():
79
77
if openstack_upgrade_available(get_common_package()):
80
do_openstack_upgrade(CONFIGS)
78
CONFIGS = do_openstack_upgrade()
79
# Re-run joined hooks as config might have changed
80
for r_id in relation_ids('shared-db'):
81
db_joined(relation_id=r_id)
82
for r_id in relation_ids('pgsql-db'):
83
pgsql_db_joined(relation_id=r_id)
84
for r_id in relation_ids('amqp'):
85
amqp_joined(relation_id=r_id)
82
87
CONFIGS.write_all()
89
94
@hooks.hook('upgrade-charm')
90
95
def upgrade_charm():
91
# NOTE(jamespage): Deal with changes to rabbitmq configuration for
92
# common virtual host across services
93
for r_id in relation_ids('amqp'):
94
amqp_joined(relation_id=r_id)
99
100
@hooks.hook('shared-db-relation-joined')
101
relation_set(quantum_username=DB_USER,
102
quantum_database=QUANTUM_DB,
103
quantum_hostname=unit_get('private-address'),
104
nova_username=NOVA_DB_USER,
105
nova_database=NOVA_DB,
106
nova_hostname=unit_get('private-address'))
101
def db_joined(relation_id=None):
102
if is_relation_made('pgsql-db'):
104
e = ('Attempting to associate a mysql database when there is already '
105
'associated a postgresql one')
108
relation_set(username=config('database-user'),
109
database=config('database'),
110
hostname=unit_get('private-address'),
111
relation_id=relation_id)
114
@hooks.hook('pgsql-db-relation-joined')
115
def pgsql_db_joined(relation_id=None):
116
if is_relation_made('shared-db'):
118
e = ('Attempting to associate a postgresql database when there'
119
' is already associated a mysql one')
122
relation_set(database=config('database'),
123
relation_id=relation_id)
109
126
@hooks.hook('amqp-relation-joined')
113
130
vhost=config('rabbit-vhost'))
133
@hooks.hook('amqp-relation-departed')
134
@restart_on_change(restart_map())
136
if 'amqp' not in CONFIGS.complete_contexts():
137
log('amqp relation incomplete. Peer not ready?')
116
142
@hooks.hook('shared-db-relation-changed',
143
'pgsql-db-relation-changed',
117
144
'amqp-relation-changed',
118
145
'cluster-relation-changed',
119
146
'cluster-relation-joined')