sahara/sahara/tests/unit/plugins/mapr/test_base_handler.py

112 lines
4.1 KiB
Python

# Copyright (c) 2015, MapR Technologies
#
# 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.
import six
import sahara.plugins.mapr.abstract.cluster_context as abstract_context
from sahara.plugins.mapr.domain import service as bs
from sahara.plugins.mapr.services.management import management
from sahara.plugins.mapr.services.maprfs import maprfs
from sahara.plugins.mapr.services.oozie import oozie
from sahara.plugins.mapr.services.yarn import yarn
import sahara.plugins.mapr.versions.v5_2_0_mrv2.version_handler as handler
from sahara.plugins import provisioning as p
from sahara.tests.unit import base as b
from sahara.tests.unit import testutils as tu
class TestHandler(b.SaharaTestCase):
def __init__(self, *args, **kwds):
super(TestHandler, self).__init__(*args, **kwds)
self.handler = handler.VersionHandler()
self.cluster = self._get_cluster()
def _get_cluster(self):
i1 = tu.make_inst_dict('id_1', 'instance_1', '1.1.1.1')
master_proc = [
yarn.RESOURCE_MANAGER.ui_name,
yarn.NODE_MANAGER.ui_name,
yarn.HISTORY_SERVER.ui_name,
maprfs.CLDB.ui_name,
maprfs.FILE_SERVER.ui_name,
oozie.OOZIE.ui_name,
management.ZOOKEEPER.ui_name,
]
master_ng = tu.make_ng_dict('master', 'large', master_proc, 1, [i1])
cluster_configs = {
'Service': {
'key': 'value',
'Service Version': '1.1',
},
}
cluster = tu.create_cluster(
name='test_cluster',
tenant='large',
plugin='mapr',
version='5.2.0.mrv2',
node_groups=[master_ng],
cluster_configs=cluster_configs,
)
self.ng = cluster.node_groups[0]
self.instance = self.ng.instances[0]
return cluster
def test_get_context(self):
self.assertIsInstance(self.handler.get_context(self._get_cluster()),
abstract_context.AbstractClusterContext)
def test_get_services(self):
services = self.handler.get_services()
for service in services:
self.assertIsInstance(service, bs.Service)
def test_get_np_dict(self):
np_dict = self.handler.get_node_processes()
self.assertIsNotNone(np_dict)
self.assertIsInstance(np_dict, dict)
for k, v in six.iteritems(np_dict):
self.assertIsInstance(k, six.string_types)
self.assertIsInstance(v, list)
self.assertNotEqual(0, len(v))
def test_get_configs(self):
configs = self.handler.get_configs()
self.assertIsInstance(configs, list)
for config in configs:
self.assertIsInstance(config, p.Config)
def test_get_version_configs(self):
version_configs = self.handler._get_version_configs()
self.assertIsInstance(version_configs, list)
for conf in version_configs:
self.assertIsInstance(conf, p.Config)
self.assertNotEqual(0, len(conf.config_values))
self.assertEqual('dropdown', conf.config_type)
def test_get_configs_dict(self):
configs_dict = self.handler.get_configs_dict()
self.assertIsInstance(configs_dict, dict)
for k, v in six.iteritems(configs_dict):
self.assertIsInstance(k, six.string_types)
self.assertIsInstance(v, dict)
def test_get_open_ports(self):
ports_list = self.handler.get_open_ports(self.ng)
self.assertIsNotNone(ports_list)
self.assertIsInstance(ports_list, list)
for port in ports_list:
self.assertIsInstance(port, int)