Bug 1890: Improve Action Execution

Changes exception handling to put the content of the exception
into the ns action result so failures have meaningful output

Change-Id: I361c4ed6b03012cd4432ba72215c99f9aaf45b55
Signed-off-by: Mark Beierl <mark.beierl@canonical.com>
diff --git a/osm_lcm/ns.py b/osm_lcm/ns.py
index b1c027a..6cb46e1 100644
--- a/osm_lcm/ns.py
+++ b/osm_lcm/ns.py
@@ -4990,9 +4990,7 @@
                     break
                 except asyncio.CancelledError:
                     raise
-                except Exception as e:  # asyncio.TimeoutError
-                    if isinstance(e, asyncio.TimeoutError):
-                        e = "Timeout"
+                except Exception as e:
                     retries -= 1
                     if retries >= 0:
                         self.logger.debug(
@@ -5003,7 +5001,9 @@
                         # wait and retry
                         await asyncio.sleep(retries_interval, loop=self.loop)
                     else:
-                        return "FAILED", str(e)
+                        if isinstance(e, asyncio.TimeoutError):
+                            e = N2VCException(message="Timed out waiting for action to complete")
+                        return "FAILED", getattr(e, 'message', repr(e))
 
             return "COMPLETED", output
 
@@ -5338,7 +5338,7 @@
             )
             self.logger.debug(
                 logging_text
-                + " task Done with result {} {}".format(
+                + "Done with result {} {}".format(
                     nslcmop_operation_state, detailed_status
                 )
             )