aboutsummaryrefslogtreecommitdiffstats
path: root/policyhandler/customize
diff options
context:
space:
mode:
Diffstat (limited to 'policyhandler/customize')
-rw-r--r--policyhandler/customize/__init__.py32
-rw-r--r--policyhandler/customize/customizer.py35
-rw-r--r--policyhandler/customize/customizer_base.py62
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..22bf60e
--- /dev/null
+++ b/policyhandler/customize/customizer.py
@@ -0,0 +1,35 @@
+# ================================================================================
+# 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
+ """
+ def __init__(self):
+ """class that contains the customization"""
+ super(Customizer, self).__init__()
diff --git a/policyhandler/customize/customizer_base.py b/policyhandler/customize/customizer_base.py
new file mode 100644
index 0000000..97e1550
--- /dev/null
+++ b/policyhandler/customize/customizer_base.py
@@ -0,0 +1,62 @@
+# ================================================================================
+# 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