Feature 7184 New Generation RO enhancemnt

- Adding ssh-key injection
- Adding parameter instantiation to NG-RO
- Removing for NG-RO vim creation and edition
- Autodetect if it is old RO or new generatio RO
- Provide cloud init text for new generatio RO
- scaling for new generation RO
- Adding sdn creation info at new generation RO

Change-Id: I322c2a8989b58e89ad981926f11cfdd3e630b75a
Signed-off-by: tierno <alfonso.tiernosepulveda@telefonica.com>
diff --git a/osm_lcm/vim_sdn.py b/osm_lcm/vim_sdn.py
index 7c774d2..a44aa9b 100644
--- a/osm_lcm/vim_sdn.py
+++ b/osm_lcm/vim_sdn.py
@@ -142,7 +142,6 @@
             operation_state = 'COMPLETED'
             operation_details = 'Done'
 
-            # await asyncio.sleep(15)   # TODO remove. This is for test
             self.logger.debug(logging_text + "Exit Ok VIM account created at RO_vim_account_id={}".format(desc["uuid"]))
             return
 
@@ -228,7 +227,7 @@
                 vim_RO.pop("vim_password", None)
                 if RO_sdn_id:
                     vim_RO["config"]["sdn-controller"] = RO_sdn_id
-                # TODO make a deep update of sdn-port-mapping 
+                # TODO make a deep update of sdn-port-mapping
                 if vim_RO:
                     await RO.edit("vim", RO_vim_id, descriptor=vim_RO)
 
@@ -319,31 +318,31 @@
         try:
             # wait for any previous tasks in process
             await self.lcm_tasks.waitfor_related_HA('vim', 'delete', op_id)
+            if not self.ro_config.get("ng"):
+                db_vim = self.db.get_one("vim_accounts", {"_id": vim_id})
+                if db_vim.get("_admin") and db_vim["_admin"].get("deployed") and db_vim["_admin"]["deployed"].get("RO"):
+                    RO_vim_id = db_vim["_admin"]["deployed"]["RO"]
+                    RO = ROclient.ROClient(self.loop, **self.ro_config)
+                    step = "Detaching vim from RO tenant"
+                    try:
+                        await RO.detach("vim_account", RO_vim_id)
+                    except ROclient.ROClientException as e:
+                        if e.http_code == 404:  # not found
+                            self.logger.debug(logging_text + "RO_vim_id={} already detached".format(RO_vim_id))
+                        else:
+                            raise
 
-            db_vim = self.db.get_one("vim_accounts", {"_id": vim_id})
-            if db_vim.get("_admin") and db_vim["_admin"].get("deployed") and db_vim["_admin"]["deployed"].get("RO"):
-                RO_vim_id = db_vim["_admin"]["deployed"]["RO"]
-                RO = ROclient.ROClient(self.loop, **self.ro_config)
-                step = "Detaching vim from RO tenant"
-                try:
-                    await RO.detach("vim_account", RO_vim_id)
-                except ROclient.ROClientException as e:
-                    if e.http_code == 404:  # not found
-                        self.logger.debug(logging_text + "RO_vim_id={} already detached".format(RO_vim_id))
-                    else:
-                        raise
-
-                step = "Deleting vim from RO"
-                try:
-                    await RO.delete("vim", RO_vim_id)
-                except ROclient.ROClientException as e:
-                    if e.http_code == 404:  # not found
-                        self.logger.debug(logging_text + "RO_vim_id={} already deleted".format(RO_vim_id))
-                    else:
-                        raise
-            else:
-                # nothing to delete
-                self.logger.error(logging_text + "Nothing to remove at RO")
+                    step = "Deleting vim from RO"
+                    try:
+                        await RO.delete("vim", RO_vim_id)
+                    except ROclient.ROClientException as e:
+                        if e.http_code == 404:  # not found
+                            self.logger.debug(logging_text + "RO_vim_id={} already deleted".format(RO_vim_id))
+                        else:
+                            raise
+                else:
+                    # nothing to delete
+                    self.logger.debug(logging_text + "Nothing to remove at RO")
             self.db.del_one("vim_accounts", {"_id": vim_id})
             db_vim = None
             self.logger.debug(logging_text + "Exit Ok")