From: garciadeblas Date: Mon, 17 May 2021 16:17:36 +0000 (+0200) Subject: Fix bug 1535 to allow url option for onos_vpls SDNC X-Git-Tag: v9.1.2~1 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=refs%2Fchanges%2F78%2F10978%2F1;p=osm%2FMON.git Fix bug 1535 to allow url option for onos_vpls SDNC Change-Id: I81445d4fff17141beeb350ed4161baa8a0f1c9e9 Signed-off-by: garciadeblas --- diff --git a/osm_mon/collector/infra_collectors/onos.py b/osm_mon/collector/infra_collectors/onos.py index 33a3aa4..3e94558 100644 --- a/osm_mon/collector/infra_collectors/onos.py +++ b/osm_mon/collector/infra_collectors/onos.py @@ -39,6 +39,18 @@ class OnosInfraCollector(BaseSdncInfraCollector): self.common_db = CommonDbClient(config) self.sdnc = self.common_db.get_sdnc(sdnc_id) + def _obtain_url(self, sdnc_dict): + url = sdnc_dict.get("url") + if url: + return url + else: + if not sdnc_dict.get("ip") or not sdnc_dict.get("port"): + raise Exception("You must provide a URL to contact the SDN Controller") + else: + return "http://{}:{}/onos/v1/devices".format( + sdnc_dict["ip"], sdnc_dict["port"] + ) + def collect(self) -> List[Metric]: metrics = [] sdnc_status = self.is_sdnc_ok() @@ -57,14 +69,12 @@ class OnosInfraCollector(BaseSdncInfraCollector): def is_sdnc_ok(self) -> bool: try: - ip = self.sdnc['ip'] - port = self.sdnc['port'] - user = self.sdnc['user'] - password = self.common_db.decrypt_sdnc_password(self.sdnc['password'], - self.sdnc['schema_version'], - self.sdnc['_id']) - # TODO: Add support for https - url = 'http://{}:{}/onos/v1/devices'.format(ip, port) + url = self._obtain_url(self.sdnc) + user = self.sdnc["user"] + password = self.common_db.decrypt_sdnc_password( + self.sdnc["password"], self.sdnc["schema_version"], self.sdnc["_id"] + ) + requests.get(url, auth=HTTPBasicAuth(user, password)) return True except Exception: