Fixed merge comments

This commit is contained in:
Sergey Galkin 2013-10-02 21:07:00 +04:00
parent 9265f2a14f
commit 8d7bf8585f
5 changed files with 89 additions and 78 deletions

View File

@ -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()

View File

@ -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

View File

@ -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)

View File

@ -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.'

View File

@ -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.'