removing and then re-adding the amqp relation results in waiting state for 'amqp'
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack RabbitMQ Charm Interface |
In Progress
|
Medium
|
Unassigned |
Bug Description
The designate charm from "next" repository (cs:~openstack-
Just after the deployment it went into the following state:
$ juju status designate
Model Controller Cloud/Region Version
openstack bud0b1 bud0b1 2.1.3
App Version Status Scale Charm Store Rev OS Notes
designate 2.0.0 waiting 3 designate local 1 ubuntu
designate-hacluster active 3 hacluster local 1 ubuntu
Unit Workload Agent Machine Public address Ports Message
designate/3* waiting executing 20/lxd/34 100.107.3.100 9001/tcp 'shared-db' incomplete, 'amqp' incomplete, 'identity-service' incomplete
designate-
designate/4 waiting idle 24/lxd/11 100.107.67.56 9001/tcp 'shared-db' incomplete, 'amqp' incomplete, 'identity-service' incomplete
designate-
designate/5 waiting idle 25/lxd/16 100.107.130.13 9001/tcp 'shared-db' incomplete, 'amqp' incomplete, 'identity-service' incomplete
designate-
Machine State DNS Inst id Series AZ
20 started 100.107.3.5 aekwnf trusty FC1
20/lxd/34 started 100.107.3.100 juju-a2afdd-
24 started 100.107.67.3 gf7kcw trusty FC2
24/lxd/11 started 100.107.67.56 juju-a2afdd-
25 started 100.107.130.10 brts3a trusty FC3
25/lxd/16 started 100.107.130.13 juju-a2afdd-
Relation Provides Consumes Type
cluster designate designate peer
dns-backend designate designate-bind regular
ha designate designate-hacluster subordinate
identity-service designate keystone regular
shared-db designate percona-cluster regular
amqp designate rabbitmq-server-tor regular
hanode designate-hacluster designate-hacluster peer
Further troubleshooting reveals that designate units are missing a lot of relation data:
root@juju-
private-address: 100.107.3.11
root@juju-
private-address: 100.107.67.12
root@juju-
private-address: 100.107.130.40
root@juju-
private-address: 100.107.3.54
root@juju-
private-address: 100.107.67.41
root@juju-
private-address: 100.107.130.11
root@juju-
private-address: 100.107.3.25
root@juju-
private-address: 100.107.67.18
root@juju-
private-address: 100.107.130.29
On the other side of relation it looks as follows:
juju debug-hooks percona-cluster/0
root@juju-
designate_database: designate
designate_hostname: 100.107.3.100
designate_username: designate
dpm_database: dpm
dpm_hostname: 100.107.3.100
dpm_username: dpm
private-address: 100.107.3.100
juju debug-hooks rabbitmq-
root@juju-
private-address: 100.107.3.100
username: designate
vhost: openstack
juju debug-hooks keystone/0
root@juju-
admin_url: http://
internal_url: http://
private-address: 100.107.3.100
public_url: http://
region: RegionOne
service: designate
Also, further debugging reveals that some of the patches which have been recently implemented don't work in this environment. For example "(database.
root@juju-
...
@reactive.
@reactive.
def setup_database(
"""Send request designate accounts and dbs"""
hostname = None
print (database.
if database.
hostname = ip.get_
database.
database.
if database.
...
root@juju-
None
$ juju config percona-cluster access-network
100.86.0.0/20
So this may be a regression. On the other hand it works fine on some other environment which has recently been deployed from scratch.
Attached are juju logs from all designate, percona-cluster, rabbitmq-server and keystone units.
affects: | charm-designate → charm-interface-rabbitmq |
Changed in charm-interface-rabbitmq: | |
status: | Triaged → In Progress |
assignee: | nobody → Tytus Kurek (tkurek) |
Changed in charm-interface-rabbitmq: | |
assignee: | Tytus Kurek (tkurek) → nobody |
It looks like the actual problem is that the "get_remote()" function does not return the value of the "access-network" parameter. I've modified the following part of the code ("hooks/ relations/ mysql-shared/ requires. py"):
@hook( '{requires: mysql-shared} -relation- changed' ) ion()) remote( 'access- network' )) remote( 'access_ network' ))
def changed(self):
conv = self.conversation()
print (self.conversat
print (conv.get_
print (conv.get_
and this is the output I'm getting:
2017-10-06 11:00:41 INFO shared- db-relation- changed <charms. reactive. relations. Conversation object at 0x7f544009d080> db-relation- changed None db-relation- changed None
2017-10-06 11:00:41 INFO shared-
2017-10-06 11:00:41 INFO shared-