from osm_lcm import ns
from osm_lcm import vim_sdn
from osm_lcm import netslice
-from osm_lcm import ROclient
+from osm_lcm.ng_ro import NgRoException, NgRoClient
+from osm_lcm.ROclient import ROClient, ROClientException
-from time import time, sleep
+from time import time
from osm_lcm.lcm_utils import versiontuple, LcmException, TaskRegistry, LcmExceptionExit
from osm_lcm import version as lcm_version, version_date as lcm_version_date
config = self.read_config_file(config_file)
self.config = config
self.config["ro_config"] = {
- "endpoint_url": "http://{}:{}/openmano".format(config["RO"]["host"], config["RO"]["port"]),
+ "ng": config["RO"].get("ng", False),
+ "uri": config["RO"].get("uri"),
"tenant": config.get("tenant", "osm"),
- "logger_name": "lcm.ROclient",
- "loglevel": "ERROR",
+ "logger_name": "lcm.roclient",
+ "loglevel": config["RO"].get("loglevel", "ERROR"),
}
+ if not self.config["ro_config"]["uri"]:
+ if not self.config["ro_config"]["ng"]:
+ self.config["ro_config"]["uri"] = "http://{}:{}/openmano".format(config["RO"]["host"],
+ config["RO"]["port"])
+ else:
+ self.config["ro_config"]["uri"] = "http://{}:{}/ro".format(config["RO"]["host"], config["RO"]["port"])
self.loop = loop or asyncio.get_event_loop()
last_error = None
while True:
try:
- ro_server = ROclient.ROClient(self.loop, **self.config["ro_config"])
+ if self.config["ro_config"].get("ng"):
+ ro_server = NgRoClient(self.loop, **self.config["ro_config"])
+ else:
+ ro_server = ROClient(self.loop, **self.config["ro_config"])
ro_version = await ro_server.get_version()
if versiontuple(ro_version) < versiontuple(min_RO_version):
raise LcmException("Not compatible osm/RO version '{}'. Needed '{}' or higher".format(
ro_version, min_RO_version))
self.logger.info("Connected to RO version {}".format(ro_version))
return
- except ROclient.ROClientException as e:
+ except (ROClientException, NgRoException) as e:
tries -= 1
- error_text = "Error while connecting to RO on {}: {}".format(self.config["ro_config"]["endpoint_url"],
- e)
+ error_text = "Error while connecting to RO on {}: {}".format(self.config["ro_config"]["uri"], e)
if tries <= 0:
self.logger.critical(error_text)
raise LcmException(error_text)
except Exception as e:
self.logger.error("Cannot write into '{}' for healthcheck: {}".format(health_check_file, e))
return
+ elif topic == "pla":
+ if command == "placement":
+ self.ns.update_nsrs_with_pla_result(params)
+ return
elif topic == "k8scluster":
if command == "create" or command == "created":
k8scluster_id = params.get("_id")
self.first_start = True
while self.consecutive_errors < 10:
try:
- topics = ("ns", "vim_account", "wim_account", "sdn", "nsi", "k8scluster", "k8srepo")
+ topics = ("ns", "vim_account", "wim_account", "sdn", "nsi", "k8scluster", "k8srepo", "pla")
topics_admin = ("admin", )
await asyncio.gather(
self.msg.aioread(topics, self.loop, self.kafka_read_callback),
# --log-socket-port PORT: send logs using this port (default: 9022)")
-def health_check():
- retry = 2
- while retry:
- retry -= 1
- try:
- with open(health_check_file, "r") as f:
- last_received_ping = f.read()
-
- if time() - float(last_received_ping) < Lcm.ping_interval_pace + 10:
- exit(0)
- except Exception:
- pass
- if retry:
- sleep(6)
- exit(1)
-
-
if __name__ == '__main__':
try:
- print("SYS.PATH='{}'".format(sys.path))
+ # print("SYS.PATH='{}'".format(sys.path))
# load parameters and configuration
# -h
# -c value
elif o in ("-c", "--config"):
config_file = a
elif o == "--health-check":
- health_check()
+ from osm_lcm.lcm_hc import health_check
+ health_check(health_check_file, Lcm.ping_interval_pace)
# elif o == "--log-socket-port":
# log_socket_port = a
# elif o == "--log-socket-host":