Plugins splitted from sahara core

Change-Id: I43e0beec6508f93a436a150749bfa23571986b9d
This commit is contained in:
Telles Nobrega 2018-12-21 17:20:35 -03:00 committed by Telles Nobrega
parent fda734808a
commit 0637de5fdb
107 changed files with 985 additions and 819 deletions

View File

@ -1,3 +1,3 @@
[DEFAULT]
test_path=./sahara/tests/unit
test_path=./sahara_plugin_vanilla/tests/unit
top_dir=./

35
README.rst Normal file
View File

@ -0,0 +1,35 @@
========================
Team and repository tags
========================
.. image:: https://governance.openstack.org/tc/badges/sahara.svg
:target: https://governance.openstack.org/tc/reference/tags/index.html
.. Change things from this point on
OpenStack Data Processing ("Sahara") project
============================================
Sahara at wiki.openstack.org: https://wiki.openstack.org/wiki/Sahara
Storyboard project: https://storyboard.openstack.org/#!/project/935
Sahara docs site: https://docs.openstack.org/sahara/latest/
Roadmap: https://wiki.openstack.org/wiki/Sahara/Roadmap
Quickstart guide: https://docs.openstack.org/sahara/latest/user/quickstart.html
How to participate: https://docs.openstack.org/sahara/latest/contributor/how-to-participate.html
Source: https://git.openstack.org/cgit/openstack/sahara
Bugs and feature requests: https://storyboard.openstack.org/#!/project/935
Release notes: https://docs.openstack.org/releasenotes/sahara/
License
-------
Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0

9
doc/requirements.txt Normal file
View File

@ -0,0 +1,9 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
openstackdocstheme>=1.18.1 # Apache-2.0
os-api-ref>=1.4.0 # Apache-2.0
reno>=2.5.0 # Apache-2.0
sphinx!=1.6.6,!=1.6.7,>=1.6.2 # BSD
sphinxcontrib-httpdomain>=1.3.0 # BSD
whereto>=0.3.0 # Apache-2.0

34
errors.txt Normal file
View File

@ -0,0 +1,34 @@
py27 develop-inst-nodeps: /home/tenobreg/coding/upstream/sahara/sahara
py27 installed: alabaster==0.7.11,alembic==1.0.0,amqp==2.3.2,appdirs==1.4.3,asn1crypto==0.24.0,astroid==1.3.8,Babel==2.6.0,bandit==1.5.0,bashate==0.6.0,bcrypt==3.1.4,botocore==1.10.62,cachetools==2.1.0,castellan==0.18.0,certifi==2018.4.16,cffi==1.11.5,chardet==3.0.4,click==6.7,cliff==2.13.0,cmd2==0.8.8,contextlib2==0.5.5,coverage==4.5.1,cryptography==2.3,debtcollector==1.20.0,decorator==4.3.0,deprecation==2.0.5,doc8==0.8.0,docutils==0.14,dogpile.cache==0.6.6,dulwich==0.19.5,enum-compat==0.0.2,enum34==1.1.6,eventlet==0.20.0,extras==1.0.0,fasteners==0.14.1,fixtures==3.0.0,flake8==2.5.5,Flask==1.0.2,funcsigs==1.0.2,functools32==3.2.3.post2,future==0.16.0,futures==3.2.0,futurist==1.7.0,gitdb2==2.0.4,GitPython==2.1.11,greenlet==0.4.13,hacking==0.12.0,idna==2.7,imagesize==1.0.0,ipaddress==1.0.22,iso8601==0.1.12,itsdangerous==0.24,Jinja2==2.10,jmespath==0.9.3,jsonpatch==1.23,jsonpointer==2.0,jsonschema==2.6.0,keystoneauth1==3.10.0,keystonemiddleware==5.2.0,kombu==4.2.1,linecache2==1.0.0,logilab-common==1.4.2,Mako==1.0.7,MarkupSafe==1.0,mccabe==0.2.1,mock==2.0.0,monotonic==1.5,mox3==0.26.0,msgpack==0.5.6,munch==2.3.2,netaddr==0.7.19,netifaces==0.10.7,openstackdocstheme==1.22.0,openstacksdk==0.17.2,os-api-ref==1.5.0,os-client-config==1.31.2,os-service-types==1.3.0,os-testr==1.0.0,osc-lib==1.11.1,oslo.cache==1.30.1,oslo.concurrency==3.27.0,oslo.config==6.4.0,oslo.context==2.21.0,oslo.db==4.40.0,oslo.i18n==3.21.0,oslo.log==3.39.0,oslo.messaging==8.1.0,oslo.middleware==3.36.0,oslo.policy==1.38.1,oslo.rootwrap==5.14.1,oslo.serialization==2.27.0,oslo.service==1.31.3,oslo.utils==3.36.4,oslotest==3.6.0,packaging==17.1,paramiko==2.4.1,Paste==2.0.3,PasteDeploy==1.5.2,pbr==4.2.0,pep8==1.5.7,prettytable==0.7.2,psycopg2==2.7.5,pyasn1==0.4.3,pycadf==2.8.0,pycparser==2.18,pyflakes==0.8.1,Pygments==2.2.0,pyinotify==0.9.6,pylint==1.4.5,PyMySQL==0.9.2,PyNaCl==1.2.1,pyOpenSSL==18.0.0,pyparsing==2.2.0,pyperclip==1.6.4,python-barbicanclient==4.7.0,python-cinderclient==4.0.1,python-dateutil==2.7.3,python-editor==1.0.3,python-glanceclient==2.12.1,python-heatclient==1.16.1,python-keystoneclient==3.17.0,python-manilaclient==1.24.1,python-mimeparse==1.6.0,python-neutronclient==6.9.0,python-novaclient==11.0.0,python-openstackclient==3.16.0,python-saharaclient==2.0.0,python-subunit==1.3.0,python-swiftclient==3.6.0,pytz==2018.5,PyYAML==3.13,reno==2.9.2,repoze.lru==0.7,requests==2.19.1,requestsexceptions==1.4.0,restructuredtext-lint==1.1.3,rfc3986==1.1.0,Routes==2.4.1,-e git+https://github.com/openstack/sahara.git@efb05b3624044f307168d0b5da888132f51aebb7#egg=sahara,simplejson==3.16.0,six==1.11.0,smmap2==2.0.4,snowballstemmer==1.2.1,Sphinx==1.7.6,sphinxcontrib-httpdomain==1.7.0,sphinxcontrib-websupport==1.1.0,SQLAlchemy==1.2.10,sqlalchemy-migrate==0.11.0,sqlparse==0.2.4,statsd==3.2.2,stestr==2.1.0,stevedore==1.29.0,subprocess32==3.5.2,Tempita==0.5.2,tenacity==4.12.0,testresources==2.0.1,testscenarios==0.5.0,testtools==2.3.0,tooz==1.62.0,traceback2==1.4.0,typing==3.6.4,unicodecsv==0.14.1,unittest2==1.1.0,urllib3==1.23,vine==1.1.4,voluptuous==0.11.1,warlock==1.3.0,wcwidth==0.1.7,WebOb==1.8.2,Werkzeug==0.14.1,wrapt==1.10.11
py27 runtests: PYTHONHASHSEED='839100177'
py27 runtests: commands[0] | ostestr
=========================
Failures during discovery
=========================
--- import errors ---
Failed to import test module: sahara.tests.unit.service.edp.spark.test_shell
Traceback (most recent call last):
File "/home/tenobreg/coding/upstream/sahara/sahara/.tox/py27/lib/python2.7/site-packages/unittest2/loader.py", line 456, in _find_test_path
module = self._get_module_from_name(name)
File "/home/tenobreg/coding/upstream/sahara/sahara/.tox/py27/lib/python2.7/site-packages/unittest2/loader.py", line 395, in _get_module_from_name
__import__(name)
File "sahara/tests/unit/service/edp/spark/test_shell.py", line 18, in <module>
from sahara.plugins.spark import shell_engine
ImportError: No module named spark
Failed to import test module: sahara.tests.unit.service.edp.spark.test_spark
Traceback (most recent call last):
File "/home/tenobreg/coding/upstream/sahara/sahara/.tox/py27/lib/python2.7/site-packages/unittest2/loader.py", line 456, in _find_test_path
module = self._get_module_from_name(name)
File "/home/tenobreg/coding/upstream/sahara/sahara/.tox/py27/lib/python2.7/site-packages/unittest2/loader.py", line 395, in _get_module_from_name
__import__(name)
File "sahara/tests/unit/service/edp/spark/test_spark.py", line 17, in <module>
from sahara.plugins.spark import edp_engine as spark_edp
ImportError: No module named spark
================================================================================
The above traceback was encountered during test discovery which imports all the found test modules in the specified test_path.
ERROR: InvocationError: '/home/tenobreg/coding/upstream/sahara/sahara/.tox/py27/bin/ostestr'
___________________________________ summary ____________________________________
ERROR: py27: commands failed

162
lower-constraints.txt Normal file
View File

@ -0,0 +1,162 @@
alabaster==0.7.10
alembic==0.8.10
amqp==2.2.2
appdirs==1.4.3
asn1crypto==0.24.0
astroid==1.3.8
Babel==2.3.4
bandit==1.1.0
bashate==0.5.1
bcrypt==3.1.4
botocore==1.5.1
cachetools==2.0.1
castellan==0.16.0
certifi==2018.1.18
cffi==1.11.5
chardet==3.0.4
click==6.7
cliff==2.11.0
cmd2==0.8.1
contextlib2==0.5.5
coverage==4.0
cryptography==2.1.4
debtcollector==1.19.0
decorator==4.2.1
deprecation==2.0
doc8==0.6.0
docutils==0.14
dogpile.cache==0.6.5
dulwich==0.19.0
enum-compat==0.0.2
eventlet==0.18.2
extras==1.0.0
fasteners==0.14.1
fixtures==3.0.0
flake8==2.6.2
Flask==1.0.2
future==0.16.0
futurist==1.6.0
gitdb2==2.0.3
GitPython==2.1.8
greenlet==0.4.13
hacking==1.1.0
idna==2.6
imagesize==1.0.0
iso8601==0.1.11
itsdangerous==0.24
Jinja2==2.10
jmespath==0.9.3
jsonpatch==1.21
jsonpointer==2.0
jsonschema==2.6.0
keystoneauth1==3.4.0
keystonemiddleware==4.17.0
kombu==4.1.0
linecache2==1.0.0
logilab-common==1.4.1
Mako==1.0.7
MarkupSafe==1.0
mccabe==0.2.1
mock==2.0.0
monotonic==1.4
mox3==0.25.0
msgpack==0.5.6
munch==2.2.0
netaddr==0.7.19
netifaces==0.10.6
openstackdocstheme==1.18.1
openstacksdk==0.12.0
os-api-ref==1.4.0
os-client-config==1.29.0
os-service-types==1.2.0
osc-lib==1.10.0
oslo.cache==1.29.0
oslo.concurrency==3.26.0
oslo.config==5.2.0
oslo.context==2.19.2
oslo.db==4.27.0
oslo.i18n==3.15.3
oslo.log==3.36.0
oslo.messaging==5.29.0
oslo.middleware==3.31.0
oslo.policy==1.30.0
oslo.rootwrap==5.8.0
oslo.serialization==2.18.0
oslo.service==1.24.0
oslo.upgradecheck==0.1.0
oslo.utils==3.33.0
oslotest==3.2.0
packaging==17.1
paramiko==2.0.0
Paste==2.0.3
PasteDeploy==1.5.2
pbr==2.0.0
pika-pool==0.1.3
pika==0.10.0
prettytable==0.7.2
psycopg2==2.6.2
pyasn1==0.4.2
pycadf==2.7.0
pycparser==2.18
pycodestyle==2.4.0
pyflakes==0.8.1
Pygments==2.2.0
pyinotify==0.9.6
pylint==1.4.5
PyMySQL==0.7.6
PyNaCl==1.2.1
pyOpenSSL==17.5.0
pyparsing==2.2.0
pyperclip==1.6.0
python-barbicanclient==4.6.0
python-cinderclient==3.3.0
python-dateutil==2.7.0
python-editor==1.0.3
python-glanceclient==2.8.0
python-heatclient==1.10.0
python-keystoneclient==3.8.0
python-manilaclient==1.16.0
python-mimeparse==1.6.0
python-neutronclient==6.7.0
python-novaclient==9.1.0
python-openstackclient==3.14.0
python-saharaclient==1.4.0
python-subunit==1.2.0
python-swiftclient==3.2.0
pytz==2018.3
PyYAML==3.12
reno==2.5.0
repoze.lru==0.7
requests==2.14.2
requestsexceptions==1.4.0
restructuredtext-lint==1.1.3
rfc3986==1.1.0
Routes==2.4.1
simplejson==3.13.2
six==1.10.0
smmap2==2.0.3
snowballstemmer==1.2.1
Sphinx==1.6.2
sphinxcontrib-httpdomain==1.3.0
sphinxcontrib-websupport==1.0.1
sqlalchemy-migrate==0.11.0
SQLAlchemy==1.0.10
sqlparse==0.2.4
statsd==3.2.2
stestr==1.0.0
stevedore==1.20.0
Tempita==0.5.2
tenacity==4.9.0
testresources==2.0.0
testscenarios==0.4
testtools==2.2.0
tooz==1.58.0
traceback2==1.4.0
unittest2==1.1.0
urllib3==1.22
vine==1.1.4
voluptuous==0.11.1
warlock==1.3.0
WebOb==1.7.1
Werkzeug==0.14.1
wrapt==1.10.11

View File

@ -39,6 +39,7 @@ python-swiftclient>=3.2.0 # Apache-2.0
python-neutronclient>=6.7.0 # Apache-2.0
python-heatclient>=1.10.0 # Apache-2.0
python-glanceclient>=2.8.0 # Apache-2.0
sahara
six>=1.10.0 # MIT
stevedore>=1.20.0 # Apache-2.0
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT

View File

@ -13,14 +13,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.service.edp.oozie.workflow_creator import workflow_factory
from sahara.utils import xmlutils
from sahara.plugins import edp
from sahara.plugins import utils
def get_possible_hive_config_from(file_name):
'''Return the possible configs, args, params for a Hive job.'''
config = {
'configs': xmlutils.load_hadoop_xml_defaults(file_name),
'configs': utils.load_hadoop_xml_defaults(file_name,
'sahara_plugin_vanilla'),
'params': {}
}
return config
@ -31,14 +32,15 @@ def get_possible_mapreduce_config_from(file_name):
config = {
'configs': get_possible_pig_config_from(file_name).get('configs')
}
config['configs'] += workflow_factory.get_possible_mapreduce_configs()
config['configs'] += edp.get_possible_mapreduce_configs()
return config
def get_possible_pig_config_from(file_name):
'''Return the possible configs, args, params for a Pig job.'''
config = {
'configs': xmlutils.load_hadoop_xml_defaults(file_name),
'configs': utils.load_hadoop_xml_defaults(file_name,
'sahara_plugin_vanilla'),
'args': [],
'params': {}
}

View File

@ -13,13 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.plugins import edp
from sahara.plugins import exceptions as ex
from sahara.plugins import utils as u
from sahara.plugins.vanilla import utils as vu
from sahara.service.edp.oozie import engine as edp_engine
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
class EdpOozieEngine(edp_engine.OozieJobEngine):
class EdpOozieEngine(edp.PluginsOozieJobEngine):
def get_hdfs_user(self):
return 'hadoop'

View File

