FIT IoT-Lab - fixed create user on the fly if coming from trusted Federation
[sfa.git] / sfa / iotlab / iotlabshell.py
index becdbf5..ac60097 100644 (file)
@@ -109,7 +109,7 @@ class IotLABShell(object):
 
     def get_reserved_nodes(self):
         """
-        Get all OAR jobs with state Waiting or Running.
+        Get all OAR jobs not terminated.
 
         :Example:
         {"total":"1907",
@@ -128,7 +128,9 @@ class IotLABShell(object):
         """
         logger.warning("iotlashell get_reserved_nodes")
         reserved_nodes_dict = {}
-        request = 'admin/experiments?state=Running,Waiting'
+        request = ('admin/experiments?state='
+                   'Running,Waiting,toAckReservation,'
+                   'toLaunch,Launching')
         try:
             experiments = self.api.method(request)
         except HTTPError as err:
@@ -136,11 +138,6 @@ class IotLABShell(object):
                            err.reason)
             return {'error': err.reason}
         for exp in experiments['items']:
-            # BUG IN OAR REST API : job with reservation didn't return
-            # resources attribute list. We use another request for
-            # finding job resources
-            exp_nodes = self.api.method('admin/experiments/%d' % exp['id'])
-            exp['resources'] = exp_nodes['nodes']
             # BUG ASAP jobs without date information
             if exp['date'] == "as soon as possible":
                 exp['date'] = 0
@@ -162,7 +159,7 @@ class IotLABShell(object):
         user['email'] = email
         user['sshPublicKey'] = slice_user['keys'][0]
         # ex : onelab.inria
-        user['structure'] = slice_user['slice_record']['authority']
+        user['structure'] = slice_user['urn'].split('+')[1].replace(':','.')
         email = (email.split('@'))[0]
         user['firstName'] = email.split('.')[0]
         try: