Loading src/common/tools/descriptor/Loader.py +44 −5 Original line number Diff line number Diff line Loading @@ -222,13 +222,13 @@ class DescriptorLoader: self.__topologies_add = get_descriptors_add_topologies(self.__topologies) if self.__dummy_mode: self._dummy_mode() self._load_dummy_mode() else: self._normal_mode() self._load_normal_mode() 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. self.__ctx_cli.connect() self._process_descr('context', 'add', self.__ctx_cli.SetContext, Context, self.__contexts_add ) Loading @@ -242,7 +242,7 @@ class DescriptorLoader: self._process_descr('topology', 'update', self.__ctx_cli.SetTopology, Topology, self.__topologies ) #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 assert len(self.__connections) == 0, 'in normal mode, connections should not be set' Loading Loading @@ -321,7 +321,35 @@ class DescriptorLoader: response = self.__ctx_cli.ListSlices(ContextId(**json_context_id(context_uuid))) 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.__dev_cli.connect() self.__svc_cli.connect() Loading @@ -348,6 +376,17 @@ class DescriptorLoader: for context in self.contexts: 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: notifications = [] for entity_name, action_name, num_ok, error_list in results: Loading Loading
src/common/tools/descriptor/Loader.py +44 −5 Original line number Diff line number Diff line Loading @@ -222,13 +222,13 @@ class DescriptorLoader: self.__topologies_add = get_descriptors_add_topologies(self.__topologies) if self.__dummy_mode: self._dummy_mode() self._load_dummy_mode() else: self._normal_mode() self._load_normal_mode() 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. self.__ctx_cli.connect() self._process_descr('context', 'add', self.__ctx_cli.SetContext, Context, self.__contexts_add ) Loading @@ -242,7 +242,7 @@ class DescriptorLoader: self._process_descr('topology', 'update', self.__ctx_cli.SetTopology, Topology, self.__topologies ) #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 assert len(self.__connections) == 0, 'in normal mode, connections should not be set' Loading Loading @@ -321,7 +321,35 @@ class DescriptorLoader: response = self.__ctx_cli.ListSlices(ContextId(**json_context_id(context_uuid))) 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.__dev_cli.connect() self.__svc_cli.connect() Loading @@ -348,6 +376,17 @@ class DescriptorLoader: for context in self.contexts: 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: notifications = [] for entity_name, action_name, num_ok, error_list in results: Loading