68999ce9cb
We add a directory v_5_4_0 in cdh plugin, so that we have a choice 5.4.0 when cdh plugin is chosen. Implements: blueprint cdh-5-4-support Change-Id: I05d2082b589eb031b0ce1b5a253dc62a75912e1b
136 lines
3.8 KiB
Python
136 lines
3.8 KiB
Python
# Copyright (c) 2015 Intel Corporation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from oslo_serialization import jsonutils as json
|
|
import six
|
|
|
|
from sahara.plugins.cdh.client import api_client
|
|
|
|
# -- cm config --
|
|
|
|
cm_address = 'localhost'
|
|
cm_port = 7180
|
|
cm_username = 'admin'
|
|
cm_password = 'admin'
|
|
|
|
hdfs_service_name = 'hdfs01'
|
|
yarn_service_name = 'yarn01'
|
|
oozie_service_name = 'oozie01'
|
|
hive_service_name = 'hive01'
|
|
hue_service_name = 'hue01'
|
|
spark_service_name = 'spark_on_yarn01'
|
|
zookeeper_service_name = 'zookeeper01'
|
|
hbase_service_name = 'hbase01'
|
|
flume_service_name = 'flume01'
|
|
sqoop_service_name = 'sqoop01'
|
|
solr_service_name = 'solr01'
|
|
ks_indexer_service_name = 'ks_indexer01'
|
|
impala_service_name = 'impala01'
|
|
sentry_service_name = 'sentry01'
|
|
|
|
|
|
def get_cm_api():
|
|
return api_client.ApiResource(cm_address, server_port=cm_port,
|
|
username=cm_username, password=cm_password)
|
|
|
|
|
|
def get_cluster(api):
|
|
return api.get_all_clusters()[0]
|
|
|
|
|
|
def process_service(service, service_name):
|
|
for role_cfgs in service.get_all_role_config_groups():
|
|
role_cm_cfg = role_cfgs.get_config(view='full')
|
|
role_cfg = parse_config(role_cm_cfg)
|
|
role_name = role_cfgs.roleType.lower()
|
|
write_cfg(role_cfg, '%s-%s.json' % (service_name, role_name))
|
|
|
|
service_cm_cfg = service.get_config(view='full')[0]
|
|
service_cfg = parse_config(service_cm_cfg)
|
|
write_cfg(service_cfg, '%s-service.json' % service_name)
|
|
|
|
|
|
def parse_config(config):
|
|
cfg = []
|
|
for name, value in six.iteritems(config):
|
|
p = {
|
|
'name': value.name,
|
|
'value': value.default,
|
|
'display_name': value.displayName,
|
|
'desc': value.description
|
|
}
|
|
cfg.append(p)
|
|
|
|
return cfg
|
|
|
|
|
|
def write_cfg(cfg, file_name):
|
|
to_write = json.dumps(cfg, sort_keys=True, indent=4,
|
|
separators=(',', ': '))
|
|
|
|
with open(file_name, 'w') as f:
|
|
f.write(to_write)
|
|
|
|
|
|
def main():
|
|
client = get_cm_api()
|
|
cluster = get_cluster(client)
|
|
|
|
hdfs = cluster.get_service(hdfs_service_name)
|
|
process_service(hdfs, 'hdfs')
|
|
|
|
yarn = cluster.get_service(yarn_service_name)
|
|
process_service(yarn, 'yarn')
|
|
|
|
oozie = cluster.get_service(oozie_service_name)
|
|
process_service(oozie, 'oozie')
|
|
|
|
hive = cluster.get_service(hive_service_name)
|
|
process_service(hive, 'hive')
|
|
|
|
hue = cluster.get_service(hue_service_name)
|
|
process_service(hue, 'hue')
|
|
|
|
spark = cluster.get_service(spark_service_name)
|
|
process_service(spark, 'spark')
|
|
|
|
zookeeper = cluster.get_service(zookeeper_service_name)
|
|
process_service(zookeeper, 'zookeeper')
|
|
|
|
hbase = cluster.get_service(hbase_service_name)
|
|
process_service(hbase, 'hbase')
|
|
|
|
flume = cluster.get_service(flume_service_name)
|
|
process_service(flume, 'flume')
|
|
|
|
sqoop = cluster.get_service(sqoop_service_name)
|
|
process_service(sqoop, 'sqoop')
|
|
|
|
solr = cluster.get_service(solr_service_name)
|
|
process_service(solr, 'solr')
|
|
|
|
ks_indexer = cluster.get_service(ks_indexer_service_name)
|
|
process_service(ks_indexer, 'ks_indexer')
|
|
|
|
impala = cluster.get_service(impala_service_name)
|
|
process_service(impala, 'impala')
|
|
|
|
sentry = cluster.get_service(sentry_service_name)
|
|
process_service(sentry, 'sentry')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|