[49/50] [abbrv] ambari git commit: AMBARI-21064. HDP 3.0 TP - create Service Advisor for Oozie.(vbrodetskyi)
AMBARI-21064. HDP 3.0 TP - create Service Advisor for Oozie.(vbrodetskyi) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1c19200c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1c19200c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1c19200c Branch: refs/heads/branch-feature-AMBARI-12556 Commit: 1c19200cd446159fba94395867184d2d144c48c7 Parents: a2eefe8 Author: Vitaly BrodetskyiAuthored: Wed May 24 01:10:29 2017 +0300 Committer: Vitaly Brodetskyi Committed: Wed May 24 01:10:29 2017 +0300 -- .../OOZIE/4.2.0.3.0/service_advisor.py | 314 +++ 1 file changed, 314 insertions(+) -- http://git-wip-us.apache.org/repos/asf/ambari/blob/1c19200c/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py -- diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py b/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py new file mode 100644 index 000..d1e2b77 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py @@ -0,0 +1,314 @@ +#!/usr/bin/env ambari-python-wrap +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you 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. +""" + +# Python imports +import imp +import os +import traceback +import re +import socket +import fnmatch + + +from resource_management.core.logger import Logger + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +STACKS_DIR = os.path.join(SCRIPT_DIR, '../../../stacks/') +PARENT_FILE = os.path.join(STACKS_DIR, 'service_advisor.py') + +try: + with open(PARENT_FILE, 'rb') as fp: +service_advisor = imp.load_module('service_advisor', fp, PARENT_FILE, ('.py', 'rb', imp.PY_SOURCE)) +except Exception as e: + traceback.print_exc() + print "Failed to load parent" + +class OozieServiceAdvisor(service_advisor.ServiceAdvisor): + + def __init__(self, *args, **kwargs): +self.as_super = super(OozieServiceAdvisor, self) +self.as_super.__init__(*args, **kwargs) + +# Always call these methods +self.modifyMastersWithMultipleInstances() +self.modifyCardinalitiesDict() +self.modifyHeapSizeProperties() +self.modifyNotValuableComponents() +self.modifyComponentsNotPreferableOnServer() +self.modifyComponentLayoutSchemes() + + def modifyMastersWithMultipleInstances(self): +""" +Modify the set of masters with multiple instances. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyCardinalitiesDict(self): +""" +Modify the dictionary of cardinalities. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyHeapSizeProperties(self): +""" +Modify the dictionary of heap size properties. +Must be overriden in child class. +""" +pass + + def modifyNotValuableComponents(self): +""" +Modify the set of components whose host assignment is based on other services. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyComponentsNotPreferableOnServer(self): +""" +Modify the set of components that are not preferable on the server. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyComponentLayoutSchemes(self): +""" +Modify layout scheme dictionaries for components. +The scheme dictionary basically maps the number of hosts to +host index where component should exist. +Must be overriden in child class. +""" +self.componentLayoutSchemes.update({ + 'OOZIE_SERVER': {6: 1, 31: 2, "else": 3}, + }) + + def getServiceComponentLayoutValidations(self, services, hosts): +""" +Get a list of errors. +Must be overriden in child class. +""" + +return [] + + def getServiceConfigurationRecommendations(self, configurations, clusterData, services, hosts): +""" +Entry point. +Must be
ambari git commit: AMBARI-21064. HDP 3.0 TP - create Service Advisor for Oozie.(vbrodetskyi)
Repository: ambari Updated Branches: refs/heads/trunk a2eefe849 -> 1c19200cd AMBARI-21064. HDP 3.0 TP - create Service Advisor for Oozie.(vbrodetskyi) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1c19200c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1c19200c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1c19200c Branch: refs/heads/trunk Commit: 1c19200cd446159fba94395867184d2d144c48c7 Parents: a2eefe8 Author: Vitaly BrodetskyiAuthored: Wed May 24 01:10:29 2017 +0300 Committer: Vitaly Brodetskyi Committed: Wed May 24 01:10:29 2017 +0300 -- .../OOZIE/4.2.0.3.0/service_advisor.py | 314 +++ 1 file changed, 314 insertions(+) -- http://git-wip-us.apache.org/repos/asf/ambari/blob/1c19200c/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py -- diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py b/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py new file mode 100644 index 000..d1e2b77 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/OOZIE/4.2.0.3.0/service_advisor.py @@ -0,0 +1,314 @@ +#!/usr/bin/env ambari-python-wrap +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you 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. +""" + +# Python imports +import imp +import os +import traceback +import re +import socket +import fnmatch + + +from resource_management.core.logger import Logger + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +STACKS_DIR = os.path.join(SCRIPT_DIR, '../../../stacks/') +PARENT_FILE = os.path.join(STACKS_DIR, 'service_advisor.py') + +try: + with open(PARENT_FILE, 'rb') as fp: +service_advisor = imp.load_module('service_advisor', fp, PARENT_FILE, ('.py', 'rb', imp.PY_SOURCE)) +except Exception as e: + traceback.print_exc() + print "Failed to load parent" + +class OozieServiceAdvisor(service_advisor.ServiceAdvisor): + + def __init__(self, *args, **kwargs): +self.as_super = super(OozieServiceAdvisor, self) +self.as_super.__init__(*args, **kwargs) + +# Always call these methods +self.modifyMastersWithMultipleInstances() +self.modifyCardinalitiesDict() +self.modifyHeapSizeProperties() +self.modifyNotValuableComponents() +self.modifyComponentsNotPreferableOnServer() +self.modifyComponentLayoutSchemes() + + def modifyMastersWithMultipleInstances(self): +""" +Modify the set of masters with multiple instances. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyCardinalitiesDict(self): +""" +Modify the dictionary of cardinalities. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyHeapSizeProperties(self): +""" +Modify the dictionary of heap size properties. +Must be overriden in child class. +""" +pass + + def modifyNotValuableComponents(self): +""" +Modify the set of components whose host assignment is based on other services. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyComponentsNotPreferableOnServer(self): +""" +Modify the set of components that are not preferable on the server. +Must be overriden in child class. +""" +# Nothing to do +pass + + def modifyComponentLayoutSchemes(self): +""" +Modify layout scheme dictionaries for components. +The scheme dictionary basically maps the number of hosts to +host index where component should exist. +Must be overriden in child class. +""" +self.componentLayoutSchemes.update({ + 'OOZIE_SERVER': {6: 1, 31: 2, "else": 3}, + }) + + def getServiceComponentLayoutValidations(self, services, hosts): +""" +Get a list of errors. +Must be overriden in child class. +""" + +return [] + + def getServiceConfigurationRecommendations(self, configurations, clusterData,