blob: 5b272efbf54f94872a0ee965b9acef7485a46f8d [file] [log] [blame]
# Copyright (c) 2013 Mirantis Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from tempest import config
import tempest.test
CONF = config.CONF
class BaseDataProcessingTest(tempest.test.BaseTestCase):
_interface = 'json'
@classmethod
def setUpClass(cls):
super(BaseDataProcessingTest, cls).setUpClass()
os = cls.get_client_manager()
if not CONF.service_available.savanna:
raise cls.skipException("Savanna support is required")
cls.client = os.data_processing_client
# set some constants
cls.flavor_ref = CONF.compute.flavor_ref
cls.simple_node_group_template = {
'plugin_name': 'vanilla',
'hadoop_version': '1.2.1',
'node_processes': [
"datanode",
"tasktracker"
],
'flavor_id': cls.flavor_ref,
'node_configs': {
'HDFS': {
'Data Node Heap Size': 1024
},
'MapReduce': {
'Task Tracker Heap Size': 1024
}
}
}
# add lists for watched resources
cls._node_group_templates = []
@classmethod
def tearDownClass(cls):
# cleanup node group templates
for ngt_id in cls._node_group_templates:
try:
cls.client.delete_node_group_template(ngt_id)
except Exception:
# ignore errors while auto removing created resource
pass
cls.clear_isolated_creds()
super(BaseDataProcessingTest, cls).tearDownClass()
@classmethod
def create_node_group_template(cls, name, plugin_name, hadoop_version,
node_processes, flavor_id,
node_configs=None, **kwargs):
"""Creates watched node group template with specified params.
It supports passing additional params using kwargs and returns created
object. All resources created in this method will be automatically
removed in tearDownClass method.
"""
resp, body = cls.client.create_node_group_template(name, plugin_name,
hadoop_version,
node_processes,
flavor_id,
node_configs,
**kwargs)
# store id of created node group template
template_id = body['id']
cls._node_group_templates.append(template_id)
return resp, body, template_id