Add compute node tests
This commit is contained in:
parent
c35289f567
commit
41a36611c1
|
@ -34,6 +34,9 @@ NovajoinGroup = [
|
|||
cfg.ListOpt('tripleo_controllers',
|
||||
default=['overcloud-controller-0'],
|
||||
help='List of overcloud controller short host names'),
|
||||
cfg.ListOpt('tripleo_computes',
|
||||
default=['overcloud-novacompute-0'],
|
||||
help='List of overcloud compute short host names'),
|
||||
cfg.StrOpt('tripleo_undercloud',
|
||||
default='undercloud',
|
||||
help='Undercloud short host name'
|
||||
|
|
|
@ -113,17 +113,18 @@ class NovajoinScenarioTest(manager.ScenarioTest):
|
|||
subhost = '{host}.{network}.{domain}'.format(
|
||||
host=host, network=network, domain=self.ipa_client.domain
|
||||
)
|
||||
service_principal = self.get_service_principal(subhost, service)
|
||||
result = self.ipa_client.find_service(service_principal)
|
||||
self.assertFalse(result['count'] > 0)
|
||||
service_principal = self.get_service_principal(
|
||||
subhost, service)
|
||||
result = self.ipa_client.find_service(service_principal)
|
||||
self.assertFalse(result['count'] > 0)
|
||||
|
||||
def verify_managed_services_deleted(self, services):
|
||||
for principal in services:
|
||||
service = principal.split('/', 1)[0]
|
||||
host = principal.split('/', 1)[1]
|
||||
service_principal = self.get_service_principal(host, service)
|
||||
result = self.ipa_client.find_service(service_principal)
|
||||
self.assertFalse(result['count'] > 0)
|
||||
service_principal = self.get_service_principal(host, service)
|
||||
result = self.ipa_client.find_service(service_principal)
|
||||
self.assertFalse(result['count'] > 0)
|
||||
|
||||
def get_service_cert(self, service, host):
|
||||
service_principal = self.get_service_principal(host, service)
|
||||
|
@ -214,6 +215,11 @@ class NovajoinScenarioTest(manager.ScenarioTest):
|
|||
return href.split('/')[-1]
|
||||
return None
|
||||
|
||||
def get_overcloud_server_ip(self, host):
|
||||
host_id = self.get_server_id(host)
|
||||
host_data = self.servers_client.show_server(host_id)['server']
|
||||
return self.get_server_ip(host_data)
|
||||
|
||||
def get_haproxy_cfg(self, user, controller_ip):
|
||||
try:
|
||||
# check containerized location first
|
||||
|
@ -232,6 +238,10 @@ class NovajoinScenarioTest(manager.ScenarioTest):
|
|||
cmd = 'sudo hiera -c /etc/puppet/hiera.yaml rabbitmq::ssl_port'
|
||||
return self.execute_on_controller(user, controller_ip, cmd).rstrip()
|
||||
|
||||
def get_libvirt_port(self, user, compute_ip):
|
||||
# TODO(alee) Get from hiera nova::migration::libvirt::listen_address
|
||||
return "16514"
|
||||
|
||||
def execute_on_controller(self, user, hostip, target_cmd):
|
||||
keypair = '/home/stack/.ssh/id_rsa'
|
||||
cmd = ['ssh', '-i', keypair,
|
||||
|
|
|
@ -47,7 +47,7 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
def _create_flavor(self, flavor_name):
|
||||
specs = {"capabilities:boot_option": "local",
|
||||
"capabilities:profile": "compute"}
|
||||
flvid = data_utils.rand_int_id(start=1000)
|
||||
flv_id = data_utils.rand_int_id(start=1000)
|
||||
ram = 4096
|
||||
vcpus = 1
|
||||
disk = 40
|
||||
|
@ -55,10 +55,10 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
ram=ram,
|
||||
vcpus=vcpus,
|
||||
disk=disk,
|
||||
id=flvid)['flavor']
|
||||
self.flavors_client.set_flavor_extra_spec(flvid,
|
||||
id=flv_id)['flavor']
|
||||
self.flavors_client.set_flavor_extra_spec(flv_id,
|
||||
**specs)
|
||||
return flvid
|
||||
return flv_id
|
||||
|
||||
def _create_image(self, name, properties={}):
|
||||
container_format = 'bare'
|
||||
|
@ -69,9 +69,8 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
properties=properties)
|
||||
return image_id
|
||||
|
||||
def _verify_host_and_services_are_enrolled(self, server_name,
|
||||
server_id, keypair):
|
||||
|
||||
def _verify_host_and_services_are_enrolled(
|
||||
self, server_name, server_id, keypair):
|
||||
self.verify_host_registered_with_ipa(server_name)
|
||||
self.verify_host_has_keytab(server_name)
|
||||
|
||||
|
@ -87,8 +86,6 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
)
|
||||
|
||||
# Verify managed services are created
|
||||
metadata = self.servers_client.list_server_metadata(server_id
|
||||
)['metadata']
|
||||
self.managed_services = [metadata[key] for key in metadata.keys()
|
||||
if key.startswith('managed_service_')]
|
||||
self.verify_managed_services(self.managed_services)
|
||||
|
@ -99,10 +96,7 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
ip = self.get_server_ip(server_details)
|
||||
self.verify_host_is_ipaclient(ip, USER, keypair)
|
||||
|
||||
def _verify_host_and_services_are_not_enrolled(self,
|
||||
server_name,
|
||||
server_id):
|
||||
|
||||
def _verify_host_and_services_are_not_enrolled(self, server_name):
|
||||
# Verify host and associated compact and managed services
|
||||
# are no longer registered with ipa
|
||||
self.verify_host_not_registered_with_ipa(server_name)
|
||||
|
@ -135,8 +129,7 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
server['id'],
|
||||
keypair)
|
||||
self.servers_client.delete_server(server['id'])
|
||||
self._verify_host_and_services_are_not_enrolled(instance_name,
|
||||
server['id'])
|
||||
self._verify_host_and_services_are_not_enrolled(instance_name)
|
||||
|
||||
def test_enrollment_metadata_in_image(self):
|
||||
|
||||
|
@ -165,5 +158,4 @@ class ServerTest(novajoin_manager.NovajoinScenarioTest):
|
|||
self._verify_host_and_services_are_enrolled(instance_name,
|
||||
server['id'], keypair)
|
||||
self.servers_client.delete_server(server['id'])
|
||||
self._verify_host_and_services_are_not_enrolled(instance_name,
|
||||
server['id'])
|
||||
self._verify_host_and_services_are_not_enrolled(instance_name)
|
||||
|
|
|
@ -34,6 +34,11 @@ CONTROLLER_CERT_TAGS = [
|
|||
'haproxy-storage_mgmt-cert'
|
||||
]
|
||||
|
||||
COMPUTE_CERT_TAGS = [
|
||||
'libvirt-client-cert',
|
||||
'libvirt-server-cert'
|
||||
]
|
||||
|
||||
|
||||
class TripleOTest(novajoin_manager.NovajoinScenarioTest):
|
||||
|
||||
|
@ -64,12 +69,15 @@ class TripleOTest(novajoin_manager.NovajoinScenarioTest):
|
|||
def test_hosts_are_registered(self):
|
||||
hosts = list(CONF.novajoin.tripleo_controllers)
|
||||
hosts.append(CONF.novajoin.tripleo_undercloud)
|
||||
hosts.extend(CONF.novajoin.tripleo_computes)
|
||||
for host in hosts:
|
||||
self.verify_host_registered_with_ipa(host)
|
||||
self.verify_host_has_keytab(host)
|
||||
|
||||
def test_verify_compact_services_created(self):
|
||||
for host in CONF.novajoin.tripleo_controllers:
|
||||
hosts = list(CONF.novajoin.tripleo_controllers)
|
||||
hosts.extend(CONF.novajoin.tripleo_computes)
|
||||
for host in hosts:
|
||||
metadata = self.servers_client.list_server_metadata(
|
||||
self.get_server_id(host))['metadata']
|
||||
services = metadata['compact_services']
|
||||
|
@ -92,12 +100,9 @@ class TripleOTest(novajoin_manager.NovajoinScenarioTest):
|
|||
services=managed_services,
|
||||
verify_certs=True)
|
||||
|
||||
def test_verify_service_certs_are_tracked(self):
|
||||
def test_verify_controller_certs_are_tracked(self):
|
||||
for host in CONF.novajoin.tripleo_controllers:
|
||||
server_id = self.get_server_id(host)
|
||||
server = self.servers_client.show_server(server_id)['server']
|
||||
server_ip = self.get_server_ip(server)
|
||||
|
||||
server_ip = self.get_overcloud_server_ip(host)
|
||||
for tag in CONTROLLER_CERT_TAGS:
|
||||
self.verify_overcloud_cert_tracked(
|
||||
server_ip,
|
||||
|
@ -105,11 +110,21 @@ class TripleOTest(novajoin_manager.NovajoinScenarioTest):
|
|||
tag
|
||||
)
|
||||
|
||||
def test_overcloud_is_ipaclient(self):
|
||||
for host in CONF.novajoin.tripleo_controllers:
|
||||
server_id = self.get_server_id(host)
|
||||
server = self.servers_client.show_server(server_id)['server']
|
||||
server_ip = self.get_server_ip(server)
|
||||
def test_verify_compute_certs_are_tracked(self):
|
||||
for host in CONF.novajoin.tripleo_computes:
|
||||
server_ip = self.get_overcloud_server_ip(host)
|
||||
for tag in COMPUTE_CERT_TAGS:
|
||||
self.verify_overcloud_cert_tracked(
|
||||
server_ip,
|
||||
'heat-admin',
|
||||
tag
|
||||
)
|
||||
|
||||
def test_overcloud_hosts_are_ipaclients(self):
|
||||
hosts = list(CONF.novajoin.tripleo_controllers)
|
||||
hosts.extend(CONF.novajoin.tripleo_computes)
|
||||
for host in hosts:
|
||||
server_ip = self.get_overcloud_server_ip(host)
|
||||
self.verify_overcloud_host_is_ipaclient(
|
||||
server_ip,
|
||||
'heat-admin'
|
||||
|
|
|
@ -77,11 +77,7 @@ class TripleOTLSTest(novajoin_manager.NovajoinScenarioTest):
|
|||
|
||||
def test_haproxy_tls_connections(self):
|
||||
for controller in CONF.novajoin.tripleo_controllers:
|
||||
controller_id = self.get_server_id(controller)
|
||||
controller_data = self.servers_client.show_server(
|
||||
controller_id)['server']
|
||||
controller_ip = self.get_server_ip(controller_data)
|
||||
|
||||
controller_ip = self.get_overcloud_server_ip(controller)
|
||||
haproxy = self.get_haproxy_cfg('heat-admin', controller_ip)
|
||||
services = self.parse_haproxy_cfg(haproxy)
|
||||
|
||||
|
@ -111,10 +107,7 @@ class TripleOTLSTest(novajoin_manager.NovajoinScenarioTest):
|
|||
|
||||
def test_rabbitmq_tls_connection(self):
|
||||
for controller in CONF.novajoin.tripleo_controllers:
|
||||
controller_id = self.get_server_id(controller)
|
||||
controller_data = self.servers_client.show_server(
|
||||
controller_id)['server']
|
||||
controller_ip = self.get_server_ip(controller_data)
|
||||
controller_ip = self.get_overcloud_server_ip(controller)
|
||||
rabbitmq_host = self.get_rabbitmq_host('heat-admin', controller_ip)
|
||||
rabbitmq_port = self.get_rabbitmq_port('heat-admin', controller_ip)
|
||||
self.verify_overcloud_tls_connection(
|
||||
|
@ -123,3 +116,16 @@ class TripleOTLSTest(novajoin_manager.NovajoinScenarioTest):
|
|||
hostport="{host}:{port}".format(host=rabbitmq_host,
|
||||
port=rabbitmq_port)
|
||||
)
|
||||
|
||||
def test_libvirt_tls_connection(self):
|
||||
for compute in CONF.novajoin.tripleo_computes:
|
||||
compute_ip = self.get_overcloud_server_ip(compute)
|
||||
libvirt_port = self.get_libvirt_port('heat-admin', compute_ip)
|
||||
|
||||
# TODO(alee) Is the host correct?
|
||||
self.verify_overcloud_tls_connection(
|
||||
controller_ip=compute_ip,
|
||||
user='heat-admin',
|
||||
hostport="{host}:{port}".format(host=compute_ip,
|
||||
port=libvirt_port)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue