Skip to content
Snippets Groups Projects
Commit b0bbbacd authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Common - Tools - Descriptors:

- Added dummy unload mode
parent 8523a11d
No related branches found
No related tags found
2 merge requests!142Release TeraFlowSDN 2.1,!78Fix CI/CD pipeline
...@@ -222,13 +222,13 @@ class DescriptorLoader: ...@@ -222,13 +222,13 @@ class DescriptorLoader:
self.__topologies_add = get_descriptors_add_topologies(self.__topologies) self.__topologies_add = get_descriptors_add_topologies(self.__topologies)
if self.__dummy_mode: if self.__dummy_mode:
self._dummy_mode() self._load_dummy_mode()
else: else:
self._normal_mode() self._load_normal_mode()
return self.__results return self.__results
def _dummy_mode(self) -> None: def _load_dummy_mode(self) -> None:
# Dummy Mode: used to pre-load databases (WebUI debugging purposes) with no smart or automated tasks. # Dummy Mode: used to pre-load databases (WebUI debugging purposes) with no smart or automated tasks.
self.__ctx_cli.connect() self.__ctx_cli.connect()
self._process_descr('context', 'add', self.__ctx_cli.SetContext, Context, self.__contexts_add ) self._process_descr('context', 'add', self.__ctx_cli.SetContext, Context, self.__contexts_add )
...@@ -242,7 +242,7 @@ class DescriptorLoader: ...@@ -242,7 +242,7 @@ class DescriptorLoader:
self._process_descr('topology', 'update', self.__ctx_cli.SetTopology, Topology, self.__topologies ) self._process_descr('topology', 'update', self.__ctx_cli.SetTopology, Topology, self.__topologies )
#self.__ctx_cli.close() #self.__ctx_cli.close()
def _normal_mode(self) -> None: def _load_normal_mode(self) -> None:
# Normal mode: follows the automated workflows in the different components # Normal mode: follows the automated workflows in the different components
assert len(self.__connections) == 0, 'in normal mode, connections should not be set' assert len(self.__connections) == 0, 'in normal mode, connections should not be set'
...@@ -321,7 +321,35 @@ class DescriptorLoader: ...@@ -321,7 +321,35 @@ class DescriptorLoader:
response = self.__ctx_cli.ListSlices(ContextId(**json_context_id(context_uuid))) response = self.__ctx_cli.ListSlices(ContextId(**json_context_id(context_uuid)))
assert len(response.slices) == num_slices assert len(response.slices) == num_slices
def unload(self) -> None: def _unload_dummy_mode(self) -> None:
# Dummy Mode: used to pre-load databases (WebUI debugging purposes) with no smart or automated tasks.
self.__ctx_cli.connect()
for _, slice_list in self.slices.items():
for slice_ in slice_list:
self.__ctx_cli.RemoveSlice(SliceId(**slice_['slice_id']))
for _, service_list in self.services.items():
for service in service_list:
self.__ctx_cli.RemoveService(ServiceId(**service['service_id']))
for link in self.links:
self.__ctx_cli.RemoveLink(LinkId(**link['link_id']))
for device in self.devices:
self.__ctx_cli.RemoveDevice(DeviceId(**device['device_id']))
for _, topology_list in self.topologies.items():
for topology in topology_list:
self.__ctx_cli.RemoveTopology(TopologyId(**topology['topology_id']))
for context in self.contexts:
self.__ctx_cli.RemoveContext(ContextId(**context['context_id']))
#self.__ctx_cli.close()
def _unload_normal_mode(self) -> None:
# Normal mode: follows the automated workflows in the different components
self.__ctx_cli.connect() self.__ctx_cli.connect()
self.__dev_cli.connect() self.__dev_cli.connect()
self.__svc_cli.connect() self.__svc_cli.connect()
...@@ -348,6 +376,17 @@ class DescriptorLoader: ...@@ -348,6 +376,17 @@ class DescriptorLoader:
for context in self.contexts: for context in self.contexts:
self.__ctx_cli.RemoveContext(ContextId(**context['context_id'])) self.__ctx_cli.RemoveContext(ContextId(**context['context_id']))
#self.__ctx_cli.close()
#self.__dev_cli.close()
#self.__svc_cli.close()
#self.__slc_cli.close()
def unload(self) -> None:
if self.__dummy_mode:
self._unload_dummy_mode()
else:
self._unload_normal_mode()
def compose_notifications(results : TypeResults) -> TypeNotificationList: def compose_notifications(results : TypeResults) -> TypeNotificationList:
notifications = [] notifications = []
for entity_name, action_name, num_ok, error_list in results: for entity_name, action_name, num_ok, error_list in results:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment