diff --git a/n2vc/vnf.py b/n2vc/vnf.py
index 7244b22..899e407 100644
--- a/n2vc/vnf.py
+++ b/n2vc/vnf.py
@@ -373,6 +373,12 @@
                 raise
 
     async def ExecutePrimitive(self, model_name, application_name, primitive, callback, *callback_args, **params):
+        """
+        Queue the execution of a primitive
+
+        returns the UUID of the executed primitive
+        """
+        uuid = None
         try:
             if not self.authenticated:
                 await self.login()
@@ -392,11 +398,12 @@
                     if unit:
                         self.log.debug("Executing primitive {}".format(primitive))
                         action = await unit.run_action(primitive, **params)
-                        # action = await action.wait()
+                        uuid = action.id
                 await model.disconnect()
         except Exception as e:
             self.log.debug("Caught exception while executing primitive: {}".format(e))
             raise e
+        return uuid
 
     async def RemoveCharms(self, model_name, application_name, callback=None, *callback_args):
         try:
