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: v10.0.0~2 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;h=6bc26cffde19423a405bc0c7a95757afd37adfa2;p=osm%2FMON.git Fix bug 1535 to allow url option for onos_vpls SDNC Change-Id: I81445d4fff17141beeb350ed4161baa8a0f1c9e9 Signed-off-by: garciadeblas (cherry picked from commit 90938904e566366535283e518b0bcc1dd9f8e366) --- diff --git a/osm_mon/collector/infra_collectors/onos.py b/osm_mon/collector/infra_collectors/onos.py index ccd66d5..1798f8b 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() @@ -54,14 +66,12 @@ class OnosInfraCollector(BaseSdncInfraCollector): def is_sdnc_ok(self) -> bool: try: - ip = self.sdnc["ip"] - port = self.sdnc["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"] ) - # TODO: Add support for https - url = "http://{}:{}/onos/v1/devices".format(ip, port) + requests.get(url, auth=HTTPBasicAuth(user, password)) return True except Exception: