Skip to content

Commit

Permalink
Revert "Func-test for declarative policies in RabbitMQ. (#692)" (#697)
Browse files Browse the repository at this point in the history
This reverts commit 24d7270.
  • Loading branch information
ajkavanagh authored Jan 26, 2022
1 parent 24d7270 commit d3ab250
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 113 deletions.
59 changes: 1 addition & 58 deletions zaza/openstack/charm_tests/rabbitmq_server/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ class RmqTests(test_utils.OpenStackBaseTest):
@classmethod
def setUpClass(cls):
"""Run class setup for running tests."""
super().setUpClass(application_name='rabbitmq-server')
super(RmqTests, cls).setUpClass()

def _get_uuid_epoch_stamp(self):
"""Return a string based on uuid4 and epoch time.
Expand Down Expand Up @@ -462,63 +462,6 @@ def check_units(units):

logging.info('OK')

def test_policies(self):
"""Test config policies."""
app_config = zaza.model.get_application_config(self.application_name)
policies_config = json.loads(
app_config.get('policies')
.get('default')
.replace("\n", "")
.replace(" ", "")
)

# check policies implemented in the clusterer match with config
self._check_policies(policies_config)

# add a new policy
new_policy = {
'vhost': '/',
'name': 'test',
'pattern': 'foo',
'type': 'ttl'
}
policies_config_changed = policies_config + [new_policy]
zaza.model.set_application_config(
'rabbitmq-server',
{'policies': json.dumps(policies_config_changed)}
)
zaza.model.block_until_all_units_idle()

# check again after adding a new policy
self._check_policies(policies_config_changed)

# NOTE(gabrielcocenza) Policies may take a little time
# to show up in RabbitMQ cluster
@tenacity.retry(
wait=tenacity.wait_exponential(max=60),
stop=tenacity.stop_after_attempt(8)
)
def _check_policies(self, policies_config):
"""Compare cluster policies with the juju config.
:param policies_config: Policies from juju config
:type policies_config: List[Dict[str, str]]
"""
units = zaza.model.get_units(self.application_name)
policies_cluster = rmq_utils.list_policies(units[0])
vhosts = set()
for policy in policies_cluster:
vhosts.add(policy['vhost'])

n_policies = 0
for policy in policies_config:
if policy['vhost'] == '*':
n_policies += len(vhosts)
else:
n_policies += 1

self.assertEqual(len(policies_cluster), n_policies)


class RabbitMQDeferredRestartTest(test_utils.BaseDeferredRestartTest):
"""Deferred restart tests."""
Expand Down
55 changes: 0 additions & 55 deletions zaza/openstack/charm_tests/rabbitmq_server/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@
import ssl as libssl
import zaza.openstack.utilities.generic as generic_utils

from collections import OrderedDict


class RmqNoMessageException(Exception):
"""Message retrieval from Rmq resulted in no message."""
Expand Down Expand Up @@ -57,59 +55,6 @@ def wait_for_cluster(model_name=None, timeout=1200):
timeout=timeout)


def list_vhosts(unit):
"""Return a list of all the available vhosts.
:returns: List of vhosts
:rtype: List[str]
"""
if is_rabbitmq_version_ge_382(unit):
cmd = 'rabbitmqctl list_vhosts --formatter=json'
cmd_result = zaza.model.run_on_unit(unit.entity_id, cmd)
output = json.loads(cmd_result['Stdout'].strip())
return [ll['name'] for ll in output]

else:
cmd = 'rabbitmqctl list_vhosts'
cmd_result = zaza.model.run_on_unit(unit.entity_id, cmd)
output = cmd_result['Stdout'].strip()
if '...done' in output:
return output.split('\n')[1:-2]

return output.split('\n')[1:-1]


def list_policies(unit):
"""Return a list of all the available policies.
:returns: List of policies
:rtype: List[Dict[str, str]] or List[OrderedDict[str, str]]
"""
policies = []
vhosts = list_vhosts(unit)
if is_rabbitmq_version_ge_382(unit):
for vhost in vhosts:
cmd = 'rabbitmqctl list_policies -p {} --formatter=json'.format(
vhost
)
cmd_result = zaza.model.run_on_unit(unit.entity_id, cmd)
output = json.loads(cmd_result['Stdout'].strip())
for policy in output:
policy["apply_to"] = policy.pop("apply-to")
policies = policies + [policy]
else:
for vhost in vhosts:
cmd = 'rabbitmqctl list_policies -p {}'.format(vhost)
cmd_result = zaza.model.run_on_unit(unit.entity_id, cmd)
output = cmd_result['Stdout'].strip()
keys = "vhost name apply_to pattern definition priority".split()
policies = policies + [
OrderedDict(zip(keys, line.split("\t")))
for line in output.splitlines()[1:]
]
return policies


def add_user(units, username="testuser1", password="changeme"):
"""Add a user to a RabbitMQ cluster.
Expand Down

0 comments on commit d3ab250

Please sign in to comment.