diff options
Diffstat (limited to 'policyhandler/customize')
-rw-r--r-- | policyhandler/customize/__init__.py | 32 | ||||
-rw-r--r-- | policyhandler/customize/customizer.py | 34 | ||||
-rw-r--r-- | policyhandler/customize/customizer_base.py | 63 |
3 files changed, 129 insertions, 0 deletions
diff --git a/policyhandler/customize/__init__.py b/policyhandler/customize/__init__.py new file mode 100644 index 0000000..7449528 --- /dev/null +++ b/policyhandler/customize/__init__.py @@ -0,0 +1,32 @@ +# ================================================================================ +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +"""polymorphic customizer changes the behavior of predefined methods in policy-handler""" + +from .customizer import Customizer + +class CustomizerUser(object): + """unprotected singleton around Customizer""" + _customizer = None + + @staticmethod + def get_customizer(): + """get instance of customizer""" + if not CustomizerUser._customizer: + CustomizerUser._customizer = Customizer() + return CustomizerUser._customizer diff --git a/policyhandler/customize/customizer.py b/policyhandler/customize/customizer.py new file mode 100644 index 0000000..9ab5967 --- /dev/null +++ b/policyhandler/customize/customizer.py @@ -0,0 +1,34 @@ +# ================================================================================ +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +"""contains the Customizer class with method overrides per company specification""" + +from .customizer_base import CustomizerBase + +class Customizer(CustomizerBase): + """ + the Customizer class inherits CustomizerBase that is owned by ONAP + + :Customizer: class is owned by the company that needs to customize the policy-handler + + :override: any method defined in the CustomizerBase class to customize + the behavior of the policy-handler + + see README.md for the sample of the customizer.py + """ + pass diff --git a/policyhandler/customize/customizer_base.py b/policyhandler/customize/customizer_base.py new file mode 100644 index 0000000..c98a9eb --- /dev/null +++ b/policyhandler/customize/customizer_base.py @@ -0,0 +1,63 @@ +# ================================================================================ +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +""" +contains the base class :CustomizerBase: +that defines the signatures and default behavior of the methods called by the policy-handler + +the methods are expected to be overriden by the child class Cutomizer that is company specific + +:do NOT change: this class and/or this file - it is owned by ONAP +""" + +import logging + +class CustomizerBase(object): + """ + base class for Customizer class + + do NOT change this class and/or this file - it is owned by ONAP + + policy-hanlder is using the instance of the child Customizer class to get the overriden methods + + the methods defined in this class are the placeholders and are expected + to be overriden by the Customizer class + """ + + def __init__(self): + """base class for customization contains the default methods""" + self._logger = logging.getLogger("policy_handler.customizer") + self._logger.info("created customizer") + + def get_service_url(self, audit, service_name, service): + """returns the service url when called from DiscoveryClient""" + service_url = "http://{0}:{1}".format( + service.get("ServiceAddress", ""), service.get("ServicePort", "")) + + info = "no customization for service_url: {0} on {1}".format(service_url, service_name) + self._logger.info(info) + audit.info(info) + return service_url + + def get_deploy_handler_kwargs(self, audit): + """returns the optional dict-kwargs for requests.post to deploy_handler""" + info = "no optional kwargs for requests.post to deploy_handler" + self._logger.info(info) + audit.info(info) + kwargs = {} + return kwargs |