@ -18,21 +18,16 @@ from oslo_config import cfg
from oslo_log import log as logging
import six
from sahara import context
from sahara.i18n import _
from sahara.plugins import castellan_utils as key_manager
from sahara.plugins import context
from sahara.plugins import swift_helper as swift
from sahara.plugins import topology_helper as th
from sahara.plugins import utils
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.plugins.vanilla.hadoop2 import oozie_helper as o_helper
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara.plugins.vanilla import utils as vu
from sahara.service.castellan import utils as key_manager
from sahara.swift import swift_helper as swift
from sahara.topology import topology_helper as th
from sahara.utils import cluster_progress_ops as cpo
from sahara.utils import configs as s_cfg
from sahara.utils import files as f
from sahara.utils import proxy
from sahara.utils import xmlutils as x
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import oozie_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
@ -61,8 +56,8 @@ def configure_cluster(pctx, cluster):
LOG.debug("Configuring cluster")
if (CONF.use_identity_api_v3 and CONF.use_domain_for_proxy_users and
vu.get_hiveserver(cluster) and
c_helper.is_swift_enabled(pctx, cluster)):
cluster = proxy.create_proxy_user_for_cluster(cluster)
config_helper.is_swift_enabled(pctx, cluster)):
cluster = utils.create_proxy_user_for_cluster(cluster)
instances = utils.get_instances(cluster)
configure_instances(pctx, instances)
@ -74,7 +69,7 @@ def configure_cluster(pctx, cluster):
def configure_zookeeper(cluster, instances=None):
zk_servers = vu.get_zk_servers(cluster)
if zk_servers:
zk_conf = c_helper.generate_zk_basic_config(cluster)
zk_conf = config_helper.generate_zk_basic_config(cluster)
zk_conf += _form_zk_servers_to_quorum(cluster, instances)
_push_zk_configs_to_nodes(cluster, zk_conf, instances)
@ -126,7 +121,7 @@ def _push_spark_configs_to_node(cluster, extra):
def _push_spark_configs_to_existing_node(spark_master, cluster, extra):
sp_home = c_helper.get_spark_home(cluster)
sp_home = config_helper.get_spark_home(cluster)
files = {
os.path.join(sp_home,
'conf/spark-env.sh'): extra['sp_master'],
@ -160,13 +155,13 @@ def _extract_spark_configs_to_extra(cluster):
config_master = ''
if sp_master is not None:
config_master = c_helper.generate_spark_env_configs(cluster)
config_master = config_helper.generate_spark_env_configs(cluster)
# Any node that might be used to run spark-submit will need
# these libs for swift integration
config_defaults = c_helper.generate_spark_executor_classpath(cluster)
config_defaults = config_helper.generate_spark_executor_classpath(cluster)
extra['job_cleanup'] = c_helper.generate_job_cleanup_config(cluster)
extra['job_cleanup'] = config_helper.generate_job_cleanup_config(cluster)
extra['sp_master'] = config_master
extra['sp_defaults'] = config_defaults
@ -177,7 +172,7 @@ def configure_instances(pctx, instances):
if len(instances) == 0:
return
cpo.add_provisioning_step(
utils.add_provisioning_step(
instances[0].cluster_id, _("Configure instances"), len(instances))
for instance in instances:
@ -185,7 +180,7 @@ def configure_instances(pctx, instances):
_configure_instance(pctx, instance)
@cpo.event_wrapper(True)
@utils.event_wrapper(True)
def _configure_instance(pctx, instance):
_provisioning_configs(pctx, instance)
_post_configuration(pctx, instance)
@ -201,8 +196,8 @@ def _generate_configs(pctx, instance):
hadoop_xml_confs = _get_hadoop_configs(pctx, instance)
user_xml_confs, user_env_confs = _get_user_configs(
pctx, instance.node_group)
xml_confs = s_cfg.merge_configs(user_xml_confs, hadoop_xml_confs)
env_confs = s_cfg.merge_configs(pctx['env_confs'], user_env_confs)
xml_confs = utils.merge_configs(user_xml_confs, hadoop_xml_confs)
env_confs = utils.merge_configs(pctx['env_confs'], user_env_confs)
return xml_confs, env_confs
@ -249,20 +244,21 @@ def _get_hadoop_configs(pctx, instance):
}
confs['Hadoop'].update(hadoop_cfg)
oozie_cfg = o_helper.get_oozie_required_xml_configs(HADOOP_CONF_DIR)
if c_helper.is_mysql_enabled(pctx, cluster):
oozie_cfg.update(o_helper.get_oozie_mysql_configs(cluster))
oozie_cfg = oozie_helper.get_oozie_required_xml_configs(
HADOOP_CONF_DIR)
if config_helper.is_mysql_enabled(pctx, cluster):
oozie_cfg.update(oozie_helper.get_oozie_mysql_configs(cluster))
confs['JobFlow'] = oozie_cfg
if c_helper.is_swift_enabled(pctx, cluster):
if config_helper.is_swift_enabled(pctx, cluster):
swift_configs = {}
for config in swift.get_swift_configs():
swift_configs[config['name']] = config['value']
confs['Hadoop'].update(swift_configs)
if c_helper.is_data_locality_enabled(pctx, cluster):
if config_helper.is_data_locality_enabled(pctx, cluster):
confs['Hadoop'].update(th.TOPOLOGY_CONFIG)
confs['Hadoop'].update({"topology.script.file.name":
HADOOP_CONF_DIR + "/topology.sh"})
@ -277,7 +273,7 @@ def _get_hadoop_configs(pctx, instance):
'jdbc:derby:;databaseName=/opt/hive/metastore_db;create=true'
}
if c_helper.is_mysql_enabled(pctx, cluster):
if config_helper.is_mysql_enabled(pctx, cluster):
hive_cfg.update({
'javax.jdo.option.ConnectionURL':
'jdbc:mysql://%s/metastore' % hive_hostname,
@ -291,7 +287,7 @@ def _get_hadoop_configs(pctx, instance):
})
proxy_configs = cluster.cluster_configs.get('proxy_configs')
if proxy_configs and c_helper.is_swift_enabled(pctx, cluster):
if proxy_configs and config_helper.is_swift_enabled(pctx, cluster):
hive_cfg.update({
swift.HADOOP_SWIFT_USERNAME: proxy_configs['proxy_username'],
swift.HADOOP_SWIFT_PASSWORD: key_manager.get_secret(
@ -311,8 +307,8 @@ def _get_user_configs(pctx, node_group):
cl_xml_confs, cl_env_confs = _separate_configs(
node_group.cluster.cluster_configs, pctx['env_confs'])
xml_confs = s_cfg.merge_configs(cl_xml_confs, ng_xml_confs)
env_confs = s_cfg.merge_configs(cl_env_confs, ng_env_confs)
xml_confs = utils.merge_configs(cl_xml_confs, ng_xml_confs)
env_confs = utils.merge_configs(cl_env_confs, ng_env_confs)
return xml_confs, env_confs
@ -336,7 +332,7 @@ def _separate_configs(configs, all_env_configs):
def _generate_xml(configs):
xml_confs = {}
for service, confs in six.iteritems(configs):
xml_confs[service] = x.create_hadoop_xml(confs)
xml_confs[service] = utils.create_hadoop_xml(confs)
return xml_confs
@ -417,8 +413,9 @@ def _post_configuration(pctx, instance):
'hadoop_secure_dn_log_dir': dirs['hadoop_secure_dn_log_dir'],
'yarn_log_dir': dirs['yarn_log_dir']
}
post_conf_script = f.get_file_text(
'plugins/vanilla/hadoop2/resources/post_conf.template')
post_conf_script = utils.get_file_text(
'plugins/vanilla/hadoop2/resources/post_conf.template',
'sahara_plugin_vanilla')
post_conf_script = post_conf_script.format(**args)
with instance.remote() as r:
@ -426,12 +423,11 @@ def _post_configuration(pctx, instance):
r.execute_command('chmod +x /tmp/post_conf.sh')
r.execute_command('sudo /tmp/post_conf.sh')
if c_helper.is_data_locality_enabled(pctx,
instance.cluster):
if config_helper.is_data_locality_enabled(pctx, instance.cluster):
t_script = HADOOP_CONF_DIR + '/topology.sh'
r.write_file_to(t_script, f.get_file_text(
'plugins/vanilla/hadoop2/resources/topology.sh'),
run_as_root=True)
r.write_file_to(t_script, utils.get_file_text(
'plugins/vanilla/hadoop2/resources/topology.sh',
'sahara_plugin_vanilla'), run_as_root=True)
r.execute_command('chmod +x ' + t_script, run_as_root=True)
@ -456,10 +452,10 @@ def _make_hadoop_paths(paths, hadoop_dir):
return [path + hadoop_dir for path in paths]
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=_("Configure topology data"), param=('cluster', 1))
def configure_topology_data(pctx, cluster):
if c_helper.is_data_locality_enabled(pctx, cluster):
if config_helper.is_data_locality_enabled(pctx, cluster):
LOG.warning("Node group awareness is not implemented in YARN yet "
"so enable_hypervisor_awareness set to False explicitly")
tpl_map = th.generate_topology_map(cluster, is_node_awareness=False)

View File

@ -1,4 +1,4 @@
# Copyright (c) 2014 Mirantis Inc.
# Copyright (c) 2014 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -16,12 +16,10 @@
from oslo_config import cfg
import six
from sahara import exceptions as ex
from sahara.i18n import _
from sahara.plugins import exceptions as ex
from sahara.plugins import provisioning as p
from sahara.plugins import utils
from sahara.utils import files as f
from sahara.utils import types
from sahara_plugin_vanilla.i18n import _
CONF = cfg.CONF
CONF.import_opt("enable_data_locality", "sahara.topology.topology_helper")
@ -165,7 +163,7 @@ def init_xml_configs(xml_confs):
if cfg.default_value in ["true", "false"]:
cfg.config_type = "bool"
cfg.default_value = (cfg.default_value == 'true')
elif types.is_int(cfg.default_value):
elif utils.is_int(cfg.default_value):
cfg.config_type = "int"
cfg.default_value = int(cfg.default_value)
if config['name'] in CLUSTER_WIDE_CONFS:
@ -245,7 +243,7 @@ def get_config_value(pctx, service, name, cluster=None):
if c.applicable_target == service and c.name == name:
return c.default_value
raise ex.NotFoundException(
raise ex.PluginNotFoundException(
{"name": name, "service": service},
_("Unable to get parameter '%(name)s' from service %(service)s"))
@ -303,10 +301,12 @@ def generate_job_cleanup_config(cluster):
(args['minimum_cleanup_megabytes'] > 0
and args['minimum_cleanup_seconds'] > 0))}
if job_conf['valid']:
job_conf['cron'] = f.get_file_text(
'plugins/vanilla/hadoop2/resources/spark-cleanup.cron'),
job_cleanup_script = f.get_file_text(
'plugins/vanilla/hadoop2/resources/tmp-cleanup.sh.template')
job_conf['cron'] = utils.get_file_text(
'plugins/vanilla/hadoop2/resources/spark-cleanup.cron',
'sahara_plugin_vanilla'),
job_cleanup_script = utils.get_file_text(
'plugins/vanilla/hadoop2/resources/tmp-cleanup.sh.template',
'sahara_plugin_vanilla')
job_conf['script'] = job_cleanup_script.format(**args)
return job_conf
@ -324,6 +324,7 @@ def generate_zk_basic_config(cluster):
'synclimit': utils.get_config_value_or_default(
"ZooKeeper", "syncLimit", cluster)
}
zoo_cfg = f.get_file_text(
'plugins/vanilla/hadoop2/resources/zoo_sample.cfg')
zoo_cfg = utils.get_file_text(
'plugins/vanilla/hadoop2/resources/zoo_sample.cfg',
'sahara_plugin_vanilla')
return zoo_cfg.format(**args)

View File

@ -13,14 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.plugins.vanilla import edp_engine
from sahara.service.edp import hdfs_helper
from sahara.plugins import edp
from sahara_plugin_vanilla.plugins.vanilla import edp_engine
class EdpOozieEngine(edp_engine.EdpOozieEngine):
def create_hdfs_dir(self, remote, dir_name):
hdfs_helper.create_dir_hadoop2(remote, dir_name, self.get_hdfs_user())
edp.create_dir_hadoop2(remote, dir_name, self.get_hdfs_user())
def get_resource_manager_uri(self, cluster):
return cluster['info']['YARN']['ResourceManager']

View File

