Add VIM create Workflow (exceptions)

Change-Id: I4cbf9d1d5c3679ddd946fe4200fe9cd9c188c147
Signed-off-by: Patricia Reinoso <patricia.reinoso@canonical.com>
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
diff --git a/osm_lcm/nglcm.py b/osm_lcm/nglcm.py
index ee758cb..6c6f196 100644
--- a/osm_lcm/nglcm.py
+++ b/osm_lcm/nglcm.py
@@ -24,11 +24,17 @@
 import yaml
 
 from osm_common.dbbase import DbException
+from osm_common.temporal_constants import LCM_TASK_QUEUE
 from osm_lcm.data_utils.database.database import Database
 from osm_lcm.data_utils.lcm_config import LcmCfg
 from osm_lcm.lcm_utils import LcmException
 from os import path
-from temporalio import workflow
+from osm_lcm.temporal.vim_activities import VimDbActivity, JujuPaasConnector
+from osm_lcm.temporal.vim_workflows import (
+    VimCreateWorkflow,
+    VimDeleteWorkflow,
+    VimUpdateWorkflow,
+)
 from temporalio.client import Client
 from temporalio.worker import Worker
 
@@ -114,37 +120,32 @@
         self.logger.critical("starting osm/nglcm")
 
     async def start(self):
-        # do some temporal stuff here
         temporal_api = (
             f"{self.main_config.temporal.host}:{str(self.main_config.temporal.port)}"
         )
-        self.logger.info(f"Attempting to register with Temporal at {temporal_api}")
         client = await Client.connect(temporal_api)
+        data_activity_instance = VimDbActivity(self.db)
+        paas_connector_instance = JujuPaasConnector(self.db)
 
-        task_queue = "lcm-task-queue"
-        workflows = [
-            Heartbeat,
+        workflows = [VimCreateWorkflow, VimDeleteWorkflow, VimUpdateWorkflow]
+        activities = [
+            data_activity_instance.update_vim_operation_state,
+            data_activity_instance.update_vim_state,
+            data_activity_instance.delete_vim_record,
+            paas_connector_instance.test_vim_connectivity,
         ]
-        activities = []
 
         worker = Worker(
-            client, task_queue=task_queue, workflows=workflows, activities=activities
+            client,
+            task_queue=LCM_TASK_QUEUE,
+            workflows=workflows,
+            activities=activities,
         )
 
-        self.logger.info(f"Registered for queue {task_queue}")
-        self.logger.info(f"Registered workflows {workflows}")
-        self.logger.info(f"Registered activites {activities}")
-
+        self.logger.info("Starting LCM temporal worker")
         await worker.run()
 
 
-@workflow.defn
-class Heartbeat:
-    @workflow.run
-    async def run(self) -> str:
-        return "alive"
-
-
 if __name__ == "__main__":
     try:
         opts, args = getopt.getopt(