def _sync_namespace_project(self):
        """Sync vnc project objects with K8s namespace object.

        This method walks vnc project local cache and validates that
        a kubernetes namespace object exists for this project.
        If a kubernetes namespace object is not found for this project,
        then construct and simulates a delete event for the namespace,
        so the vnc project can be cleaned up.
        """
        for project in ProjectKM.objects():
            k8s_namespace_uuid = project.get_k8s_namespace_uuid()
            # Proceed only if this project is tagged with a k8s namespace.
            if k8s_namespace_uuid and not\
                   self._get_namespace(k8s_namespace_uuid):
                event = {}
                dict_object = {}
                dict_object['kind'] = 'Namespace'
                dict_object['metadata'] = {}
                dict_object['metadata']['uid'] = k8s_namespace_uuid
                dict_object['metadata'][
                    'name'] = project.get_k8s_namespace_name()

                event['type'] = 'DELETED'
                event['object'] = dict_object
                self._queue.put(event)
 def _enqueue_delete_namespace(self, namespace_name, ns_uuid):
     ns_delete_event = self.create_delete_namespace_event(
         namespace_name, ns_uuid)
     NamespaceKM.delete(ns_uuid)
     for project in ProjectKM.objects():
         k8s_namespace_name = project.get_k8s_namespace_name()
         if k8s_namespace_name == namespace_name:
             ProjectKM.delete(project.uuid)
     self.enqueue_event(ns_delete_event)
 def _enqueue_delete_namespace(self, namespace_name, ns_uuid):
     ns_delete_event = self.create_delete_namespace_event(
         namespace_name, ns_uuid)
     NamespaceKM.delete(ns_uuid)
     for project in ProjectKM.objects():
         k8s_namespace_name = project.get_k8s_namespace_name()
         if k8s_namespace_name == namespace_name:
             ProjectKM.delete(project.uuid)
     self.enqueue_event(ns_delete_event)
Exemplo n.º 4
0
    def _sync_namespace_project(self):
        """Sync vnc project objects with K8s namespace object.

        This method walks vnc project local cache and validates that
        a kubernetes namespace object exists for this project.
        If a kubernetes namespace object is not found for this project,
        then construct and simulates a delete event for the namespace,
        so the vnc project can be cleaned up.
        """
        for project in ProjectKM.objects():
            k8s_namespace_uuid = project.get_k8s_namespace_uuid()
            # Proceed only if this project is tagged with a k8s namespace.
            if k8s_namespace_uuid and not\
                   self._get_namespace(k8s_namespace_uuid):
                event = {}
                dict_object = {}
                dict_object['kind'] = 'Namespace'
                dict_object['metadata'] = {}
                dict_object['metadata']['uid'] = k8s_namespace_uuid
                dict_object['metadata']['name'] = project.get_k8s_namespace_name()

                event['type'] = 'DELETED'
                event['object'] = dict_object
                self._queue.put(event)