register_resource accepts a keyword argument, so that subsequent calls to ec.set...
[nepi.git] / src / nepi / execution / ec.py
index f282ac6..5f34f82 100644 (file)
@@ -591,7 +591,7 @@ class ExperimentController(object):
                 rms.append(rm.guid)
         return rms
 
-    def register_resource(self, rtype, guid = None):
+    def register_resource(self, rtype, guid = None, **keywords):
         """ Registers a new ResourceManager of type 'rtype' in the experiment
         
         This method will assign a new 'guid' for the RM, if no guid
@@ -614,6 +614,18 @@ class ExperimentController(object):
         # Store RM
         self._resources[guid] = rm
 
+        ### so we can do something like
+        # node = ec.register_resource("linux::Node",
+        #                             username = user,
+        #                             hostname = host)
+        ### instead of
+        # node = ec.register_resource("linux::Node")
+        # ec.set(node, "username", user)
+        # ec.set(node, "hostname", host)
+
+        for name, value in keywords.items():
+            self.set(guid, name, value)
+
         return guid
 
     def get_attributes(self, guid):