Fixed merge comments
This commit is contained in:
parent
9265f2a14f
commit
8d7bf8585f
@ -53,10 +53,39 @@ class CleanUpClientManager(fuel_health.nmanager.OfficialClientManager):
|
|||||||
|
|
||||||
time.sleep(self.build_interval)
|
time.sleep(self.build_interval)
|
||||||
|
|
||||||
|
|
||||||
def cleanup():
|
def cleanup():
|
||||||
manager = CleanUpClientManager()
|
manager = CleanUpClientManager()
|
||||||
|
|
||||||
|
savanna_client = manager._get_savanna_client()
|
||||||
|
if savanna_client is not None:
|
||||||
|
savanna_clusters = savanna_client.clusters.list()
|
||||||
|
for s in savanna_clusters:
|
||||||
|
if s.name.startswith('ostf-test-'):
|
||||||
|
try:
|
||||||
|
LOG.info('Start savanna cluster deletion.')
|
||||||
|
savanna_client.clusters.delete(s.id)
|
||||||
|
except Exception as exc:
|
||||||
|
LOG.debug(exc)
|
||||||
|
pass
|
||||||
|
savanna_clusters_template = savanna_client.cluster_templates.list()
|
||||||
|
for s in savanna_clusters_template:
|
||||||
|
if s.name.startswith('ostf_test-'):
|
||||||
|
try:
|
||||||
|
LOG.info('Start savanna cluster template deletion.')
|
||||||
|
savanna_client.cluster_templates.delete(s.id)
|
||||||
|
except Exception as exc:
|
||||||
|
LOG.debug(exc)
|
||||||
|
pass
|
||||||
|
savanna_node_group_template = savanna_client.node_group_templates.list()
|
||||||
|
for s in savanna_node_group_template:
|
||||||
|
if s.name.startswith('ostf_test-'):
|
||||||
|
try:
|
||||||
|
LOG.info('Start savanna node group template deletion.')
|
||||||
|
savanna_client.node_group_templates.delete(s.id)
|
||||||
|
except Exception as exc:
|
||||||
|
LOG.debug(exc)
|
||||||
|
pass
|
||||||
|
|
||||||
murano_client = manager._get_murano_client()
|
murano_client = manager._get_murano_client()
|
||||||
if murano_client is not None:
|
if murano_client is not None:
|
||||||
environments = murano_client.list_environments()
|
environments = murano_client.list_environments()
|
||||||
|
@ -30,6 +30,10 @@ try:
|
|||||||
import muranoclient.v1.client
|
import muranoclient.v1.client
|
||||||
except:
|
except:
|
||||||
LOG.warning('Muranoclient could not be imported.')
|
LOG.warning('Muranoclient could not be imported.')
|
||||||
|
try:
|
||||||
|
import savannaclient.api.client
|
||||||
|
except:
|
||||||
|
LOG.warning('Savanna client could not be imported.')
|
||||||
import cinderclient.client
|
import cinderclient.client
|
||||||
import glanceclient.client
|
import glanceclient.client
|
||||||
import keystoneclient.v2_0.client
|
import keystoneclient.v2_0.client
|
||||||
@ -63,6 +67,7 @@ class OfficialClientManager(fuel_health.manager.Manager):
|
|||||||
self.volume_client = self._get_volume_client()
|
self.volume_client = self._get_volume_client()
|
||||||
self.heat_client = self._get_heat_client()
|
self.heat_client = self._get_heat_client()
|
||||||
self.murano_client = self._get_murano_client()
|
self.murano_client = self._get_murano_client()
|
||||||
|
self.savanna_client = self._get_savanna_client()
|
||||||
|
|
||||||
self.client_attr_names = [
|
self.client_attr_names = [
|
||||||
'compute_client',
|
'compute_client',
|
||||||
@ -71,7 +76,8 @@ class OfficialClientManager(fuel_health.manager.Manager):
|
|||||||
'network_client',
|
'network_client',
|
||||||
'volume_client',
|
'volume_client',
|
||||||
'heat_client',
|
'heat_client',
|
||||||
'murano_client'
|
'murano_client',
|
||||||
|
'savanna_client'
|
||||||
]
|
]
|
||||||
|
|
||||||
def _get_compute_client(self, username=None, password=None,
|
def _get_compute_client(self, username=None, password=None,
|
||||||
@ -211,6 +217,22 @@ class OfficialClientManager(fuel_health.manager.Manager):
|
|||||||
token=self.token_id,
|
token=self.token_id,
|
||||||
insecure=self.insecure)
|
insecure=self.insecure)
|
||||||
|
|
||||||
|
def _get_savanna_client(self, username=None, password=None):
|
||||||
|
auth_url = self.config.identity.uri
|
||||||
|
tenant_name = self.config.identity.admin_tenant_name
|
||||||
|
savanna_ip = self.config.compute.controller_nodes[0]
|
||||||
|
savanna_url = 'http://%s:8386/v1.0' % savanna_ip
|
||||||
|
LOG.debug(savanna_url)
|
||||||
|
if not username:
|
||||||
|
username = self.config.identity.admin_username
|
||||||
|
if not password:
|
||||||
|
password = self.config.identity.admin_password
|
||||||
|
return savannaclient.api.client.Client(username=username,
|
||||||
|
api_key=password,
|
||||||
|
project_name=tenant_name,
|
||||||
|
auth_url=auth_url,
|
||||||
|
savanna_url=savanna_url)
|
||||||
|
|
||||||
|
|
||||||
class OfficialClientTest(fuel_health.test.TestCase):
|
class OfficialClientTest(fuel_health.test.TestCase):
|
||||||
manager_class = OfficialClientManager
|
manager_class = OfficialClientManager
|
||||||
|
@ -26,49 +26,8 @@ import fuel_health.nmanager as nmanager
|
|||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
try:
|
|
||||||
import savannaclient.api.client
|
|
||||||
except:
|
|
||||||
LOG.warning('Savanna client could not be imported.')
|
|
||||||
|
|
||||||
class SavannaClientManager(nmanager.OfficialClientManager):
|
class SavannaTest(nmanager.OfficialClientTest):
|
||||||
"""
|
|
||||||
Manager that provides access to the Savanna python client for
|
|
||||||
calling Savanna API.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
"""
|
|
||||||
This method allows to initialize authentication before
|
|
||||||
each test case and define parameters of
|
|
||||||
Savanna API Service
|
|
||||||
"""
|
|
||||||
super(SavannaClientManager, self).__init__()
|
|
||||||
self.savanna_client = self._get_savanna_client()
|
|
||||||
self.client_attr_names.append('savanna_client')
|
|
||||||
|
|
||||||
def _get_savanna_client(self, username=None, password=None):
|
|
||||||
auth_url = self.config.identity.uri
|
|
||||||
tenant_name = self.config.identity.admin_tenant_name
|
|
||||||
savanna_ip = self.config.compute.controller_nodes[0]
|
|
||||||
savanna_url = 'http://%s:8386/v1.0' % savanna_ip
|
|
||||||
LOG.debug(savanna_url)
|
|
||||||
if not username:
|
|
||||||
username = self.config.identity.admin_username
|
|
||||||
if not password:
|
|
||||||
password = self.config.identity.admin_password
|
|
||||||
return savannaclient.api.client.Client(username=username,
|
|
||||||
api_key=password,
|
|
||||||
project_name=tenant_name,
|
|
||||||
auth_url=auth_url,
|
|
||||||
savanna_url=savanna_url)
|
|
||||||
|
|
||||||
|
|
||||||
class SavannaOfficialClientTest(nmanager.OfficialClientTest):
|
|
||||||
manager_class = SavannaClientManager
|
|
||||||
|
|
||||||
|
|
||||||
class SavannaTest(SavannaOfficialClientTest):
|
|
||||||
"""
|
"""
|
||||||
Base class for openstack sanity tests for Savanna
|
Base class for openstack sanity tests for Savanna
|
||||||
"""
|
"""
|
||||||
@ -97,11 +56,12 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
cls.HDP_HADOOP_USER = 'hdfs'
|
cls.HDP_HADOOP_USER = 'hdfs'
|
||||||
cls.HDP_NODE_USERNAME = 'cloud-user'
|
cls.HDP_NODE_USERNAME = 'cloud-user'
|
||||||
cls.CLUSTER_CREATION_TIMEOUT = '20'
|
cls.CLUSTER_CREATION_TIMEOUT = '20'
|
||||||
cls.USER_KEYPAIR_ID = 'ostf-savanna'
|
cls.USER_KEYPAIR_ID = 'ostf_test-savanna'
|
||||||
cls.PLUGIN_NAME = 'vanilla'
|
cls.PLUGIN_NAME = 'vanilla'
|
||||||
cls.HADOOP_VERSION = '1.1.2'
|
cls.HADOOP_VERSION = '1.1.2'
|
||||||
cls.IMAGE_NAME = 'savanna'
|
cls.IMAGE_NAME = 'savanna'
|
||||||
cls.CLUSTER_NAME = 'ostf-savanna-cluster'
|
cls.CLUSTER_NAME = 'ostf-test-savanna-cluster'
|
||||||
|
cls.SAVANNA_FLAVOR = 'ostf_test-savanna-flavor'
|
||||||
cls.JT_PORT = 50030
|
cls.JT_PORT = 50030
|
||||||
cls.NN_PORT = 50070
|
cls.NN_PORT = 50070
|
||||||
cls.TT_PORT = 50060
|
cls.TT_PORT = 50060
|
||||||
@ -112,7 +72,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
self, client, name, plugin_name, hadoop_version, description,
|
self, client, name, plugin_name, hadoop_version, description,
|
||||||
volumes_per_node, volume_size, node_processes, node_configs):
|
volumes_per_node, volume_size, node_processes, node_configs):
|
||||||
if not self.flavors:
|
if not self.flavors:
|
||||||
flavor = self.compute_client.flavors.create('SavannaFlavor',
|
flavor = self.compute_client.flavors.create(self.SAVANNA_FLAVOR,
|
||||||
512, 1, 700)
|
512, 1, 700)
|
||||||
self.flavors.append(flavor.id)
|
self.flavors.append(flavor.id)
|
||||||
data = client.node_group_templates.create(
|
data = client.node_group_templates.create(
|
||||||
@ -274,7 +234,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
node_group_template_tt_dn_id = \
|
node_group_template_tt_dn_id = \
|
||||||
self._create_node_group_template_and_get_id(
|
self._create_node_group_template_and_get_id(
|
||||||
client,
|
client,
|
||||||
'ostf-savanna-tt-dn',
|
'ostf_test-savanna-tt-dn',
|
||||||
self.plugin,
|
self.plugin,
|
||||||
self.plugin_version,
|
self.plugin_version,
|
||||||
description='test node group template',
|
description='test node group template',
|
||||||
@ -293,7 +253,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
node_group_template_tt_id = \
|
node_group_template_tt_id = \
|
||||||
self._create_node_group_template_and_get_id(
|
self._create_node_group_template_and_get_id(
|
||||||
client,
|
client,
|
||||||
'ostf-savanna-tt',
|
'ostf_test-savanna-tt',
|
||||||
self.plugin,
|
self.plugin,
|
||||||
self.plugin_version,
|
self.plugin_version,
|
||||||
description='test node group template',
|
description='test node group template',
|
||||||
@ -311,7 +271,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
node_group_template_tt_id = \
|
node_group_template_tt_id = \
|
||||||
self._create_node_group_template_and_get_id(
|
self._create_node_group_template_and_get_id(
|
||||||
client,
|
client,
|
||||||
'ostf-savanna-dd',
|
'ostf_test-savanna-dd',
|
||||||
self.plugin,
|
self.plugin,
|
||||||
self.plugin_version,
|
self.plugin_version,
|
||||||
description='test node group template',
|
description='test node group template',
|
||||||
@ -328,7 +288,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
def _create_cluster_template(self, client):
|
def _create_cluster_template(self, client):
|
||||||
cluster_template_id = self._create_cluster_template_and_get_id(
|
cluster_template_id = self._create_cluster_template_and_get_id(
|
||||||
client,
|
client,
|
||||||
'ostf-savanna-test-cluster-template',
|
'ostf_test-savanna-cluster-template',
|
||||||
self.plugin,
|
self.plugin,
|
||||||
self.plugin_version,
|
self.plugin_version,
|
||||||
description='test cluster template',
|
description='test cluster template',
|
||||||
@ -339,7 +299,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
},
|
},
|
||||||
node_groups=[
|
node_groups=[
|
||||||
dict(
|
dict(
|
||||||
name='master-node-jt-nn',
|
name='ostf_test-master-node-jt-nn',
|
||||||
flavor_id=self.flavors[0],
|
flavor_id=self.flavors[0],
|
||||||
node_processes=['namenode', 'jobtracker'],
|
node_processes=['namenode', 'jobtracker'],
|
||||||
node_configs={
|
node_configs={
|
||||||
@ -348,7 +308,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
},
|
},
|
||||||
count=1),
|
count=1),
|
||||||
dict(
|
dict(
|
||||||
name='master-node-sec-nn',
|
name='ostf_test-master-node-sec-nn',
|
||||||
flavor_id=self.flavors[0],
|
flavor_id=self.flavors[0],
|
||||||
node_processes=['secondarynamenode'],
|
node_processes=['secondarynamenode'],
|
||||||
node_configs={
|
node_configs={
|
||||||
@ -356,15 +316,15 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
},
|
},
|
||||||
count=1),
|
count=1),
|
||||||
dict(
|
dict(
|
||||||
name='worker-node-tt-dn',
|
name='ostf_test-worker-node-tt-dn',
|
||||||
node_group_template_id=self.node_groups[0],
|
node_group_template_id=self.node_groups[0],
|
||||||
count=2),
|
count=2),
|
||||||
dict(
|
dict(
|
||||||
name='worker-node-dn',
|
name='ostf_test-worker-node-dn',
|
||||||
node_group_template_id=self.node_groups[1],
|
node_group_template_id=self.node_groups[1],
|
||||||
count=1),
|
count=1),
|
||||||
dict(
|
dict(
|
||||||
name='worker-node-tt',
|
name='ostf_test-worker-node-tt',
|
||||||
node_group_template_id=self.node_groups[2],
|
node_group_template_id=self.node_groups[2],
|
||||||
count=1)
|
count=1)
|
||||||
],
|
],
|
||||||
@ -376,7 +336,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
def _create_tiny_cluster_template(self, client):
|
def _create_tiny_cluster_template(self, client):
|
||||||
cluster_template_id = self._create_cluster_template_and_get_id(
|
cluster_template_id = self._create_cluster_template_and_get_id(
|
||||||
client,
|
client,
|
||||||
'ostf-savanna-test-cluster-template',
|
'ostf_test-savanna-cluster-template',
|
||||||
self.plugin,
|
self.plugin,
|
||||||
self.plugin_version,
|
self.plugin_version,
|
||||||
description='test cluster template',
|
description='test cluster template',
|
||||||
@ -387,7 +347,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
},
|
},
|
||||||
node_groups=[
|
node_groups=[
|
||||||
dict(
|
dict(
|
||||||
name='master-node-jt-nn',
|
name='ostf_test-master-node-jt-nn',
|
||||||
flavor_id=self.flavors[0],
|
flavor_id=self.flavors[0],
|
||||||
node_processes=['namenode', 'jobtracker'],
|
node_processes=['namenode', 'jobtracker'],
|
||||||
node_configs={
|
node_configs={
|
||||||
@ -396,7 +356,7 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
},
|
},
|
||||||
count=1),
|
count=1),
|
||||||
dict(
|
dict(
|
||||||
name='worker-node-tt-dn',
|
name='ostf_test-worker-node-tt-dn',
|
||||||
node_group_template_id=self.node_groups[0],
|
node_group_template_id=self.node_groups[0],
|
||||||
count=1),
|
count=1),
|
||||||
],
|
],
|
||||||
@ -440,8 +400,8 @@ class SavannaTest(SavannaOfficialClientTest):
|
|||||||
if items:
|
if items:
|
||||||
for item in items:
|
for item in items:
|
||||||
try:
|
try:
|
||||||
client.delete(item)
|
|
||||||
items.remove(item)
|
items.remove(item)
|
||||||
|
client.delete(item)
|
||||||
except RuntimeError as exc:
|
except RuntimeError as exc:
|
||||||
cls.error_msg.append(exc)
|
cls.error_msg.append(exc)
|
||||||
LOG.debug(exc)
|
LOG.debug(exc)
|
||||||
|
@ -22,7 +22,7 @@ from fuel_health import savanna
|
|||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class SanitySavannaTests(savanna.SavannaTest):
|
class PlatformSavannaTests(savanna.SavannaTest):
|
||||||
"""
|
"""
|
||||||
TestClass contains tests that check basic Savanna functionality.
|
TestClass contains tests that check basic Savanna functionality.
|
||||||
"""
|
"""
|
||||||
@ -32,14 +32,14 @@ class SanitySavannaTests(savanna.SavannaTest):
|
|||||||
"""Test create/list/start/delete Savanna cluster
|
"""Test create/list/start/delete Savanna cluster
|
||||||
Target component: Savanna
|
Target component: Savanna
|
||||||
Scenario:
|
Scenario:
|
||||||
1. Create node group template
|
1. Send request to create node group template
|
||||||
2. Create cluster template
|
2. Send request to create cluster template
|
||||||
3. List node group templates
|
3. Request the list of node group templates
|
||||||
4. List cluster templates
|
4. Request the list of cluster templates
|
||||||
5. Launch cluster
|
5. Send request to launch cluster
|
||||||
6. Delete cluster
|
6. Send request to delete cluster
|
||||||
7. Delete cluster template
|
7. Send request to delete cluster template
|
||||||
8. Delete node group templates
|
8. Send request to delete node group templates
|
||||||
Duration: 20 m.
|
Duration: 20 m.
|
||||||
"""
|
"""
|
||||||
fail_msg = 'Fail create node group template.'
|
fail_msg = 'Fail create node group template.'
|
||||||
|
@ -32,15 +32,15 @@ class SanitySavannaTests(savanna.SavannaTest):
|
|||||||
"""Test create/list/delete Savanna node group and cluster templates
|
"""Test create/list/delete Savanna node group and cluster templates
|
||||||
Target component: Savanna
|
Target component: Savanna
|
||||||
Scenario:
|
Scenario:
|
||||||
1. Create node group tasktracker and datanode template
|
1. Send request to create node group task tracker and data node template
|
||||||
2. Create node group tasktracker template
|
2. Send request to create node group task tracker template
|
||||||
3. Create node group datanode template
|
3. Send request to create node group data node template
|
||||||
4. Create cluster template
|
4. Send request to create cluster template
|
||||||
5. List node group templates
|
5. Request the list of node group templates
|
||||||
6. List cluster templates
|
6. Request the list of cluster templates
|
||||||
7. Delete cluster template
|
7. Send request to delete cluster template
|
||||||
8. Delete node templates
|
8. Send request to delete node templates
|
||||||
9. Delete cluster flavors
|
9. Send request to delete savanna flavor
|
||||||
Duration: 20 s.
|
Duration: 20 s.
|
||||||
"""
|
"""
|
||||||
fail_msg = 'Fail create node group tasktracker and datanode templates.'
|
fail_msg = 'Fail create node group tasktracker and datanode templates.'
|
||||||
|
Loading…
Reference in New Issue
Block a user