Addition of PaaS

Change-Id: Ieb685b48aba87585f0d5b8bd962265cee5d486ea
Signed-off-by: Patricia Reinoso <patricia.reinoso@canonical.com>
diff --git a/osm_lcm/lcm.py b/osm_lcm/lcm.py
index 273edc1..5bbeade 100644
--- a/osm_lcm/lcm.py
+++ b/osm_lcm/lcm.py
@@ -29,7 +29,7 @@
 import getopt
 import sys
 
-from osm_lcm import ns, vim_sdn, netslice
+from osm_lcm import ns, paas, vim_sdn, netslice
 from osm_lcm.ng_ro import NgRoException, NgRoClient
 from osm_lcm.ROclient import ROClient, ROClientException
 
@@ -121,7 +121,9 @@
             self.netslice
         ) = (
             self.vim
-        ) = self.wim = self.sdn = self.k8scluster = self.vca = self.k8srepo = None
+        ) = (
+            self.wim
+        ) = self.sdn = self.k8scluster = self.vca = self.k8srepo = self.paas = None
 
         # logging
         log_format_simple = (
@@ -315,6 +317,23 @@
                 wait_time = 2 if not first_start else 5
                 await asyncio.sleep(wait_time, loop=self.loop)
 
+    def _kafka_read_paas(self, command, params, order_id):
+        paas_id = params.get("_id")
+
+        if command == "created":
+            task = asyncio.ensure_future(self.paas.create(params, order_id))
+            self.lcm_tasks.register("paas", paas_id, order_id, "paas_create", task)
+        elif command == "edited":
+            task = asyncio.ensure_future(self.paas.edit(params, order_id))
+            self.lcm_tasks.register("paas", paas_id, order_id, "paas_edit", task)
+        elif command == "delete":
+            task = asyncio.ensure_future(self.paas.delete(params, order_id))
+            self.lcm_tasks.register("paas", paas_id, order_id, "paas_delete", task)
+        elif command == "deleted":
+            self.logger.debug("PaaS {} already deleted from DB".format(paas_id))
+        else:
+            self.logger.error("Invalid command {} for PaaS topic".format(command))
+
     def kafka_read_callback(self, topic, command, params):
         order_id = 1
 
@@ -383,6 +402,9 @@
                 task = asyncio.ensure_future(self.vca.delete(params, order_id))
                 self.lcm_tasks.register("vca", vca_id, order_id, "vca_delete", task)
                 return
+        elif topic == "paas":
+            self._kafka_read_paas(command, params, order_id)
+            return
         elif topic == "k8srepo":
             if command == "create" or command == "created":
                 k8srepo_id = params.get("_id")
@@ -672,6 +694,7 @@
                     "nsi",
                     "k8scluster",
                     "vca",
+                    "paas",
                     "k8srepo",
                     "pla",
                 )
@@ -727,6 +750,7 @@
             self.msg, self.lcm_tasks, self.config, self.loop
         )
         self.vca = vim_sdn.VcaLcm(self.msg, self.lcm_tasks, self.config, self.loop)
+        self.paas = paas.PaasLcm(self.msg, self.lcm_tasks, self.config, self.loop)
         self.k8srepo = vim_sdn.K8sRepoLcm(
             self.msg, self.lcm_tasks, self.config, self.loop
         )