Test compact_services metadata
This tests new and old formats, as well as instance metadata updates. Change-Id: Ie7b3bcdbb98bb2786000207b72e7b289d5051b8f
This commit is contained in:
parent
62475be1c2
commit
f5aab5544d
|
@ -474,13 +474,17 @@ class IPAClient(IPANovaJoinBase):
|
|||
return True
|
||||
return False
|
||||
|
||||
def host_get_services(self, service_host):
|
||||
"""Return list of services this host manages"""
|
||||
LOG.debug('Checking host ' + service_host + ' services')
|
||||
params = []
|
||||
service_args = {'man_by_host': six.text_type(service_host)}
|
||||
result = self._call_ipa('service_find', *params, **service_args)
|
||||
return [service['krbprincipalname'][0] for service in result['result']]
|
||||
|
||||
def host_has_services(self, service_host):
|
||||
"""Return True if this host manages any services"""
|
||||
LOG.debug('Checking if host ' + service_host + ' has services')
|
||||
params = []
|
||||
service_args = {'man_by_host': service_host}
|
||||
result = self._call_ipa('service_find', *params, **service_args)
|
||||
return result['count'] > 0
|
||||
return len(self.host_get_services(service_host)) > 0
|
||||
|
||||
def find_host(self, hostname):
|
||||
"""Return True if this host exists"""
|
||||
|
|
|
@ -99,11 +99,33 @@ class TestEnrollment(testtools.TestCase):
|
|||
self._server = self.conn.compute.create_server(
|
||||
name=TEST_INSTANCE, image_id=image.id, flavor_id=flavor.id,
|
||||
networks=[{"uuid": network.id}], key_name=self._key.name,
|
||||
metadata = {"ipa_enroll": "True"})
|
||||
metadata = {
|
||||
"ipa_enroll": "True",
|
||||
'compact_service_http': json.dumps(['test1', 'test2']),
|
||||
})
|
||||
|
||||
server = self.conn.compute.wait_for_server(self._server)
|
||||
return server
|
||||
|
||||
def _update_server_compact_service_new(self):
|
||||
self.conn.compute.set_server_metadata(
|
||||
self._server,
|
||||
compact_service_rabbitmq=json.dumps(['test3', 'test4']))
|
||||
|
||||
def _update_server_compact_service_old(self):
|
||||
self.conn.compute.delete_server_metadata(self._server, [
|
||||
'compact_service_http', 'compact_service_rabbitmq'])
|
||||
self.conn.compute.set_server_metadata(
|
||||
self._server,
|
||||
compact_services=json.dumps({'http': ['test5', 'test6']}))
|
||||
|
||||
@loopingcall.RetryDecorator(50, 5, 5, (AssertionError,))
|
||||
def _check_server_compact_services(self, service_list):
|
||||
services = ['\\'.join([s.split('/', 1)[0].lower(), s.split('.', 2)[1]])
|
||||
for s in self.ipaclient.host_get_services(
|
||||
TEST_INSTANCE + EXAMPLE_DOMAIN)]
|
||||
self.assertSetEqual(set(services), set(service_list))
|
||||
|
||||
def _associate_floating_ip(self):
|
||||
self.conn.compute.add_floating_ip_to_server(
|
||||
self._server, self._ip.floating_ip_address)
|
||||
|
@ -182,6 +204,19 @@ class TestEnrollment(testtools.TestCase):
|
|||
|
||||
self._check_ipa_client_install()
|
||||
|
||||
self._check_server_compact_services(['http\\test1', 'http\\test2'])
|
||||
|
||||
self._update_server_compact_service_new()
|
||||
self._check_server_compact_services([
|
||||
'http\\test1', 'http\\test2',
|
||||
'rabbitmq\\test3', 'rabbitmq\\test4'])
|
||||
|
||||
self._update_server_compact_service_old()
|
||||
# NOTE(xek), novajoin doesn't support removing of services via update
|
||||
self._check_server_compact_services([
|
||||
'http\\test1', 'http\\test2', 'http\\test5', 'http\\test6',
|
||||
'rabbitmq\\test3', 'rabbitmq\\test4'])
|
||||
|
||||
self._delete_server()
|
||||
self._check_ipa_client_deleted()
|
||||
self._check_ip_record_removed()
|
||||
|
|
Loading…
Reference in New Issue