@ -18,12 +18,10 @@ from castellan import key_manager
from oslo_log import log as logging
from sahara import conductor
from sahara import context
from sahara.utils import cluster as utils
from sahara.utils import crypto
from sahara.plugins import conductor
from sahara.plugins import context
from sahara.plugins import utils
cond = conductor.API
LOG = logging.getLogger(__name__)
@ -72,15 +70,15 @@ def provision_keypairs(cluster, instances=None):
# cluster created before mitaka, skipping provisioning
return
if not keypair:
private, public = crypto.generate_key_pair()
private, public = utils.generate_key_pair()
keypair = {'public': public, 'private': private}
extra['vanilla_keypair'] = keypair
extra['vanilla_keypair']['private'] = _store_secret(
keypair['private'])
cond.cluster_update(context.ctx(), cluster, {'extra': extra})
conductor.cluster_update(context.ctx(), cluster, {'extra': extra})
else:
keypair['private'] = _get_secret(keypair['private'])
with context.ThreadGroup() as tg:
with context.PluginsThreadGroup() as tg:
for instance in instances:
tg.spawn(
'provision-key-%s' % instance.instance_name,

View File

@ -12,7 +12,7 @@
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
def get_oozie_required_xml_configs(hadoop_conf_dir):

View File

@ -17,34 +17,31 @@ import os
from oslo_log import log as logging
from sahara import context
from sahara.i18n import _
from sahara.plugins import utils as pu
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.plugins.vanilla.hadoop2 import oozie_helper
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara.plugins.vanilla import utils as vu
from sahara.utils import cluster_progress_ops as cpo
from sahara.utils import edp
from sahara.utils import files
from sahara.utils import poll_utils
from sahara.plugins import context
from sahara.plugins import edp
from sahara.plugins import utils
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import oozie_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
LOG = logging.getLogger(__name__)
def start_dn_nm_processes(instances):
filternames = ['datanode', 'nodemanager']
instances = pu.instances_with_services(instances, filternames)
instances = utils.instances_with_services(instances, filternames)
if len(instances) == 0:
return
cpo.add_provisioning_step(
utils.add_provisioning_step(
instances[0].cluster_id,
pu.start_process_event_message("DataNodes, NodeManagers"),
utils.start_process_event_message("DataNodes, NodeManagers"),
len(instances))
with context.ThreadGroup() as tg:
with context.PluginsThreadGroup() as tg:
for instance in instances:
with context.set_current_instance_id(instance.instance_id):
processes = set(instance.node_group.node_processes)
@ -53,7 +50,7 @@ def start_dn_nm_processes(instances):
_start_processes, instance, list(processes))
@cpo.event_wrapper(True)
@utils.event_wrapper(True)
def _start_processes(instance, processes):
with instance.remote() as r:
if 'datanode' in processes:
@ -74,21 +71,23 @@ def start_yarn_process(instance, process):
'sudo su - -c "yarn-daemon.sh start %s" hadoop' % process)
@cpo.event_wrapper(True, step=pu.start_process_event_message("HistoryServer"))
@utils.event_wrapper(
True, step=utils.start_process_event_message("HistoryServer"))
def start_historyserver(instance):
instance.remote().execute_command(
'sudo su - -c "mr-jobhistory-daemon.sh start historyserver" hadoop')
@cpo.event_wrapper(True, step=pu.start_process_event_message("Oozie"))
@utils.event_wrapper(True, step=utils.start_process_event_message("Oozie"))
def start_oozie_process(pctx, instance):
with context.set_current_instance_id(instance.instance_id):
with instance.remote() as r:
if c_helper.is_mysql_enabled(pctx, instance.cluster):
if config_helper.is_mysql_enabled(pctx, instance.cluster):
_start_mysql(r)
LOG.debug("Creating Oozie DB Schema")
sql_script = files.get_file_text(
'plugins/vanilla/hadoop2/resources/create_oozie_db.sql')
sql_script = utils.get_file_text(
'plugins/vanilla/hadoop2/resources/create_oozie_db.sql',
'sahara_plugin_vanilla')
password = oozie_helper.get_oozie_mysql_configs(
instance.cluster)[
@ -105,10 +104,10 @@ def start_oozie_process(pctx, instance):
_start_oozie(r)
@cpo.event_wrapper(
True, step=pu.start_process_event_message("Spark History Server"))
@utils.event_wrapper(
True, step=utils.start_process_event_message("Spark History Server"))
def start_spark_history_server(master):
sp_home = c_helper.get_spark_home(master.cluster)
sp_home = config_helper.get_spark_home(master.cluster)
with context.set_current_instance_id(master.instance_id):
with master.remote() as r:
r.execute_command('sudo su - -c "bash %s" hadoop' % os.path.join(
@ -116,12 +115,12 @@ def start_spark_history_server(master):
def start_zk_server(instances):
cpo.add_provisioning_step(
utils.add_provisioning_step(
instances[0].cluster_id,
pu.start_process_event_message("ZooKeeper"),
utils.start_process_event_message("ZooKeeper"),
len(instances))
with context.ThreadGroup() as tg:
with context.PluginsThreadGroup() as tg:
for instance in instances:
with context.set_current_instance_id(instance.instance_id):
tg.spawn('ZK-start-processes-%s' % instance.instance_name,
@ -135,19 +134,19 @@ def refresh_zk_servers(cluster, to_delete_instances=None):
if instance in instances:
instances.remove(instance)
cpo.add_provisioning_step(
utils.add_provisioning_step(
cluster.id,
pu.start_process_event_message("ZooKeeper"),
utils.start_process_event_message("ZooKeeper"),
len(instances))
with context.ThreadGroup() as tg:
with context.PluginsThreadGroup() as tg:
for instance in instances:
with context.set_current_instance_id(instance.instance_id):
tg.spawn('ZK-restart-processes-%s' % instance.instance_name,
_start_zk_processes, instance, 'restart')
@cpo.event_wrapper(True)
@utils.event_wrapper(True)
def _start_zk_processes(instance, operation):
with instance.remote() as r:
r.execute_command(
@ -160,15 +159,16 @@ def format_namenode(instance):
'sudo su - -c "hdfs namenode -format" hadoop')
@cpo.event_wrapper(
True, step=pu.start_process_event_message("Oozie"), param=('cluster', 0))
@utils.event_wrapper(
True,
step=utils.start_process_event_message("Oozie"), param=('cluster', 0))
def refresh_hadoop_nodes(cluster):
nn = vu.get_namenode(cluster)
nn.remote().execute_command(
'sudo su - -c "hdfs dfsadmin -refreshNodes" hadoop')
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=_("Refresh %s nodes") % "YARN", param=('cluster', 0))
def refresh_yarn_nodes(cluster):
rm = vu.get_resourcemanager(cluster)
@ -210,7 +210,7 @@ def _start_oozie(remote):
'sudo su - -c "/opt/oozie/bin/oozied.sh start" hadoop')
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=_("Await %s start up") % "DataNodes", param=('cluster', 0))
def await_datanodes(cluster):
datanodes_count = len(vu.get_datanodes(cluster))
@ -219,9 +219,9 @@ def await_datanodes(cluster):
l_message = _("Waiting on %s datanodes to start up") % datanodes_count
with vu.get_namenode(cluster).remote() as r:
poll_utils.plugin_option_poll(
utils.plugin_option_poll(
cluster, _check_datanodes_count,
c_helper.DATANODES_STARTUP_TIMEOUT, l_message, 1, {
config_helper.DATANODES_STARTUP_TIMEOUT, l_message, 1, {
'remote': r, 'count': datanodes_count})
@ -265,7 +265,8 @@ def _hive_metastore_start(remote):
" --service metastore > /dev/null &' hadoop")
@cpo.event_wrapper(True, step=pu.start_process_event_message("HiveServer"))
@utils.event_wrapper(
True, step=utils.start_process_event_message("HiveServer"))
def start_hiveserver_process(pctx, instance):
with context.set_current_instance_id(instance.instance_id):
with instance.remote() as r:
@ -273,16 +274,15 @@ def start_hiveserver_process(pctx, instance):
_hive_copy_shared_conf(
r, edp.get_hive_shared_conf_path('hadoop'))
if c_helper.is_mysql_enabled(pctx, instance.cluster):
if config_helper.is_mysql_enabled(pctx, instance.cluster):
oozie = vu.get_oozie(instance.node_group.cluster)
if not oozie or instance.hostname() != oozie.hostname():
_start_mysql(r)
version = instance.cluster.hadoop_version
sql_script = files.get_file_text(
sql_script = utils.get_file_text(
'plugins/vanilla/v{}/resources/create_hive_db.sql'.format(
version.replace('.', '_'))
)
version.replace('.', '_')), 'sahara_plugin_vanilla')
sql_script = sql_script.replace(
'{{password}}', u.get_hive_password(instance.cluster))

View File

@ -13,17 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.i18n import _
from sahara.plugins import utils as u
from sahara.plugins.vanilla.hadoop2 import config
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.plugins.vanilla.hadoop2 import run_scripts as run
from sahara.plugins.vanilla.hadoop2 import utils as pu
from sahara.plugins.vanilla import utils as vu
from sahara.swift import swift_helper
from sahara.utils import cluster_progress_ops as cpo
from sahara.utils import poll_utils
from sahara.plugins import swift_helper
from sahara.plugins import utils
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import run_scripts as run
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as pu
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
HADOOP_CONF_DIR = config.HADOOP_CONF_DIR
@ -48,19 +45,20 @@ def _get_instances_with_service(instances, service):
if service in instance.node_group.node_processes]
@cpo.event_wrapper(True, step=_("Update include files"), param=('cluster', 0))
@utils.event_wrapper(
True, step=_("Update include files"), param=('cluster', 0))
def _update_include_files(cluster, dec_instances=None):
dec_instances = dec_instances or []
dec_instances_ids = [instance.id for instance in dec_instances]
instances = u.get_instances(cluster)
instances = utils.get_instances(cluster)
inst_filter = lambda inst: inst.id not in dec_instances_ids
datanodes = filter(inst_filter, vu.get_datanodes(cluster))
nodemanagers = filter(inst_filter, vu.get_nodemanagers(cluster))
dn_hosts = u.generate_fqdn_host_names(datanodes)
nm_hosts = u.generate_fqdn_host_names(nodemanagers)
dn_hosts = utils.generate_fqdn_host_names(datanodes)
nm_hosts = utils.generate_fqdn_host_names(nodemanagers)
for instance in instances:
with instance.remote() as r:
r.execute_command(
@ -97,9 +95,9 @@ def decommission_nodes(pctx, cluster, instances):
def _update_exclude_files(cluster, instances):
datanodes = _get_instances_with_service(instances, 'datanode')
nodemanagers = _get_instances_with_service(instances, 'nodemanager')
dn_hosts = u.generate_fqdn_host_names(datanodes)
nm_hosts = u.generate_fqdn_host_names(nodemanagers)
for instance in u.get_instances(cluster):
dn_hosts = utils.generate_fqdn_host_names(datanodes)
nm_hosts = utils.generate_fqdn_host_names(nodemanagers)
for instance in utils.get_instances(cluster):
with instance.remote() as r:
r.execute_command(
'sudo su - -c "echo \'%s\' > %s/dn-exclude" hadoop' % (
@ -110,7 +108,7 @@ def _update_exclude_files(cluster, instances):
def _clear_exclude_files(cluster):
for instance in u.get_instances(cluster):
for instance in utils.get_instances(cluster):
with instance.remote() as r:
r.execute_command(
'sudo su - -c "echo > %s/dn-exclude" hadoop' % HADOOP_CONF_DIR)
@ -127,21 +125,21 @@ def is_decommissioned(cluster, check_func, instances):
def _check_decommission(cluster, instances, check_func, option):
poll_utils.plugin_option_poll(
utils.plugin_option_poll(
cluster, is_decommissioned, option, _("Wait for decommissioning"),
5, {'cluster': cluster, 'check_func': check_func,
'instances': instances})
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=_("Decommission %s") % "NodeManagers", param=('cluster', 0))
def _check_nodemanagers_decommission(cluster, instances):
_check_decommission(cluster, instances, pu.get_nodemanagers_status,
c_helper.NODEMANAGERS_DECOMMISSIONING_TIMEOUT)
config_helper.NODEMANAGERS_DECOMMISSIONING_TIMEOUT)
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=_("Decommission %s") % "DataNodes", param=('cluster', 0))
def _check_datanodes_decommission(cluster, instances):
_check_decommission(cluster, instances, pu.get_datanodes_status,
c_helper.DATANODES_DECOMMISSIONING_TIMEOUT)
config_helper.DATANODES_DECOMMISSIONING_TIMEOUT)

View File

@ -14,9 +14,8 @@
# limitations under the License.
from sahara.plugins import utils
from sahara.plugins.vanilla.hadoop2 import run_scripts as run
from sahara.plugins.vanilla import utils as vu
from sahara.utils import cluster_progress_ops as cpo
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import run_scripts as run
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
def start_namenode(cluster):
@ -24,7 +23,7 @@ def start_namenode(cluster):
_start_namenode(nn)
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=utils.start_process_event_message('NameNode'))
def _start_namenode(nn):
run.format_namenode(nn)
@ -37,7 +36,7 @@ def start_secondarynamenode(cluster):
_start_secondarynamenode(snn)
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=utils.start_process_event_message("SecondaryNameNodes"))
def _start_secondarynamenode(snn):
run.start_hadoop_process(snn, 'secondarynamenode')
@ -49,7 +48,7 @@ def start_resourcemanager(cluster):
_start_resourcemanager(rm)
@cpo.event_wrapper(
@utils.event_wrapper(
True, step=utils.start_process_event_message('ResourceManager'))
def _start_resourcemanager(snn):
run.start_yarn_process(snn, 'resourcemanager')

View File

@ -17,12 +17,11 @@ import re
from oslo_log import log as logging
from sahara import conductor as cond
from sahara import context
from sahara.plugins.vanilla import utils as u
from sahara.service.castellan import utils as castellan
from sahara.plugins import castellan_utils as castellan
from sahara.plugins import conductor
from sahara.plugins import context
from sahara_plugin_vanilla.plugins.vanilla import utils as u
conductor = cond.API
LOG = logging.getLogger(__name__)

View File

@ -13,12 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.i18n import _
from sahara.plugins import exceptions as ex
from sahara.plugins import utils as u
from sahara.plugins.vanilla.hadoop2 import config_helper as cu
from sahara.plugins.vanilla import utils as vu
from sahara.utils import general as gu
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper as cu
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
def validate_cluster_creating(pctx, cluster):
@ -95,7 +94,7 @@ def validate_additional_ng_scaling(cluster, additional):
scalable_processes = _get_scalable_processes()
for ng_id in additional:
ng = gu.get_by_id(cluster.node_groups, ng_id)
ng = u.get_by_id(cluster.node_groups, ng_id)
if not set(ng.node_processes).issubset(scalable_processes):
msg = _("Vanilla plugin cannot scale nodegroup with processes: %s")
raise ex.NodeGroupCannotBeScaled(ng.name,
@ -140,7 +139,7 @@ def validate_zookeeper_node_count(zk_ng, existing, additional):
zk_amount += ng.count
for ng_id in additional:
ng = gu.get_by_id(zk_ng, ng_id)
ng = u.get_by_id(zk_ng, ng_id)
if "zookeeper" in ng.node_processes:
zk_amount += ng.count

View File

@ -15,9 +15,9 @@
import copy
from sahara.i18n import _
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla import versionfactory as vhf
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla import versionfactory as vhf
class VanillaProvider(p.ProvisioningPluginBase):

View File

@ -16,8 +16,8 @@
from oslo_utils import uuidutils
from sahara.plugins import castellan_utils as castellan
from sahara.plugins import utils as u
from sahara.service.castellan import utils as castellan
def get_namenode(cluster):

View File

@ -19,34 +19,40 @@ from oslo_config import cfg
import six
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.utils import xmlutils as x
from sahara.plugins import utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
CONF = cfg.CONF
CONF.import_opt("enable_data_locality", "sahara.topology.topology_helper")
CORE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/core-default.xml')
CORE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/core-default.xml',
'sahara_plugin_vanilla')
HDFS_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/hdfs-default.xml')
HDFS_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/hdfs-default.xml',
'sahara_plugin_vanilla')
MAPRED_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/mapred-default.xml')
MAPRED_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/mapred-default.xml',
'sahara_plugin_vanilla')
YARN_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/yarn-default.xml')
YARN_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/yarn-default.xml',
'sahara_plugin_vanilla')
OOZIE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/oozie-default.xml')
OOZIE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/oozie-default.xml',
'sahara_plugin_vanilla')
HIVE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/hive-default.xml')
HIVE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_1/resources/hive-default.xml',
'sahara_plugin_vanilla')
_default_executor_classpath = ":".join(
['/opt/hadoop/share/hadoop/tools/lib/hadoop-openstack-2.7.1.jar'])
SPARK_CONFS = copy.deepcopy(c_helper.SPARK_CONFS)
SPARK_CONFS = copy.deepcopy(config_helper.SPARK_CONFS)
SPARK_CONFS['Spark']['OPTIONS'].append(
{
@ -87,15 +93,15 @@ ENV_CONFS = {
}
# Initialise plugin Hadoop configurations
PLUGIN_XML_CONFIGS = c_helper.init_xml_configs(XML_CONFS)
PLUGIN_ENV_CONFIGS = c_helper.init_env_configs(ENV_CONFS)
PLUGIN_XML_CONFIGS = config_helper.init_xml_configs(XML_CONFS)
PLUGIN_ENV_CONFIGS = config_helper.init_env_configs(ENV_CONFS)
def _init_all_configs():
configs = []
configs.extend(PLUGIN_XML_CONFIGS)
configs.extend(PLUGIN_ENV_CONFIGS)
configs.extend(c_helper.PLUGIN_GENERAL_CONFIGS)
configs.extend(config_helper.PLUGIN_GENERAL_CONFIGS)
configs.extend(_get_spark_configs())
configs.extend(_get_zookeeper_configs())
return configs
@ -124,7 +130,7 @@ def _get_spark_configs():
def _get_zookeeper_configs():
zk_configs = []
for service, config_items in six.iteritems(c_helper.ZOOKEEPER_CONFS):
for service, config_items in six.iteritems(config_helper.ZOOKEEPER_CONFS):
for item in config_items['OPTIONS']:
cfg = p.Config(name=item["name"],
description=item["description"],

View File

@ -14,34 +14,33 @@
# limitations under the License.
import os
from sahara import exceptions as ex
from sahara.i18n import _
from sahara.plugins import edp
from sahara.plugins import exceptions as ex
from sahara.plugins import utils as plugin_utils
from sahara.plugins.vanilla import confighints_helper as ch_helper
from sahara.plugins.vanilla.hadoop2 import edp_engine
from sahara.plugins.vanilla import utils as v_utils
from sahara.service.edp.spark import engine as edp_spark_engine
from sahara.utils import edp
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla import confighints_helper as chh
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import edp_engine
from sahara_plugin_vanilla.plugins.vanilla import utils as v_utils
class EdpOozieEngine(edp_engine.EdpOozieEngine):
@staticmethod
def get_possible_job_config(job_type):
if edp.compare_job_type(job_type, edp.JOB_TYPE_HIVE):
return {'job_config': ch_helper.get_possible_hive_config_from(
return {'job_config': chh.get_possible_hive_config_from(
'plugins/vanilla/v2_7_1/resources/hive-default.xml')}
if edp.compare_job_type(job_type,
edp.JOB_TYPE_MAPREDUCE,
edp.JOB_TYPE_MAPREDUCE_STREAMING):
return {'job_config': ch_helper.get_possible_mapreduce_config_from(
return {'job_config': chh.get_possible_mapreduce_config_from(
'plugins/vanilla/v2_7_1/resources/mapred-default.xml')}
if edp.compare_job_type(job_type, edp.JOB_TYPE_PIG):
return {'job_config': ch_helper.get_possible_pig_config_from(
return {'job_config': chh.get_possible_pig_config_from(
'plugins/vanilla/v2_7_1/resources/mapred-default.xml')}
return edp_engine.EdpOozieEngine.get_possible_job_config(job_type)
class EdpSparkEngine(edp_spark_engine.SparkJobEngine):
class EdpSparkEngine(edp.PluginsSparkJobEngine):
edp_base_version = "2.7.1"
@ -68,13 +67,13 @@ class EdpSparkEngine(edp_spark_engine.SparkJobEngine):
@staticmethod
def job_type_supported(job_type):
return (job_type in
edp_spark_engine.SparkJobEngine.get_supported_job_types())
edp.PluginsSparkJobEngine.get_supported_job_types())
def validate_job_execution(self, cluster, job, data):
if (not self.edp_supported(cluster.hadoop_version) or
not v_utils.get_spark_history_server(cluster)):
raise ex.InvalidDataException(
raise ex.PluginInvalidDataException(
_('Spark {base} or higher required to run {type} jobs').format(
base=EdpSparkEngine.edp_base_version, type=job.type))

View File

@ -15,34 +15,32 @@
from oslo_config import cfg
from sahara import conductor
from sahara import context
from sahara.plugins import conductor
from sahara.plugins import context
from sahara.plugins import swift_helper
from sahara.plugins import utils
from sahara.plugins.vanilla import abstractversionhandler as avm
from sahara.plugins.vanilla.hadoop2 import config as c
from sahara.plugins.vanilla.hadoop2 import keypairs
from sahara.plugins.vanilla.hadoop2 import recommendations_utils as ru
from sahara.plugins.vanilla.hadoop2 import run_scripts as run
from sahara.plugins.vanilla.hadoop2 import scaling as sc
from sahara.plugins.vanilla.hadoop2 import starting_scripts as s_scripts
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara.plugins.vanilla.hadoop2 import validation as vl
from sahara.plugins.vanilla import utils as vu
from sahara.plugins.vanilla.v2_8_2 import config_helper as c_helper
from sahara.plugins.vanilla.v2_8_2 import edp_engine
from sahara.swift import swift_helper
from sahara.utils import cluster as cluster_utils
from sahara_plugin_vanilla.plugins.vanilla import abstractversionhandler as avm
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config as c
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import keypairs
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import recommendations_utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import run_scripts as run
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import scaling as sc
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import starting_scripts
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import validation as vl
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1 import edp_engine
conductor = conductor.API
CONF = cfg.CONF
class VersionHandler(avm.AbstractVersionHandler):
def __init__(self):
self.pctx = {
'env_confs': c_helper.get_env_configs(),
'all_confs': c_helper.get_plugin_configs()
'env_confs': config_helper.get_env_configs(),
'all_confs': config_helper.get_plugin_configs()
}
def get_plugin_configs(self):
@ -72,22 +70,22 @@ class VersionHandler(avm.AbstractVersionHandler):
def start_cluster(self, cluster):
keypairs.provision_keypairs(cluster)
s_scripts.start_namenode(cluster)
s_scripts.start_secondarynamenode(cluster)
s_scripts.start_resourcemanager(cluster)
starting_scripts.start_namenode(cluster)
starting_scripts.start_secondarynamenode(cluster)
starting_scripts.start_resourcemanager(cluster)
run.start_dn_nm_processes(utils.get_instances(cluster))
run.await_datanodes(cluster)
s_scripts.start_historyserver(cluster)
s_scripts.start_oozie(self.pctx, cluster)
s_scripts.start_hiveserver(self.pctx, cluster)
s_scripts.start_zookeeper(cluster)
starting_scripts.start_historyserver(cluster)
starting_scripts.start_oozie(self.pctx, cluster)
starting_scripts.start_hiveserver(self.pctx, cluster)
starting_scripts.start_zookeeper(cluster)
swift_helper.install_ssl_certs(cluster_utils.get_instances(cluster))
swift_helper.install_ssl_certs(utils.get_instances(cluster))
self._set_cluster_info(cluster)
s_scripts.start_spark(cluster)
starting_scripts.start_spark(cluster)
def decommission_nodes(self, cluster, instances):
sc.decommission_nodes(self.pctx, cluster, instances)
@ -167,4 +165,6 @@ class VersionHandler(avm.AbstractVersionHandler):
return c.get_open_ports(node_group)
def recommend_configs(self, cluster, scaling):
ru.recommend_configs(cluster, self.get_plugin_configs(), scaling)
recommendations_utils.recommend_configs(cluster,
self.get_plugin_configs(),
scaling)

View File

@ -19,34 +19,40 @@ from oslo_config import cfg
import six
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.utils import xmlutils as x
from sahara.plugins import utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
CONF = cfg.CONF
CONF.import_opt("enable_data_locality", "sahara.topology.topology_helper")
CORE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/core-default.xml')
CORE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/core-default.xml',
'sahara_plugin_vanilla')
HDFS_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/hdfs-default.xml')
HDFS_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/hdfs-default.xml',
'sahara_plugin_vanilla')
MAPRED_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/mapred-default.xml')
MAPRED_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/mapred-default.xml',
'sahara_plugin_vanilla')
YARN_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/yarn-default.xml')
YARN_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/yarn-default.xml',
'sahara_plugin_vanilla')
OOZIE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/oozie-default.xml')
OOZIE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/oozie-default.xml',
'sahara_plugin_vanilla')
HIVE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/hive-default.xml')
HIVE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_7_5/resources/hive-default.xml',
'sahara_plugin_vanilla')
_default_executor_classpath = ":".join(
['/opt/hadoop/share/hadoop/tools/lib/hadoop-openstack-2.7.5.jar'])
SPARK_CONFS = copy.deepcopy(c_helper.SPARK_CONFS)
SPARK_CONFS = copy.deepcopy(config_helper.SPARK_CONFS)
SPARK_CONFS['Spark']['OPTIONS'].append(
{
@ -87,15 +93,15 @@ ENV_CONFS = {
}
# Initialise plugin Hadoop configurations
PLUGIN_XML_CONFIGS = c_helper.init_xml_configs(XML_CONFS)
PLUGIN_ENV_CONFIGS = c_helper.init_env_configs(ENV_CONFS)
PLUGIN_XML_CONFIGS = config_helper.init_xml_configs(XML_CONFS)
PLUGIN_ENV_CONFIGS = config_helper.init_env_configs(ENV_CONFS)
def _init_all_configs():
configs = []
configs.extend(PLUGIN_XML_CONFIGS)
configs.extend(PLUGIN_ENV_CONFIGS)
configs.extend(c_helper.PLUGIN_GENERAL_CONFIGS)
configs.extend(config_helper.PLUGIN_GENERAL_CONFIGS)
configs.extend(_get_spark_configs())
configs.extend(_get_zookeeper_configs())
return configs
@ -124,7 +130,7 @@ def _get_spark_configs():
def _get_zookeeper_configs():
zk_configs = []
for service, config_items in six.iteritems(c_helper.ZOOKEEPER_CONFS):
for service, config_items in six.iteritems(config_helper.ZOOKEEPER_CONFS):
for item in config_items['OPTIONS']:
cfg = p.Config(name=item["name"],
description=item["description"],

View File

@ -14,34 +14,37 @@
# limitations under the License.
import os
from sahara import exceptions as ex
from sahara.i18n import _
from sahara.plugins import edp
from sahara.plugins import exceptions as ex
from sahara.plugins import utils as plugin_utils
from sahara.plugins.vanilla import confighints_helper as ch_helper
from sahara.plugins.vanilla.hadoop2 import edp_engine
from sahara.plugins.vanilla import utils as v_utils
from sahara.service.edp.spark import engine as edp_spark_engine
from sahara.utils import edp
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla import confighints_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import edp_engine
from sahara_plugin_vanilla.plugins.vanilla import utils as v_utils
class EdpOozieEngine(edp_engine.EdpOozieEngine):
@staticmethod
def get_possible_job_config(job_type):
if edp.compare_job_type(job_type, edp.JOB_TYPE_HIVE):
return {'job_config': ch_helper.get_possible_hive_config_from(
return {
'job_config': confighints_helper.get_possible_hive_config_from(
'plugins/vanilla/v2_7_5/resources/hive-default.xml')}
if edp.compare_job_type(job_type,
edp.JOB_TYPE_MAPREDUCE,
edp.JOB_TYPE_MAPREDUCE_STREAMING):
return {'job_config': ch_helper.get_possible_mapreduce_config_from(
return {
'job_config':
confighints_helper.get_possible_mapreduce_config_from(
'plugins/vanilla/v2_7_5/resources/mapred-default.xml')}
if edp.compare_job_type(job_type, edp.JOB_TYPE_PIG):
return {'job_config': ch_helper.get_possible_pig_config_from(
return {
'job_config': confighints_helper.get_possible_pig_config_from(
'plugins/vanilla/v2_7_5/resources/mapred-default.xml')}
return edp_engine.EdpOozieEngine.get_possible_job_config(job_type)
class EdpSparkEngine(edp_spark_engine.SparkJobEngine):
class EdpSparkEngine(edp.PluginsSparkJobEngine):
edp_base_version = "2.7.5"
@ -68,7 +71,7 @@ class EdpSparkEngine(edp_spark_engine.SparkJobEngine):
@staticmethod
def job_type_supported(job_type):
return (job_type in
edp_spark_engine.SparkJobEngine.get_supported_job_types())
edp.PluginsSparkJobEngine.get_supported_job_types())
def validate_job_execution(self, cluster, job, data):
if (not self.edp_supported(cluster.hadoop_version) or

View File

@ -15,34 +15,32 @@
from oslo_config import cfg
from sahara import conductor
from sahara import context
from sahara.plugins import conductor
from sahara.plugins import context
from sahara.plugins import swift_helper
from sahara.plugins import utils
from sahara.plugins.vanilla import abstractversionhandler as avm
from sahara.plugins.vanilla.hadoop2 import config as c
from sahara.plugins.vanilla.hadoop2 import keypairs
from sahara.plugins.vanilla.hadoop2 import recommendations_utils as ru
from sahara.plugins.vanilla.hadoop2 import run_scripts as run
from sahara.plugins.vanilla.hadoop2 import scaling as sc
from sahara.plugins.vanilla.hadoop2 import starting_scripts as s_scripts
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara.plugins.vanilla.hadoop2 import validation as vl
from sahara.plugins.vanilla import utils as vu
from sahara.plugins.vanilla.v2_7_5 import config_helper as c_helper
from sahara.plugins.vanilla.v2_7_5 import edp_engine
from sahara.swift import swift_helper
from sahara.utils import cluster as cluster_utils
from sahara_plugin_vanilla.plugins.vanilla import abstractversionhandler as avm
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config as c
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import keypairs
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import recommendations_utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import run_scripts as run
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import scaling as sc
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import starting_scripts
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import validation as vl
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5 import edp_engine
conductor = conductor.API
CONF = cfg.CONF
class VersionHandler(avm.AbstractVersionHandler):
def __init__(self):
self.pctx = {
'env_confs': c_helper.get_env_configs(),
'all_confs': c_helper.get_plugin_configs()
'env_confs': config_helper.get_env_configs(),
'all_confs': config_helper.get_plugin_configs()
}
def get_plugin_configs(self):
@ -72,22 +70,22 @@ class VersionHandler(avm.AbstractVersionHandler):
def start_cluster(self, cluster):
keypairs.provision_keypairs(cluster)
s_scripts.start_namenode(cluster)
s_scripts.start_secondarynamenode(cluster)
s_scripts.start_resourcemanager(cluster)
starting_scripts.start_namenode(cluster)
starting_scripts.start_secondarynamenode(cluster)
starting_scripts.start_resourcemanager(cluster)
run.start_dn_nm_processes(utils.get_instances(cluster))
run.await_datanodes(cluster)
s_scripts.start_historyserver(cluster)
s_scripts.start_oozie(self.pctx, cluster)
s_scripts.start_hiveserver(self.pctx, cluster)
s_scripts.start_zookeeper(cluster)
starting_scripts.start_historyserver(cluster)
starting_scripts.start_oozie(self.pctx, cluster)
starting_scripts.start_hiveserver(self.pctx, cluster)
starting_scripts.start_zookeeper(cluster)
swift_helper.install_ssl_certs(cluster_utils.get_instances(cluster))
swift_helper.install_ssl_certs(utils.get_instances(cluster))
self._set_cluster_info(cluster)
s_scripts.start_spark(cluster)
starting_scripts.start_spark(cluster)
def decommission_nodes(self, cluster, instances):
sc.decommission_nodes(self.pctx, cluster, instances)
@ -167,4 +165,6 @@ class VersionHandler(avm.AbstractVersionHandler):
return c.get_open_ports(node_group)
def recommend_configs(self, cluster, scaling):
ru.recommend_configs(cluster, self.get_plugin_configs(), scaling)
recommendations_utils.recommend_configs(cluster,
self.get_plugin_configs(),
scaling)

View File

@ -19,34 +19,40 @@ from oslo_config import cfg
import six
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.utils import xmlutils as x
from sahara.plugins import utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
CONF = cfg.CONF
CONF.import_opt("enable_data_locality", "sahara.topology.topology_helper")
CORE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/core-default.xml')
CORE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/core-default.xml',
'sahara_plugin_vanilla')
HDFS_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/hdfs-default.xml')
HDFS_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/hdfs-default.xml',
'sahara_plugin_vanilla')
MAPRED_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/mapred-default.xml')
MAPRED_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/mapred-default.xml',
'sahara_plugin_vanilla')
YARN_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/yarn-default.xml')
YARN_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/yarn-default.xml',
'sahara_plugin_vanilla')
OOZIE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/oozie-default.xml')
OOZIE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/oozie-default.xml',
'sahara_plugin_vanilla')
HIVE_DEFAULT = x.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/hive-default.xml')
HIVE_DEFAULT = utils.load_hadoop_xml_defaults(
'plugins/vanilla/v2_8_2/resources/hive-default.xml',
'sahara_plugin_vanilla')
_default_executor_classpath = ":".join(
['/opt/hadoop/share/hadoop/tools/lib/hadoop-openstack-2.8.2.jar'])
SPARK_CONFS = copy.deepcopy(c_helper.SPARK_CONFS)
SPARK_CONFS = copy.deepcopy(config_helper.SPARK_CONFS)
SPARK_CONFS['Spark']['OPTIONS'].append(
{
@ -87,15 +93,15 @@ ENV_CONFS = {
}
# Initialise plugin Hadoop configurations
PLUGIN_XML_CONFIGS = c_helper.init_xml_configs(XML_CONFS)
PLUGIN_ENV_CONFIGS = c_helper.init_env_configs(ENV_CONFS)
PLUGIN_XML_CONFIGS = config_helper.init_xml_configs(XML_CONFS)
PLUGIN_ENV_CONFIGS = config_helper.init_env_configs(ENV_CONFS)
def _init_all_configs():
configs = []
configs.extend(PLUGIN_XML_CONFIGS)
configs.extend(PLUGIN_ENV_CONFIGS)
configs.extend(c_helper.PLUGIN_GENERAL_CONFIGS)
configs.extend(config_helper.PLUGIN_GENERAL_CONFIGS)
configs.extend(_get_spark_configs())
configs.extend(_get_zookeeper_configs())
return configs
@ -124,7 +130,7 @@ def _get_spark_configs():
def _get_zookeeper_configs():
zk_configs = []
for service, config_items in six.iteritems(c_helper.ZOOKEEPER_CONFS):
for service, config_items in six.iteritems(config_helper.ZOOKEEPER_CONFS):
for item in config_items['OPTIONS']:
cfg = p.Config(name=item["name"],
description=item["description"],

View File

@ -14,34 +14,37 @@
# limitations under the License.
import os
from sahara import exceptions as ex
from sahara.i18n import _
from sahara.plugins import edp
from sahara.plugins import exceptions as ex
from sahara.plugins import utils as plugin_utils
from sahara.plugins.vanilla import confighints_helper as ch_helper
from sahara.plugins.vanilla.hadoop2 import edp_engine
from sahara.plugins.vanilla import utils as v_utils
from sahara.service.edp.spark import engine as edp_spark_engine
from sahara.utils import edp
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla import confighints_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import edp_engine
from sahara_plugin_vanilla.plugins.vanilla import utils as v_utils
class EdpOozieEngine(edp_engine.EdpOozieEngine):
@staticmethod
def get_possible_job_config(job_type):
if edp.compare_job_type(job_type, edp.JOB_TYPE_HIVE):
return {'job_config': ch_helper.get_possible_hive_config_from(
return {
'job_config': confighints_helper.get_possible_hive_config_from(
'plugins/vanilla/v2_8_2/resources/hive-default.xml')}
if edp.compare_job_type(job_type,
edp.JOB_TYPE_MAPREDUCE,
edp.JOB_TYPE_MAPREDUCE_STREAMING):
return {'job_config': ch_helper.get_possible_mapreduce_config_from(
return {
'job_config':
confighints_helper.get_possible_mapreduce_config_from(
'plugins/vanilla/v2_8_2/resources/mapred-default.xml')}
if edp.compare_job_type(job_type, edp.JOB_TYPE_PIG):
return {'job_config': ch_helper.get_possible_pig_config_from(
return {
'job_config': confighints_helper.get_possible_pig_config_from(
'plugins/vanilla/v2_8_2/resources/mapred-default.xml')}
return edp_engine.EdpOozieEngine.get_possible_job_config(job_type)
class EdpSparkEngine(edp_spark_engine.SparkJobEngine):
class EdpSparkEngine(edp.PluginsSparkJobEngine):
edp_base_version = "2.8.2"
@ -68,13 +71,13 @@ class EdpSparkEngine(edp_spark_engine.SparkJobEngine):
@staticmethod
def job_type_supported(job_type):
return (job_type in
edp_spark_engine.SparkJobEngine.get_supported_job_types())
edp.PluginsSparkJobEngine.get_supported_job_types())
def validate_job_execution(self, cluster, job, data):
if (not self.edp_supported(cluster.hadoop_version) or
not v_utils.get_spark_history_server(cluster)):
raise ex.InvalidDataException(
raise ex.PluginInvalidDataException(
_('Spark {base} or higher required to run {type} jobs').format(
base=EdpSparkEngine.edp_base_version, type=job.type))

View File

@ -15,34 +15,32 @@
from oslo_config import cfg
from sahara import conductor
from sahara import context
from sahara.plugins import conductor
from sahara.plugins import context
from sahara.plugins import swift_helper
from sahara.plugins import utils
from sahara.plugins.vanilla import abstractversionhandler as avm
from sahara.plugins.vanilla.hadoop2 import config as c
from sahara.plugins.vanilla.hadoop2 import keypairs
from sahara.plugins.vanilla.hadoop2 import recommendations_utils as ru
from sahara.plugins.vanilla.hadoop2 import run_scripts as run
from sahara.plugins.vanilla.hadoop2 import scaling as sc
from sahara.plugins.vanilla.hadoop2 import starting_scripts as s_scripts
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara.plugins.vanilla.hadoop2 import validation as vl
from sahara.plugins.vanilla import utils as vu
from sahara.plugins.vanilla.v2_7_1 import config_helper as c_helper
from sahara.plugins.vanilla.v2_7_1 import edp_engine
from sahara.swift import swift_helper
from sahara.utils import cluster as cluster_utils
from sahara_plugin_vanilla.plugins.vanilla import abstractversionhandler as avm
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config as c
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import keypairs
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import recommendations_utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import run_scripts as run
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import scaling as sc
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import starting_scripts
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import validation as vl
from sahara_plugin_vanilla.plugins.vanilla import utils as vu
from sahara_plugin_vanilla.plugins.vanilla.v2_8_2 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.v2_8_2 import edp_engine
conductor = conductor.API
CONF = cfg.CONF
class VersionHandler(avm.AbstractVersionHandler):
def __init__(self):
self.pctx = {
'env_confs': c_helper.get_env_configs(),
'all_confs': c_helper.get_plugin_configs()
'env_confs': config_helper.get_env_configs(),
'all_confs': config_helper.get_plugin_configs()
}
def get_plugin_configs(self):
@ -72,22 +70,22 @@ class VersionHandler(avm.AbstractVersionHandler):
def start_cluster(self, cluster):
keypairs.provision_keypairs(cluster)
s_scripts.start_namenode(cluster)
s_scripts.start_secondarynamenode(cluster)
s_scripts.start_resourcemanager(cluster)
starting_scripts.start_namenode(cluster)
starting_scripts.start_secondarynamenode(cluster)
starting_scripts.start_resourcemanager(cluster)
run.start_dn_nm_processes(utils.get_instances(cluster))
run.await_datanodes(cluster)
s_scripts.start_historyserver(cluster)
s_scripts.start_oozie(self.pctx, cluster)
s_scripts.start_hiveserver(self.pctx, cluster)
s_scripts.start_zookeeper(cluster)
starting_scripts.start_historyserver(cluster)
starting_scripts.start_oozie(self.pctx, cluster)
starting_scripts.start_hiveserver(self.pctx, cluster)
starting_scripts.start_zookeeper(cluster)
swift_helper.install_ssl_certs(cluster_utils.get_instances(cluster))
swift_helper.install_ssl_certs(utils.get_instances(cluster))
self._set_cluster_info(cluster)
s_scripts.start_spark(cluster)
starting_scripts.start_spark(cluster)
def decommission_nodes(self, cluster, instances):
sc.decommission_nodes(self.pctx, cluster, instances)
@ -167,4 +165,6 @@ class VersionHandler(avm.AbstractVersionHandler):
return c.get_open_ports(node_group)
def recommend_configs(self, cluster, scaling):
ru.recommend_configs(cluster, self.get_plugin_configs(), scaling)
recommendations_utils.recommend_configs(cluster,
self.get_plugin_configs(),
scaling)

View File

@ -16,7 +16,7 @@
import os
import re
from sahara.utils import general
from sahara.plugins import utils
class VersionFactory(object):
@ -33,13 +33,13 @@ class VersionFactory(object):
for name in os.listdir(src_dir)
if (os.path.isdir(os.path.join(src_dir, name))
and re.match(r'^v\d+_\d+_\d+$', name))])
versions.sort(key=general.natural_sort_key)
versions.sort(key=utils.natural_sort_key)
VersionFactory.versions = versions
VersionFactory.modules = {}
for version in VersionFactory.versions:
module_name = 'sahara.plugins.vanilla.v%s.versionhandler' % (
version.replace('.', '_'))
module_name = ('sahara_plugin_vanilla.plugins.vanilla.v%s.'
'versionhandler' % (version.replace('.', '_')))
module_class = getattr(
__import__(module_name, fromlist=['sahara']),
'VersionHandler')

View File

@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.utils import patches
from sahara_plugin_vanilla.utils import patches
patches.patch_all()
import oslo_i18n

View File

@ -13,13 +13,12 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import mock
from oslotest import base
from sahara import context
from sahara.db import api as db_api
from sahara import main
from sahara.utils import rpc
from sahara.plugins import context
from sahara.plugins import db as db_api
from sahara.plugins import main
from sahara.plugins import utils
class SaharaTestCase(base.BaseTestCase):
@ -27,7 +26,7 @@ class SaharaTestCase(base.BaseTestCase):
def setUp(self):
super(SaharaTestCase, self).setUp()
self.setup_context()
rpc.setup('all-in-one')
utils.rpc_setup('all-in-one')
def setup_context(self, username="test_user", tenant_id="tenant_1",
auth_token="test_auth_token", tenant_name='test_tenant',
@ -35,14 +34,14 @@ class SaharaTestCase(base.BaseTestCase):
self.addCleanup(context.set_ctx,
context.ctx() if context.has_ctx() else None)
context.set_ctx(context.Context(
context.set_ctx(context.PluginsContext(
username=username, tenant_id=tenant_id,
auth_token=auth_token, service_catalog=service_catalog or {},
tenant_name=tenant_name, **kwargs))
def override_config(self, name, override, group=None):
main.CONF.set_override(name, override, group)
self.addCleanup(main.CONF.clear_override, name, group)
main.set_override(name, override, group)
self.addCleanup(main.clear_override, name, group)
class SaharaWithDbTestCase(SaharaTestCase):
@ -52,22 +51,3 @@ class SaharaWithDbTestCase(SaharaTestCase):
self.override_config('connection', "sqlite://", group='database')
db_api.setup_db()
self.addCleanup(db_api.drop_db)
class _ConsecutiveThreadGroup(context.ThreadGroup):
def __init__(self, _thread_pool_size=1000):
pass
def spawn(self, thread_description, func, *args, **kwargs):
func(*args, **kwargs)
def __enter__(self):
return self
def __exit__(self, *ex):
pass
def mock_thread_group(func):
return mock.patch('sahara.context.ThreadGroup',
new=_ConsecutiveThreadGroup)(func)

View File

@ -16,15 +16,15 @@
import mock
from oslo_config import cfg
from sahara import exceptions as ex
from sahara.plugins import exceptions as ex
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.tests.unit import base
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
from sahara_plugin_vanilla.tests.unit import base
class TestConfigHelper(base.SaharaTestCase):
plugin_path = 'sahara.plugins.vanilla.hadoop2.'
plugin_path = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(TestConfigHelper, self).setUp()
@ -54,21 +54,22 @@ class TestConfigHelper(base.SaharaTestCase):
'Oozie Heap Size': 1024
}
}
configs = c_helper.init_env_configs(ENV_CONFS)
configs = config_helper.init_env_configs(ENV_CONFS)
for config in configs:
self.assertIsInstance(config, p.Config)
def test_init_general_configs(self):
sample_configs = [c_helper.ENABLE_SWIFT, c_helper.ENABLE_MYSQL,
c_helper.DATANODES_STARTUP_TIMEOUT,
c_helper.DATANODES_DECOMMISSIONING_TIMEOUT,
c_helper.NODEMANAGERS_DECOMMISSIONING_TIMEOUT]
sample_configs = [config_helper.ENABLE_SWIFT,
config_helper.ENABLE_MYSQL,
config_helper.DATANODES_STARTUP_TIMEOUT,
config_helper.DATANODES_DECOMMISSIONING_TIMEOUT,
config_helper.NODEMANAGERS_DECOMMISSIONING_TIMEOUT]
self.CONF.enable_data_locality = False
self.assertEqual(c_helper._init_general_configs(), sample_configs)
self.assertEqual(config_helper._init_general_configs(), sample_configs)
sample_configs.append(c_helper.ENABLE_DATA_LOCALITY)
sample_configs.append(config_helper.ENABLE_DATA_LOCALITY)
self.CONF.enable_data_locality = True
self.assertEqual(c_helper._init_general_configs(), sample_configs)
self.assertEqual(config_helper._init_general_configs(), sample_configs)
def test_get_config_value(self):
cluster = mock.Mock()
@ -78,8 +79,8 @@ class TestConfigHelper(base.SaharaTestCase):
cl = 'test'
ng.configuration.return_value.get.return_value.get.return_value = cl
cluster.node_groups = [ng]
cl_param = c_helper.get_config_value('pctx', 'service',
'name', cluster)
cl_param = config_helper.get_config_value('pctx', 'service',
'name', cluster)
self.assertEqual(cl, cl_param)
all_confs = mock.Mock()
@ -87,46 +88,48 @@ class TestConfigHelper(base.SaharaTestCase):
all_confs.name = 'name'
all_confs.default_value = 'default'
pctx = {'all_confs': [all_confs]}
value = c_helper.get_config_value(pctx, 'service', 'name')
value = config_helper.get_config_value(pctx, 'service', 'name')
self.assertEqual(value, 'default')
pctx = {'all_confs': []}
self.assertRaises(ex.NotFoundException, c_helper.get_config_value,
pctx, 'service', 'name')
self.assertRaises(ex.PluginNotFoundException,
config_helper.get_config_value, pctx, 'service',
'name')
@mock.patch(plugin_path + 'config_helper.get_config_value')
def test_is_swift_enabled(self, get_config_value):
target = c_helper.ENABLE_SWIFT.applicable_target
name = c_helper.ENABLE_SWIFT.name
c_helper.is_swift_enabled(self.pctx, self.cluster)
target = config_helper.ENABLE_SWIFT.applicable_target
name = config_helper.ENABLE_SWIFT.name
config_helper.is_swift_enabled(self.pctx, self.cluster)
get_config_value.assert_called_once_with(self.pctx, target,
name, self.cluster)
@mock.patch(plugin_path + 'config_helper.get_config_value')
def test_is_mysql_enabled(self, get_config_value):
target = c_helper.ENABLE_MYSQL.applicable_target
name = c_helper.ENABLE_MYSQL.name
c_helper.is_mysql_enabled(self.pctx, self.cluster)
target = config_helper.ENABLE_MYSQL.applicable_target
name = config_helper.ENABLE_MYSQL.name
config_helper.is_mysql_enabled(self.pctx, self.cluster)
get_config_value.assert_called_once_with(self.pctx, target,
name, self.cluster)
@mock.patch(plugin_path + 'config_helper.get_config_value')
def test_is_data_locality_enabled(self, get_config_value):
self.CONF.enable_data_locality = False
enabled = c_helper.is_data_locality_enabled(self.pctx, self.cluster)
enabled = config_helper.is_data_locality_enabled(self.pctx,
self.cluster)
self.assertEqual(enabled, False)
self.CONF.enable_data_locality = True
target = c_helper.ENABLE_DATA_LOCALITY.applicable_target
name = c_helper.ENABLE_DATA_LOCALITY.name
c_helper.is_data_locality_enabled(self.pctx, self.cluster)
target = config_helper.ENABLE_DATA_LOCALITY.applicable_target
name = config_helper.ENABLE_DATA_LOCALITY.name
config_helper.is_data_locality_enabled(self.pctx, self.cluster)
get_config_value.assert_called_once_with(self.pctx, target,
name, self.cluster)
def test_generate_spark_env_configs(self):
configs = 'HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop\n' \
'YARN_CONF_DIR=/opt/hadoop/etc/hadoop'
ret = c_helper.generate_spark_env_configs(self.cluster)
ret = config_helper.generate_spark_env_configs(self.cluster)
self.assertEqual(ret, configs)
@mock.patch('sahara.plugins.utils.get_config_value_or_default')
@ -134,17 +137,17 @@ class TestConfigHelper(base.SaharaTestCase):
get_config_value_or_default):
get_config_value_or_default.return_value = None
path = 'Executor extra classpath'
ret = c_helper.generate_spark_executor_classpath(self.cluster)
ret = config_helper.generate_spark_executor_classpath(self.cluster)
get_config_value_or_default.assert_called_once_with('Spark',
path,
self.cluster)
self.assertEqual(ret, '\n')
get_config_value_or_default.return_value = 'test'
ret = c_helper.generate_spark_executor_classpath(self.cluster)
ret = config_helper.generate_spark_executor_classpath(self.cluster)
self.assertEqual(ret, 'spark.executor.extraClassPath test')
@mock.patch('sahara.utils.files.get_file_text')
@mock.patch('sahara.plugins.utils.get_file_text')
@mock.patch('sahara.plugins.utils.get_config_value_or_default')
def test_generate_job_cleanup_config(self,
get_config_value_or_default,
@ -160,26 +163,26 @@ class TestConfigHelper(base.SaharaTestCase):
'script': script}
get_file_text.return_value = cron
get_config_value_or_default.return_value = 1
ret = c_helper.generate_job_cleanup_config(self.cluster)
ret = config_helper.generate_job_cleanup_config(self.cluster)
self.assertEqual(get_config_value_or_default.call_count, 3)
self.assertEqual(get_file_text.call_count, 2)
self.assertEqual(ret, job_conf)
job_conf = {'valid': False}
get_config_value_or_default.return_value = 0
ret = c_helper.generate_job_cleanup_config(self.cluster)
ret = config_helper.generate_job_cleanup_config(self.cluster)
self.assertEqual(get_config_value_or_default.call_count, 6)
self.assertEqual(ret, job_conf)
@mock.patch('sahara.plugins.utils.get_config_value_or_default')
def test_get_spark_home(self, get_config_value_or_default):
get_config_value_or_default.return_value = 1
self.assertEqual(c_helper.get_spark_home(self.cluster), 1)
self.assertEqual(config_helper.get_spark_home(self.cluster), 1)
get_config_value_or_default.assert_called_once_with('Spark',
'Spark home',
self.cluster)
@mock.patch('sahara.utils.files.get_file_text')
@mock.patch('sahara.plugins.utils.get_file_text')
@mock.patch('sahara.plugins.utils.get_config_value_or_default')
def test_generate_zk_basic_config(self, get_config_value_or_default,
get_file_text):
@ -191,6 +194,6 @@ class TestConfigHelper(base.SaharaTestCase):
get_config_value_or_default.return_value = 5
get_file_text.return_value = key
ret = c_helper.generate_zk_basic_config(self.cluster)
ret = config_helper.generate_zk_basic_config(self.cluster)
self.assertEqual(get_config_value_or_default.call_count, 3)
self.assertEqual(ret, actual)

View File

@ -13,8 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.plugins.vanilla.hadoop2 import config as c
from sahara.tests.unit import base
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config as c
from sahara_plugin_vanilla.tests.unit import base
class VanillaTwoConfigTestCase(base.SaharaTestCase):

View File

@ -15,19 +15,22 @@
import mock
from sahara.plugins import base as pb
from sahara.plugins import exceptions as ex
from sahara.plugins.vanilla.hadoop2 import edp_engine
from sahara.tests.unit import base as sahara_base
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import edp_engine
from sahara_plugin_vanilla.tests.unit import base as sahara_base
class EdpOozieEngineTest(sahara_base.SaharaTestCase):
engine_path = 'sahara.service.edp.oozie.engine.'
engine_path = 'sahara.plugins.edp.'
def setUp(self):
super(EdpOozieEngineTest, self).setUp()
self.cluster = mock.Mock()
with mock.patch('sahara.service.edp.job_utils.get_plugin',
self.override_config("plugins", ["vanilla"])
pb.setup_plugins()
with mock.patch('sahara.plugins.edp.get_plugin',
return_value='test_plugins'):
self.engine = edp_engine.EdpOozieEngine(self.cluster)
@ -48,14 +51,14 @@ class EdpOozieEngineTest(sahara_base.SaharaTestCase):
ret = self.engine.get_oozie_server_uri(cluster)
self.assertEqual(ret, 'test_url/oozie/')
@mock.patch('sahara.plugins.vanilla.utils.get_oozie')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_oozie')
def test_get_oozie_server(self, get_oozie):
get_oozie.return_value = 'bingo'
ret = self.engine.get_oozie_server(self.cluster)
get_oozie.assert_called_once_with(self.cluster)
self.assertEqual(ret, 'bingo')
@mock.patch(engine_path + 'OozieJobEngine.validate_job_execution')
@mock.patch(engine_path + 'PluginsOozieJobEngine.validate_job_execution')
@mock.patch('sahara.plugins.utils.get_instances_count')
def test_validate_job_execution(self,
get_instances_count,
@ -72,7 +75,7 @@ class EdpOozieEngineTest(sahara_base.SaharaTestCase):
validate_job_execution.assert_called_once_with(self.cluster,
job, data)
@mock.patch('sahara.service.edp.hdfs_helper.create_dir_hadoop2')
@mock.patch('sahara.plugins.edp.create_dir_hadoop2')
def test_create_hdfs_dir(self, create_dir_hadoop2):
self.engine.get_hdfs_user = mock.Mock(return_value='test_user')
remote = mock.Mock()

View File

@ -15,8 +15,8 @@
import mock
from sahara.plugins.vanilla.hadoop2 import oozie_helper as o_helper
from sahara.tests.unit import base
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import oozie_helper
from sahara_plugin_vanilla.tests.unit import base
class TestOozieHelper(base.SaharaTestCase):
@ -46,10 +46,11 @@ class TestOozieHelper(base.SaharaTestCase):
'oozie.service.HadoopAccessorService.hadoop.configurations':
'*=/root'
}
ret = o_helper.get_oozie_required_xml_configs(hadoop_conf_dir)
ret = oozie_helper.get_oozie_required_xml_configs(hadoop_conf_dir)
self.assertEqual(ret, configs)
@mock.patch('sahara.plugins.vanilla.hadoop2.utils.get_oozie_password')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
'utils.get_oozie_password')
def test_get_oozie_mysql_configs(self, get_oozie_password):
get_oozie_password.return_value = '123'
configs = {
@ -61,6 +62,6 @@ class TestOozieHelper(base.SaharaTestCase):
'oozie.service.JPAService.jdbc.password': '123'
}
cluster = mock.Mock()
ret = o_helper.get_oozie_mysql_configs(cluster)
ret = oozie_helper.get_oozie_mysql_configs(cluster)
get_oozie_password.assert_called_once_with(cluster)
self.assertEqual(ret, configs)

View File

@ -15,22 +15,20 @@
import mock
from sahara import conductor as cond
from sahara import context
from sahara.plugins import base as pb
from sahara.tests.unit import base
from sahara.utils import edp
conductor = cond.API
from sahara.plugins import conductor
from sahara.plugins import context
from sahara.plugins import edp
from sahara_plugin_vanilla.tests.unit import base
class VanillaPluginTest(base.SaharaWithDbTestCase):
def setUp(self):
super(VanillaPluginTest, self).setUp()
self.override_config("plugins", ["vanilla"])
pb.setup_plugins()
@mock.patch('sahara.service.edp.hdfs_helper.create_dir_hadoop2')
@mock.patch('sahara.plugins.edp.create_dir_hadoop2')
def test_edp_calls_hadoop2_create_dir(self, create_dir):
for version in ['2.7.1']:
cluster_dict = {

View File

@ -16,7 +16,7 @@
import mock
import testtools
from sahara.plugins.vanilla.hadoop2 import recommendations_utils as ru
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import recommendations_utils
CONFIGURATION_SCHEMA = {
'cluster_configs': {
@ -54,7 +54,7 @@ class TestVersionHandler(testtools.TestCase):
'HadoopAutoConfigsProvider')
def test_recommend_configs(self, provider):
f_cluster, f_configs = mock.Mock(), mock.Mock()
ru.recommend_configs(f_cluster, f_configs, False)
recommendations_utils.recommend_configs(f_cluster, f_configs, False)
self.assertEqual([
mock.call(CONFIGURATION_SCHEMA, f_configs, f_cluster, False)
], provider.call_args_list)

View File

@ -13,20 +13,30 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from functools import wraps
import mock
from sahara.i18n import _
def mock_event_wrapper(*args, **kwargs):
def decorator(f):
@wraps(f)
def decorated_function(*args, **kwargs):
return f(*args, **kwargs)
return decorated_function
return decorator
from sahara.plugins import edp
from sahara.plugins import utils as pu
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.plugins.vanilla.hadoop2 import run_scripts as rs
from sahara.tests.unit import base
from sahara.utils import edp
from sahara.utils import files
mock.patch('sahara.plugins.utils.event_wrapper', mock_event_wrapper).start()
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import run_scripts as rs
from sahara_plugin_vanilla.tests.unit import base
class RunScriptsTest(base.SaharaTestCase):
PLUGINS_PATH = 'sahara.plugins.vanilla.hadoop2.'
PLUGINS_PATH = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(RunScriptsTest, self).setUp()
@ -36,10 +46,11 @@ class RunScriptsTest(base.SaharaTestCase):
self.remote.__enter__ = self.remote
self.remote.__exit__ = mock.Mock()
self.instance.remote.return_value = self.remote
pu.event_wrapper = mock_event_wrapper
@mock.patch(PLUGINS_PATH + 'run_scripts._start_processes')
@mock.patch('sahara.context.set_current_instance_id')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.plugins.context.set_current_instance_id')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
@mock.patch('sahara.plugins.utils.instances_with_services')
def test_start_dn_nm_processes(self, instances_with_services,
add_provisioning_step,
@ -60,21 +71,21 @@ class RunScriptsTest(base.SaharaTestCase):
set_current_instance_id.assert_called_once_with('123')
_start_processes.assert_called_once_with(ins, ['datanode'])
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
def test_start_processes_datanode(self, check_cluster_exists):
processes = ['datanode']
rs._start_processes(self.instance, processes)
self.r.execute_command.assert_called_once_with(
'sudo su - -c "hadoop-daemon.sh start datanode" hadoop')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
def test_start_processes_nodemanager(self, check_cluster_exists):
processes = ['nodemanager']
rs._start_processes(self.instance, processes)
self.r.execute_command.assert_called_once_with(
'sudo su - -c "yarn-daemon.sh start nodemanager" hadoop')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
def test_start_processes_both(self, check_cluster_exists):
processes = ['datanode', 'nodemanager']
rs._start_processes(self.instance, processes)
@ -95,8 +106,8 @@ class RunScriptsTest(base.SaharaTestCase):
self.remote.execute_command.assert_called_once_with(
'sudo su - -c "yarn-daemon.sh start %s" hadoop' % process)
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_start_historyserver(self, add_provisioning_step,
check_cluster_exists):
rs.start_historyserver(self.instance)
@ -109,9 +120,9 @@ class RunScriptsTest(base.SaharaTestCase):
@mock.patch(PLUGINS_PATH + 'run_scripts._start_mysql')
@mock.patch(PLUGINS_PATH + 'config_helper.is_mysql_enabled')
@mock.patch(PLUGINS_PATH + 'utils.get_oozie_password')
@mock.patch('sahara.context.set_current_instance_id')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.plugins.context.set_current_instance_id')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_start_oozie_process(self, add_provisioning_step,
check_cluster_exists,
set_current_instance_id, get_oozie_password,
@ -120,8 +131,9 @@ class RunScriptsTest(base.SaharaTestCase):
self.instance.instance_id = '112233'
pctx = mock.Mock()
is_mysql_enabled.return_value = True
sql_script = files.get_file_text(
'plugins/vanilla/hadoop2/resources/create_oozie_db.sql')
sql_script = pu.get_file_text(
'plugins/vanilla/hadoop2/resources/create_oozie_db.sql',
'sahara_plugin_vanilla')
get_oozie_password.return_value = '123'
pwd_script = sql_script.replace('password', '123')
rs.start_oozie_process(pctx, self.instance)
@ -138,9 +150,9 @@ class RunScriptsTest(base.SaharaTestCase):
_start_oozie.assert_called_once_with(self.r)
@mock.patch(PLUGINS_PATH + 'config_helper.get_spark_home')
@mock.patch('sahara.context.set_current_instance_id')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.plugins.context.set_current_instance_id')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_start_spark_history_server(self, add_provisioning_step,
check_cluster_exists,
set_current_instance_id,
@ -158,9 +170,9 @@ class RunScriptsTest(base.SaharaTestCase):
self.remote.execute_command.assert_called_once_with(
'sudo su - -c "hdfs namenode -format" hadoop')
@mock.patch('sahara.plugins.vanilla.utils.get_namenode')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_namenode')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_refresh_hadoop_nodes(self, add_provisioning_step,
check_cluster_exists, get_namenode):
cluster = mock.Mock()
@ -170,9 +182,10 @@ class RunScriptsTest(base.SaharaTestCase):
self.remote.execute_command.assert_called_once_with(
'sudo su - -c "hdfs dfsadmin -refreshNodes" hadoop')
@mock.patch('sahara.plugins.vanilla.utils.get_resourcemanager')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.'
'get_resourcemanager')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_refresh_yarn_nodes(self, add_provisioning_step,
check_cluster_exists, get_resourcemanager):
cluster = mock.Mock()
@ -207,11 +220,11 @@ class RunScriptsTest(base.SaharaTestCase):
self.r.execute_command.assert_called_once_with(
'sudo su - -c "/opt/oozie/bin/oozied.sh start" hadoop')
@mock.patch('sahara.plugins.vanilla.utils.get_namenode')
@mock.patch('sahara.plugins.vanilla.utils.get_datanodes')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.utils.poll_utils.plugin_option_poll')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_namenode')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_datanodes')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
@mock.patch('sahara.plugins.utils.plugin_option_poll')
def test_await_datanodes(self, plugin_option_poll, add_provisioning_step,
check_cluster_exists, get_datanodes,
get_namenode):
@ -226,7 +239,7 @@ class RunScriptsTest(base.SaharaTestCase):
get_namenode.return_value = namenode
mess = _('Waiting on 1 datanodes to start up')
test_data = {'remote': r, 'count': 1}
timeout = c_helper.DATANODES_STARTUP_TIMEOUT
timeout = config_helper.DATANODES_STARTUP_TIMEOUT
rs.await_datanodes(cluster)
get_datanodes.assert_called_once_with(cluster)
get_namenode.assert_called_once_with(cluster)
@ -276,10 +289,10 @@ class RunScriptsTest(base.SaharaTestCase):
@mock.patch(PLUGINS_PATH + 'run_scripts._start_mysql')
@mock.patch(PLUGINS_PATH + 'run_scripts._hive_copy_shared_conf')
@mock.patch(PLUGINS_PATH + 'run_scripts._hive_create_warehouse_dir')
@mock.patch('sahara.plugins.vanilla.utils.get_oozie')
@mock.patch('sahara.context.set_current_instance_id')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_oozie')
@mock.patch('sahara.plugins.context.set_current_instance_id')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_start_hiveserver_process(self, add_provisioning_step,
check_cluster_exists,
set_current_instance_id, get_oozie,
@ -294,8 +307,9 @@ class RunScriptsTest(base.SaharaTestCase):
self.instance.cluster.hadoop_version = '2.7.1'
ng_cluster = self.instance.node_group.cluster
get_oozie.return_value = None
sql_script = files.get_file_text(
'plugins/vanilla/v2_7_1/resources/create_hive_db.sql')
sql_script = pu.get_file_text(
'plugins/vanilla/v2_7_1/resources/create_hive_db.sql',
'sahara_plugin_vanilla')
get_hive_password.return_value = '123'
pwd_script = sql_script.replace('{{password}}', '123')
rs.start_hiveserver_process(pctx, self.instance)

View File

@ -15,16 +15,16 @@
import mock
from sahara.i18n import _
from sahara.plugins.vanilla.hadoop2 import config_helper as c_helper
from sahara.plugins.vanilla.hadoop2 import scaling
from sahara.plugins.vanilla.hadoop2 import utils as pu
from sahara.tests.unit import base
from sahara_plugin_vanilla.i18n import _
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import config_helper
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import scaling
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as pu
from sahara_plugin_vanilla.tests.unit import base
class ScalingTest(base.SaharaTestCase):
PLUGINS_PATH = 'sahara.plugins.vanilla.hadoop2.'
PLUGINS_PATH = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(ScalingTest, self).setUp()
@ -37,8 +37,9 @@ class ScalingTest(base.SaharaTestCase):
return_value=self.r)
self.instance.remote.return_value.__exit__ = mock.Mock()
@mock.patch('sahara.swift.swift_helper.install_ssl_certs')
@mock.patch('sahara.plugins.vanilla.utils.get_resourcemanager')
@mock.patch('sahara.plugins.swift_helper.install_ssl_certs')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.'
'get_resourcemanager')
@mock.patch(PLUGINS_PATH + 'run_scripts.refresh_zk_servers')
@mock.patch(PLUGINS_PATH + 'config.configure_zookeeper')
@mock.patch(PLUGINS_PATH + 'run_scripts.start_dn_nm_processes')
@ -81,10 +82,10 @@ class ScalingTest(base.SaharaTestCase):
ret = scaling._get_instances_with_service(instances, service)
self.assertEqual(ret, [ins_1])
@mock.patch('sahara.plugins.vanilla.utils.get_nodemanagers')
@mock.patch('sahara.plugins.vanilla.utils.get_datanodes')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_nodemanagers')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_datanodes')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
@mock.patch('sahara.plugins.utils.generate_fqdn_host_names')
@mock.patch('sahara.plugins.utils.get_instances')
def test_update_include_files(self, get_instances,
@ -120,7 +121,8 @@ class ScalingTest(base.SaharaTestCase):
host, DIR))]
self.r.execute_command.assert_has_calls(command_calls, any_order=True)
@mock.patch('sahara.plugins.vanilla.utils.get_resourcemanager')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.'
'get_resourcemanager')
@mock.patch(PLUGINS_PATH + 'run_scripts.refresh_zk_servers')
@mock.patch(PLUGINS_PATH + 'config.configure_zookeeper')
@mock.patch(PLUGINS_PATH + 'config.configure_topology_data')
@ -217,7 +219,7 @@ class ScalingTest(base.SaharaTestCase):
ret = scaling.is_decommissioned(cluster, check_func, instances)
self.assertEqual(ret, False)
@mock.patch('sahara.utils.poll_utils.plugin_option_poll')
@mock.patch('sahara.plugins.utils.plugin_option_poll')
def test_check_decommission(self, plugin_option_poll):
check_func = mock.Mock()
option = mock.Mock()
@ -233,12 +235,12 @@ class ScalingTest(base.SaharaTestCase):
sample_dict)
@mock.patch(PLUGINS_PATH + 'scaling._check_decommission')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_check_nodemanagers_decommission(self, add_provisioning_step,
check_cluster_exists,
_check_decommission):
timeout = c_helper.NODEMANAGERS_DECOMMISSIONING_TIMEOUT
timeout = config_helper.NODEMANAGERS_DECOMMISSIONING_TIMEOUT
status = pu.get_nodemanagers_status
scaling._check_nodemanagers_decommission(self.cluster, self.instances)
_check_decommission.assert_called_once_with(self.cluster,
@ -246,12 +248,12 @@ class ScalingTest(base.SaharaTestCase):
status, timeout)
@mock.patch(PLUGINS_PATH + 'scaling._check_decommission')
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.utils.cluster_progress_ops.add_provisioning_step')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch('sahara.plugins.utils.add_provisioning_step')
def test_check_datanodes_decommission(self, add_provisioning_step,
check_cluster_exists,
_check_decommission):
timeout = c_helper.DATANODES_DECOMMISSIONING_TIMEOUT
timeout = config_helper.DATANODES_DECOMMISSIONING_TIMEOUT
status = pu.get_datanodes_status
scaling._check_datanodes_decommission(self.cluster, self.instances)
_check_decommission.assert_called_once_with(self.cluster,

View File

@ -15,13 +15,13 @@
import mock
from sahara.plugins.vanilla.hadoop2 import starting_scripts as s_scripts
from sahara.tests.unit import base
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import starting_scripts
from sahara_plugin_vanilla.tests.unit import base
class StartingScriptsTest(base.SaharaTestCase):
plugins_path = 'sahara.plugins.vanilla.'
plugins_path = 'sahara_plugin_vanilla.plugins.vanilla.'
def setUp(self):
super(StartingScriptsTest, self).setUp()
@ -32,11 +32,11 @@ class StartingScriptsTest(base.SaharaTestCase):
def test_start_namenode(self, _start_namenode, get_namenode):
namenode = mock.Mock()
get_namenode.return_value = namenode
s_scripts.start_namenode(self.cluster)
starting_scripts.start_namenode(self.cluster)
get_namenode.assert_called_once_with(self.cluster)
_start_namenode.assert_called_once_with(namenode)
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch(plugins_path + 'hadoop2.run_scripts.start_hadoop_process')
@mock.patch(plugins_path + 'hadoop2.run_scripts.format_namenode')
def test__start_namenode(self, format_namenode,
@ -44,7 +44,7 @@ class StartingScriptsTest(base.SaharaTestCase):
check_cluster_exists):
check_cluster_exists.return_value = None
nn = mock.Mock()
s_scripts._start_namenode(nn)
starting_scripts._start_namenode(nn)
format_namenode.assert_called_once_with(nn)
start_hadoop_process.assert_called_once_with(nn, 'namenode')
@ -54,21 +54,21 @@ class StartingScriptsTest(base.SaharaTestCase):
def test_start_secondarynamenode(self, get_secondarynamenode,
_start_secondarynamenode):
get_secondarynamenode.return_value = 0
s_scripts.start_secondarynamenode(self.cluster)
starting_scripts.start_secondarynamenode(self.cluster)
get_secondarynamenode.assert_called_once_with(self.cluster)
get_secondarynamenode.return_value = 1
s_scripts.start_secondarynamenode(self.cluster)
starting_scripts.start_secondarynamenode(self.cluster)
_start_secondarynamenode.assert_called_once_with(1)
self.assertEqual(get_secondarynamenode.call_count, 2)
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch(plugins_path + 'hadoop2.run_scripts.start_hadoop_process')
def test__start_secondarynamenode(self, start_hadoop_process,
check_cluster_exists):
check_cluster_exists.return_value = None
snn = mock.Mock()
s_scripts._start_secondarynamenode(snn)
starting_scripts._start_secondarynamenode(snn)
start_hadoop_process.assert_called_once_with(snn,
'secondarynamenode')
@ -78,21 +78,21 @@ class StartingScriptsTest(base.SaharaTestCase):
def test_start_resourcemanager(self, get_resourcemanager,
_start_resourcemanager):
get_resourcemanager.return_value = 0
s_scripts.start_resourcemanager(self.cluster)
starting_scripts.start_resourcemanager(self.cluster)
get_resourcemanager.assert_called_once_with(self.cluster)
get_resourcemanager.return_value = 1
s_scripts.start_resourcemanager(self.cluster)
starting_scripts.start_resourcemanager(self.cluster)
_start_resourcemanager.assert_called_once_with(1)
self.assertEqual(get_resourcemanager.call_count, 2)
@mock.patch('sahara.utils.cluster.check_cluster_exists')
@mock.patch('sahara.plugins.utils.check_cluster_exists')
@mock.patch(plugins_path + 'hadoop2.run_scripts.start_yarn_process')
def test__start_resourcemanager(self, start_yarn_process,
check_cluster_exists):
check_cluster_exists.return_value = None
snn = mock.Mock()
s_scripts._start_resourcemanager(snn)
starting_scripts._start_resourcemanager(snn)
start_yarn_process.assert_called_once_with(snn,
'resourcemanager')
@ -101,11 +101,11 @@ class StartingScriptsTest(base.SaharaTestCase):
def test_start_historyserver(self, get_historyserver,
start_historyserver):
get_historyserver.return_value = 0
s_scripts.start_historyserver(self.cluster)
starting_scripts.start_historyserver(self.cluster)
get_historyserver.assert_called_once_with(self.cluster)
get_historyserver.return_value = 1
s_scripts.start_historyserver(self.cluster)
starting_scripts.start_historyserver(self.cluster)
start_historyserver.assert_called_once_with(1)
self.assertEqual(get_historyserver.call_count, 2)
@ -114,11 +114,11 @@ class StartingScriptsTest(base.SaharaTestCase):
def test_start_oozie(self, get_oozie, start_oozie_process):
pctx = mock.Mock()
get_oozie.return_value = 0
s_scripts.start_oozie(pctx, self.cluster)
starting_scripts.start_oozie(pctx, self.cluster)
get_oozie.assert_called_once_with(self.cluster)
get_oozie.return_value = 1
s_scripts.start_oozie(pctx, self.cluster)
starting_scripts.start_oozie(pctx, self.cluster)
start_oozie_process.assert_called_once_with(pctx, 1)
self.assertEqual(get_oozie.call_count, 2)
@ -129,11 +129,11 @@ class StartingScriptsTest(base.SaharaTestCase):
start_hiveserver_process):
pctx = mock.Mock()
get_hiveserver.return_value = 0
s_scripts.start_hiveserver(pctx, self.cluster)
starting_scripts.start_hiveserver(pctx, self.cluster)
get_hiveserver.assert_called_once_with(self.cluster)
get_hiveserver.return_value = 1
s_scripts.start_hiveserver(pctx, self.cluster)
starting_scripts.start_hiveserver(pctx, self.cluster)
start_hiveserver_process.assert_called_once_with(pctx, 1)
self.assertEqual(get_hiveserver.call_count, 2)
@ -143,10 +143,10 @@ class StartingScriptsTest(base.SaharaTestCase):
def test_start_spark(self, get_spark_history_server,
start_spark_history_server):
get_spark_history_server.return_value = 0
s_scripts.start_spark(self.cluster)
starting_scripts.start_spark(self.cluster)
get_spark_history_server.assert_called_once_with(self.cluster)
get_spark_history_server.return_value = 1
s_scripts.start_spark(self.cluster)
starting_scripts.start_spark(self.cluster)
start_spark_history_server.assert_called_once_with(1)
self.assertEqual(get_spark_history_server.call_count, 2)

View File

@ -15,16 +15,17 @@
import mock
from sahara.plugins.vanilla.hadoop2 import utils as u
from sahara.tests.unit import base
from sahara.utils import files
from sahara.plugins import utils
from sahara_plugin_vanilla.plugins.vanilla.hadoop2 import utils as u
from sahara_plugin_vanilla.tests.unit import base
class UtilsTestCase(base.SaharaTestCase):
@mock.patch('sahara.plugins.vanilla.utils.get_namenode')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.get_namenode')
def test_datanodes_status(self, nn):
report = files.get_file_text(
'tests/unit/plugins/vanilla/hadoop2/resources/dfs-report.txt')
report = utils.get_file_text(
'tests/unit/plugins/vanilla/hadoop2/resources/dfs-report.txt',
'sahara_plugin_vanilla')
nn.return_value = self._get_instance(report)
statuses = u.get_datanodes_status(None)
@ -38,10 +39,12 @@ class UtilsTestCase(base.SaharaTestCase):
self.assertEqual(expected, statuses)
@mock.patch('sahara.plugins.vanilla.utils.get_resourcemanager')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils.'
'get_resourcemanager')
def test_nodemanagers_status(self, rm):
report = files.get_file_text(
'tests/unit/plugins/vanilla/hadoop2/resources/yarn-report.txt')
report = utils.get_file_text(
'tests/unit/plugins/vanilla/hadoop2/resources/yarn-report.txt',
'sahara_plugin_vanilla')
rm.return_value = self._get_instance(report)
statuses = u.get_nodemanagers_status(None)
@ -65,11 +68,11 @@ class UtilsTestCase(base.SaharaTestCase):
return inst
@mock.patch('sahara.conductor.API.cluster_get')
@mock.patch('sahara.service.castellan.utils.get_secret')
@mock.patch('sahara.service.castellan.utils.store_secret')
@mock.patch('sahara.plugins.vanilla.utils')
@mock.patch('sahara.conductor.API.cluster_update')
@mock.patch('sahara.plugins.conductor.cluster_get')
@mock.patch('sahara.plugins.castellan_utils.get_secret')
@mock.patch('sahara.plugins.castellan_utils.store_secret')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.utils')
@mock.patch('sahara.plugins.conductor.cluster_update')
def test_oozie_password(self, cluster_update, vu,
store_secret, get_secret, conductor):
cluster = mock.MagicMock()
@ -91,7 +94,7 @@ class UtilsTestCase(base.SaharaTestCase):
result = u.get_oozie_password(cluster)
self.assertEqual('oozie_pass', result)
@mock.patch('sahara.service.castellan.utils.delete_secret')
@mock.patch('sahara.plugins.castellan_utils.delete_secret')
def test_delete_oozie_password(self, delete_secret):
cluster = mock.MagicMock()
cluster.extra.to_dict = mock.MagicMock()
@ -104,10 +107,10 @@ class UtilsTestCase(base.SaharaTestCase):
u.delete_oozie_password(cluster)
delete_secret.assert_called_once_with("31415926")
@mock.patch('sahara.conductor.API.cluster_get')
@mock.patch('sahara.service.castellan.utils.get_secret')
@mock.patch('sahara.service.castellan.utils.store_secret')
@mock.patch('sahara.conductor.API.cluster_update')
@mock.patch('sahara.plugins.conductor.cluster_get')
@mock.patch('sahara.plugins.castellan_utils.get_secret')
@mock.patch('sahara.plugins.castellan_utils.store_secret')
@mock.patch('sahara.plugins.conductor.cluster_update')
def test_get_hive_password(self, cluster_update,
store_secret, get_secret, conductor):
cluster = mock.MagicMock()
@ -127,7 +130,7 @@ class UtilsTestCase(base.SaharaTestCase):
result = u.get_hive_password(cluster)
self.assertEqual('hive_pass', result)
@mock.patch('sahara.service.castellan.utils.delete_secret')
@mock.patch('sahara.plugins.castellan_utils.delete_secret')
def test_delete_hive_password(self, delete_secret):
cluster = mock.MagicMock()

View File

@ -16,9 +16,9 @@
import testtools
from sahara.plugins import exceptions as ex
from sahara.plugins.vanilla import plugin as p
from sahara.tests.unit import base
from sahara.tests.unit import testutils as tu
from sahara.plugins import testutils as tu
from sahara_plugin_vanilla.plugins.vanilla import plugin as p
from sahara_plugin_vanilla.tests.unit import base
class ValidationTest(base.SaharaTestCase):

View File

@ -15,36 +15,40 @@
import mock
from sahara.plugins.vanilla import confighints_helper as ch_helper
from sahara.tests.unit import base as sahara_base
from sahara_plugin_vanilla.plugins.vanilla import confighints_helper
from sahara_plugin_vanilla.tests.unit import base as sahara_base
class ConfigHintsHelperTest(sahara_base.SaharaTestCase):
@mock.patch('sahara.utils.xmlutils.load_hadoop_xml_defaults',
@mock.patch('sahara.plugins.utils.load_hadoop_xml_defaults',
return_value=[])
def test_get_possible_hive_config_from(self, load_hadoop_xml_defaults):
expected_config = {
'configs': [],
'params': {}
}
actual_config = ch_helper.get_possible_hive_config_from(
actual_config = confighints_helper.get_possible_hive_config_from(
'sample-config.xml')
load_hadoop_xml_defaults.assert_called_once_with('sample-config.xml')
load_hadoop_xml_defaults.assert_called_once_with(
'sample-config.xml', 'sahara_plugin_vanilla')
self.assertEqual(expected_config, actual_config)
@mock.patch('sahara.utils.xmlutils.load_hadoop_xml_defaults',
@mock.patch('sahara.plugins.utils.load_hadoop_xml_defaults',
return_value=[])
@mock.patch('sahara.plugins.edp.get_possible_mapreduce_configs',
return_value=[])
def test_get_possible_mapreduce_config_from(
self, load_hadoop_xml_defaults):
self, get_possible_mapreduce_configs, load_hadoop_xml_defaults):
expected_config = {
'configs': [],
}
actual_config = ch_helper.get_possible_mapreduce_config_from(
actual_config = confighints_helper.get_possible_mapreduce_config_from(
'sample-config.xml')
load_hadoop_xml_defaults.assert_any_call('sample-config.xml')
load_hadoop_xml_defaults.assert_any_call('sample-config.xml',
'sahara_plugin_vanilla')
self.assertEqual(expected_config, actual_config)
@mock.patch('sahara.utils.xmlutils.load_hadoop_xml_defaults',
@mock.patch('sahara.plugins.utils.load_hadoop_xml_defaults',
return_value=[])
def test_get_possible_pig_config_from(
self, load_hadoop_xml_defaults):
@ -53,7 +57,8 @@ class ConfigHintsHelperTest(sahara_base.SaharaTestCase):
'args': [],
'params': {}
}
actual_config = ch_helper.get_possible_pig_config_from(
actual_config = confighints_helper.get_possible_pig_config_from(
'sample-config.xml')
load_hadoop_xml_defaults.assert_called_once_with('sample-config.xml')
load_hadoop_xml_defaults.assert_called_once_with(
'sample-config.xml', 'sahara_plugin_vanilla')
self.assertEqual(expected_config, actual_config)

View File

@ -13,10 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from sahara.plugins.vanilla import plugin as p
from sahara.plugins.vanilla import utils as u
from sahara.tests.unit import base
from sahara.tests.unit import testutils as tu
from sahara.plugins import testutils as tu
from sahara_plugin_vanilla.plugins.vanilla import plugin as p
from sahara_plugin_vanilla.plugins.vanilla import utils as u
from sahara_plugin_vanilla.tests.unit import base
class TestUtils(base.SaharaWithDbTestCase):

View File

@ -16,14 +16,14 @@
import mock
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla.v2_7_1 import config_helper as v_helper
from sahara.tests.unit import base
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1 import config_helper
from sahara_plugin_vanilla.tests.unit import base
class TestConfigHelper(base.SaharaTestCase):
plugin_path = 'sahara.plugins.vanilla.v2_7_1.'
plugin_hadoop_path = 'sahara.plugins.vanilla.hadoop2.'
plugin_path = 'sahara_plugin_vanilla.plugins.vanilla.v2_7_1.'
plugin_hadoop_path = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(TestConfigHelper, self).setUp()
@ -45,29 +45,29 @@ class TestConfigHelper(base.SaharaTestCase):
configs.extend(PLUGIN_GENERAL_CONFIGS)
configs.extend(_get_spark_configs())
configs.extend(_get_zk_configs())
init_configs = v_helper._init_all_configs()
init_configs = config_helper._init_all_configs()
self.assertEqual(init_configs, configs)
def test_get_spark_opt_default(self):
opt_name = 'Executor extra classpath'
_default_executor_classpath = ":".join(
['/opt/hadoop/share/hadoop/tools/lib/hadoop-openstack-2.7.1.jar'])
default = v_helper._get_spark_opt_default(opt_name)
default = config_helper._get_spark_opt_default(opt_name)
self.assertEqual(default, _default_executor_classpath)
def test_get_spark_configs(self):
spark_configs = v_helper._get_spark_configs()
spark_configs = config_helper._get_spark_configs()
for i in spark_configs:
self.assertIsInstance(i, p.Config)
def test_get_plugin_configs(self):
self.assertEqual(v_helper.get_plugin_configs(),
v_helper.PLUGIN_CONFIGS)
self.assertEqual(config_helper.get_plugin_configs(),
config_helper.PLUGIN_CONFIGS)
def test_get_xml_configs(self):
self.assertEqual(v_helper.get_xml_configs(),
v_helper.PLUGIN_XML_CONFIGS)
self.assertEqual(config_helper.get_xml_configs(),
config_helper.PLUGIN_XML_CONFIGS)
def test_get_env_configs(self):
self.assertEqual(v_helper.get_env_configs(),
v_helper.ENV_CONFS)
self.assertEqual(config_helper.get_env_configs(),
config_helper.ENV_CONFS)

View File

@ -15,14 +15,14 @@
import mock
from sahara.plugins.vanilla.v2_7_1 import edp_engine
from sahara.tests.unit import base as sahara_base
from sahara.utils import edp
from sahara.plugins import edp
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1 import edp_engine
from sahara_plugin_vanilla.tests.unit import base as sahara_base
class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_hive_config_from',
return_value={})
def test_get_possible_job_config_hive(
@ -34,7 +34,8 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
'plugins/vanilla/v2_7_1/resources/hive-default.xml')
self.assertEqual(expected_config, actual_config)
@mock.patch('sahara.plugins.vanilla.hadoop2.edp_engine.EdpOozieEngine')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.hadoop2.edp_engine.'
'EdpOozieEngine')
def test_get_possible_job_config_java(self, BaseVanillaEdpOozieEngine):
expected_config = {'job_config': {}}
BaseVanillaEdpOozieEngine.get_possible_job_config.return_value = (
@ -46,7 +47,7 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
self.assertEqual(expected_config, actual_config)
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_mapreduce_config_from',
return_value={})
def test_get_possible_job_config_mapreduce(
@ -59,7 +60,7 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
self.assertEqual(expected_config, actual_config)
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_mapreduce_config_from',
return_value={})
def test_get_possible_job_config_mapreduce_streaming(
@ -72,7 +73,7 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
self.assertEqual(expected_config, actual_config)
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_pig_config_from',
return_value={})
def test_get_possible_job_config_pig(
@ -84,7 +85,8 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
'plugins/vanilla/v2_7_1/resources/mapred-default.xml')
self.assertEqual(expected_config, actual_config)
@mock.patch('sahara.plugins.vanilla.hadoop2.edp_engine.EdpOozieEngine')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.hadoop2.edp_engine.'
'EdpOozieEngine')
def test_get_possible_job_config_shell(self, BaseVanillaEdpOozieEngine):
expected_config = {'job_config': {}}
BaseVanillaEdpOozieEngine.get_possible_job_config.return_value = (

View File

@ -17,13 +17,16 @@ import mock
import six
import testtools
from sahara.conductor import resource as r
from sahara.plugins import base as pb
from sahara.plugins import exceptions as ex
from sahara.plugins.vanilla.v2_7_1.edp_engine import EdpOozieEngine
from sahara.plugins.vanilla.v2_7_1.edp_engine import EdpSparkEngine
from sahara.plugins.vanilla.v2_7_1 import versionhandler as v_h
from sahara.tests.unit import base
from sahara.tests.unit import testutils
from sahara.plugins import resource as r
from sahara.plugins import testutils
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1.edp_engine import \
EdpOozieEngine
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1.edp_engine import \
EdpSparkEngine
from sahara_plugin_vanilla.plugins.vanilla.v2_7_1 import versionhandler as v_h
from sahara_plugin_vanilla.tests.unit import base
class TestConfig(object):
@ -34,13 +37,15 @@ class TestConfig(object):
class VersionHandlerTest(base.SaharaTestCase):
plugin_path = 'sahara.plugins.vanilla.'
plugin_hadoop2_path = 'sahara.plugins.vanilla.hadoop2.'
plugin_path = 'sahara_plugin_vanilla.plugins.vanilla.'
plugin_hadoop2_path = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(VersionHandlerTest, self).setUp()
self.cluster = mock.Mock()
self.vh = v_h.VersionHandler()
self.override_config("plugins", ["vanilla"])
pb.setup_plugins()
def test_get_plugin_configs(self):
self.vh.pctx['all_confs'] = 'haha'
@ -74,11 +79,11 @@ class VersionHandlerTest(base.SaharaTestCase):
configure_cluster.assert_called_once_with(self.vh.pctx, self.cluster)
@mock.patch(plugin_path + 'v2_7_1.versionhandler.run')
@mock.patch(plugin_path + 'v2_7_1.versionhandler.s_scripts')
@mock.patch('sahara.swift.swift_helper.install_ssl_certs')
@mock.patch(plugin_path + 'v2_7_1.versionhandler.starting_scripts')
@mock.patch('sahara.plugins.swift_helper.install_ssl_certs')
@mock.patch(plugin_hadoop2_path + 'keypairs.provision_keypairs')
@mock.patch('sahara.plugins.utils.get_instances')
@mock.patch('sahara.utils.cluster.get_instances')
@mock.patch('sahara.plugins.utils.cluster_get_instances')
def test_start_cluster(self, c_get_instances, u_get_instances,
provision_keypairs, install_ssl_certs,
s_scripts, run):
@ -113,7 +118,7 @@ class VersionHandlerTest(base.SaharaTestCase):
cluster,
instances)
@mock.patch('sahara.utils.general.get_by_id')
@mock.patch('sahara.plugins.utils.general.get_by_id')
@mock.patch(plugin_hadoop2_path +
'validation.validate_additional_ng_scaling')
@mock.patch(plugin_hadoop2_path +
@ -141,7 +146,7 @@ class VersionHandlerTest(base.SaharaTestCase):
with testtools.ExpectedException(ex.ClusterCannotBeScaled):
self.vh.validate_scaling(cluster, existing, {})
get_by_id.return_value = r.NodeGroupResource(ng5)
get_by_id.return_value = r.create_node_group_resource(ng5)
with testtools.ExpectedException(ex.ClusterCannotBeScaled):
self.vh.validate_scaling(cluster, {}, additional)
@ -158,8 +163,8 @@ class VersionHandlerTest(base.SaharaTestCase):
self.cluster,
instances)
@mock.patch("sahara.conductor.API.cluster_update")
@mock.patch("sahara.context.ctx")
@mock.patch("sahara.plugins.conductor.cluster_update")
@mock.patch("sahara.plugins.context.ctx")
@mock.patch(plugin_path + 'utils.get_namenode')
@mock.patch(plugin_path + 'utils.get_resourcemanager')
@mock.patch(plugin_path + 'utils.get_historyserver')
@ -202,7 +207,7 @@ class VersionHandlerTest(base.SaharaTestCase):
cluster_update.assert_called_once_with(ctx(), self.cluster,
{'info': info})
@mock.patch("sahara.service.edp.job_utils.get_plugin")
@mock.patch("sahara.plugins.edp.get_plugin")
@mock.patch('sahara.plugins.utils.get_instance')
@mock.patch('os.path.join')
def test_get_edp_engine(self, join, get_instance, get_plugin):

View File

@ -16,14 +16,14 @@
import mock
from sahara.plugins import provisioning as p
from sahara.plugins.vanilla.v2_7_5 import config_helper as v_helper
from sahara.tests.unit import base
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5 import config_helper
from sahara_plugin_vanilla.tests.unit import base
class TestConfigHelper(base.SaharaTestCase):
plugin_path = 'sahara.plugins.vanilla.v2_7_5.'
plugin_hadoop_path = 'sahara.plugins.vanilla.hadoop2.'
plugin_path = 'sahara_plugin_vanilla.plugins.vanilla.v2_7_5.'
plugin_hadoop_path = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(TestConfigHelper, self).setUp()
@ -45,29 +45,29 @@ class TestConfigHelper(base.SaharaTestCase):
configs.extend(PLUGIN_GENERAL_CONFIGS)
configs.extend(_get_spark_configs())
configs.extend(_get_zk_configs())
init_configs = v_helper._init_all_configs()
init_configs = config_helper._init_all_configs()
self.assertEqual(init_configs, configs)
def test_get_spark_opt_default(self):
opt_name = 'Executor extra classpath'
_default_executor_classpath = ":".join(
['/opt/hadoop/share/hadoop/tools/lib/hadoop-openstack-2.7.5.jar'])
default = v_helper._get_spark_opt_default(opt_name)
default = config_helper._get_spark_opt_default(opt_name)
self.assertEqual(default, _default_executor_classpath)
def test_get_spark_configs(self):
spark_configs = v_helper._get_spark_configs()
spark_configs = config_helper._get_spark_configs()
for i in spark_configs:
self.assertIsInstance(i, p.Config)
def test_get_plugin_configs(self):
self.assertEqual(v_helper.get_plugin_configs(),
v_helper.PLUGIN_CONFIGS)
self.assertEqual(config_helper.get_plugin_configs(),
config_helper.PLUGIN_CONFIGS)
def test_get_xml_configs(self):
self.assertEqual(v_helper.get_xml_configs(),
v_helper.PLUGIN_XML_CONFIGS)
self.assertEqual(config_helper.get_xml_configs(),
config_helper.PLUGIN_XML_CONFIGS)
def test_get_env_configs(self):
self.assertEqual(v_helper.get_env_configs(),
v_helper.ENV_CONFS)
self.assertEqual(config_helper.get_env_configs(),
config_helper.ENV_CONFS)

View File

@ -15,14 +15,14 @@
import mock
from sahara.plugins.vanilla.v2_7_5 import edp_engine
from sahara.tests.unit import base as sahara_base
from sahara.utils import edp
from sahara.plugins import edp
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5 import edp_engine
from sahara_plugin_vanilla.tests.unit import base as sahara_base
class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_hive_config_from',
return_value={})
def test_get_possible_job_config_hive(
@ -34,7 +34,8 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
'plugins/vanilla/v2_7_5/resources/hive-default.xml')
self.assertEqual(expected_config, actual_config)
@mock.patch('sahara.plugins.vanilla.hadoop2.edp_engine.EdpOozieEngine')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.hadoop2.edp_engine.'
'EdpOozieEngine')
def test_get_possible_job_config_java(self, BaseVanillaEdpOozieEngine):
expected_config = {'job_config': {}}
BaseVanillaEdpOozieEngine.get_possible_job_config.return_value = (
@ -46,7 +47,7 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
self.assertEqual(expected_config, actual_config)
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_mapreduce_config_from',
return_value={})
def test_get_possible_job_config_mapreduce(
@ -59,7 +60,7 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
self.assertEqual(expected_config, actual_config)
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_mapreduce_config_from',
return_value={})
def test_get_possible_job_config_mapreduce_streaming(
@ -72,7 +73,7 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
self.assertEqual(expected_config, actual_config)
@mock.patch(
'sahara.plugins.vanilla.confighints_helper.'
'sahara_plugin_vanilla.plugins.vanilla.confighints_helper.'
'get_possible_pig_config_from',
return_value={})
def test_get_possible_job_config_pig(
@ -84,7 +85,8 @@ class Vanilla2ConfigHintsTest(sahara_base.SaharaTestCase):
'plugins/vanilla/v2_7_5/resources/mapred-default.xml')
self.assertEqual(expected_config, actual_config)
@mock.patch('sahara.plugins.vanilla.hadoop2.edp_engine.EdpOozieEngine')
@mock.patch('sahara_plugin_vanilla.plugins.vanilla.hadoop2.edp_engine.'
'EdpOozieEngine')
def test_get_possible_job_config_shell(self, BaseVanillaEdpOozieEngine):
expected_config = {'job_config': {}}
BaseVanillaEdpOozieEngine.get_possible_job_config.return_value = (

View File

@ -17,13 +17,16 @@ import mock
import six
import testtools
from sahara.conductor import resource as r
from sahara.plugins import base as pb
from sahara.plugins import exceptions as ex
from sahara.plugins.vanilla.v2_7_5.edp_engine import EdpOozieEngine
from sahara.plugins.vanilla.v2_7_5.edp_engine import EdpSparkEngine
from sahara.plugins.vanilla.v2_7_5 import versionhandler as v_h
from sahara.tests.unit import base
from sahara.tests.unit import testutils
from sahara.plugins import resource as r
from sahara.plugins import testutils
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5.edp_engine import \
EdpOozieEngine
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5.edp_engine import \
EdpSparkEngine
from sahara_plugin_vanilla.plugins.vanilla.v2_7_5 import versionhandler as v_h
from sahara_plugin_vanilla.tests.unit import base
class TestConfig(object):
@ -34,13 +37,15 @@ class TestConfig(object):
class VersionHandlerTest(base.SaharaTestCase):
plugin_path = 'sahara.plugins.vanilla.'
plugin_hadoop2_path = 'sahara.plugins.vanilla.hadoop2.'
plugin_path = 'sahara_plugin_vanilla.plugins.vanilla.'
plugin_hadoop2_path = 'sahara_plugin_vanilla.plugins.vanilla.hadoop2.'
def setUp(self):
super(VersionHandlerTest, self).setUp()
self.cluster = mock.Mock()
self.vh = v_h.VersionHandler()
self.override_config("plugins", ["vanilla"])
pb.setup_plugins()
def test_get_plugin_configs(self):
self.vh.pctx['all_confs'] = 'haha'
@ -74,11 +79,11 @@ class VersionHandlerTest(base.SaharaTestCase):
configure_cluster.assert_called_once_with(self.vh.pctx, self.cluster)
@mock.patch(plugin_path + 'v2_7_5.versionhandler.run')
@mock.patch(plugin_path + 'v2_7_5.versionhandler.s_scripts')
@mock.patch('sahara.swift.swift_helper.install_ssl_certs')
@mock.patch(plugin_path + 'v2_7_5.versionhandler.starting_scripts')
@mock.patch('sahara.plugins.swift_helper.install_ssl_certs')
@mock.patch(plugin_hadoop2_path + 'keypairs.provision_keypairs')
@mock.patch('sahara.plugins.utils.get_instances')
@mock.patch('sahara.utils.cluster.get_instances')
@mock.patch('sahara.plugins.utils.cluster_get_instances')
def test_start_cluster(self, c_get_instances, u_get_instances,
provision_keypairs, install_ssl_certs,
s_scripts, run):
@ -113,7 +118,7 @@ class VersionHandlerTest(base.SaharaTestCase):
cluster,
instances)
@mock.patch('sahara.utils.general.get_by_id')
@mock.patch('sahara.plugins.utils.general.get_by_id')
@mock.patch(plugin_hadoop2_path +
'validation.validate_additional_ng_scaling')
@mock.patch(plugin_hadoop2_path +
@ -141,7 +146,7 @@ class VersionHandlerTest(base.SaharaTestCase):
with testtools.ExpectedException(ex.ClusterCannotBeScaled):
self.vh.validate_scaling(cluster, existing, {})
get_by_id.return_value = r.NodeGroupResource(ng5)
get_by_id.return_value = r.create_node_group_resource(ng5)
with testtools.ExpectedException(ex.ClusterCannotBeScaled):
self.vh.validate_scaling(cluster, {}, additional)
@ -158,8 +163,8 @@ class VersionHandlerTest(base.SaharaTestCase):
self.cluster,
instances)
@mock.patch("sahara.conductor.API.cluster_update")
@mock.patch("sahara.context.ctx")
@mock.patch("sahara.plugins.conductor.cluster_update")
@mock.patch("sahara.plugins.context.ctx")
@mock.patch(plugin_path + 'utils.get_namenode')
@mock.patch(plugin_path + 'utils.get_resourcemanager')
@mock.patch(plugin_path + 'utils.get_historyserver')
@ -202,7 +207,7 @@ class VersionHandlerTest(base.SaharaTestCase):
cluster_update.assert_called_once_with(ctx(), self.cluster,
{'info': info})
@mock.patch("sahara.service.edp.job_utils.get_plugin")
@mock.patch("sahara.plugins.edp.get_plugin")
@mock.patch('sahara.plugins.utils.get_instance')
@mock.patch('os.path.join')
def test_get_edp_engine(self, join, get_instance, get_plugin):

Some files were not shown because too many files have changed in this diff Show More