aboutsummaryrefslogtreecommitdiffstats
path: root/apps/pci/optimizers/config/cps.py
diff options
context:
space:
mode:
Diffstat (limited to 'apps/pci/optimizers/config/cps.py')
-rw-r--r--apps/pci/optimizers/config/cps.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/apps/pci/optimizers/config/cps.py b/apps/pci/optimizers/config/cps.py
new file mode 100644
index 0000000..9cf1b1f
--- /dev/null
+++ b/apps/pci/optimizers/config/cps.py
@@ -0,0 +1,72 @@
+# -------------------------------------------------------------------------
+# Copyright (C) 2021 Wipro Limited.
+#
+# 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.
+#
+# -------------------------------------------------------------------------
+#
+
+import json
+
+from apps.pci.optimizers.config.config_client import ConfigClient
+from osdf.config.base import osdf_config
+from osdf.logging.osdf_logging import debug_log
+from osdf.utils.interfaces import RestClient
+
+
+@ConfigClient.register_subclass('cps')
+class Cps(ConfigClient):
+
+ def __init__(self):
+ self.config = osdf_config.deployment
+ username, password = self.config['cpsUsername'], self.config['cpsPassword']
+ headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ }
+ self.rc = RestClient(userid=username, passwd=password, method="POST",
+ log_func=debug_log.debug, headers=headers)
+
+ def get_cell_list(self, network_id):
+ cell_list_url = '{}/{}'.format(self.config['cpsUrl'], self.config['cpsCellListUrl'])
+ data = {
+ 'inputParameters': {
+ 'regionId': network_id
+ }
+ }
+ response = self.rc.request(url=cell_list_url, data=json.dumps(data))
+ debug_log.debug("cell list response {}".format(response))
+ return sorted([x['idNRCellCU'] for x in response.get('NRCellCU')])
+
+ def get_nbr_list(self, network_id, cell_id):
+ nbr_list_url = '{}/{}'.format(self.config['cpsUrl'], self.config['cpsNbrListUrl'])
+ data = {
+ 'inputParameters': {
+ 'regionId': network_id,
+ 'idNRCellCU': cell_id
+ }
+ }
+ response = self.rc.request(url=nbr_list_url, data=json.dumps(data))
+ debug_log.debug("nbr list response {}".format(response))
+ nbr_list = []
+ for cell_relation in response.get('NRCellRelation'):
+ nbr = {
+ 'targetCellId': cell_relation['attributes']['nRTCI'],
+ 'pciValue': int(cell_relation['attributes']['nRPCI']),
+ 'ho': cell_relation['attributes']['isHOAllowed']
+ }
+ nbr_list.append(nbr)
+
+ debug_log.debug("cell_id {} nbr_list {}".format(cell_id, nbr_list))
+
+ return nbr_list