deprecate the is_enabled call in the driver
[sfa.git] / sfa / plc / pldriver.py
index b9db9b2..33ec00d 100644 (file)
@@ -60,14 +60,6 @@ class PlDriver (Driver):
     ########## registry oriented
     ########################################
 
-    ########## disabled users 
-    def is_enabled (self, record):
-        # the incoming record was augmented already, so 'enabled' should be set
-        if record['type'] == 'user':
-            return record['enabled']
-        # only users can be disabled
-        return True
-
     def augment_records_with_testbed_info (self, sfa_records):
         return self.fill_record_info (sfa_records)
 
@@ -640,6 +632,20 @@ class PlDriver (Driver):
         if len(nodes) == 0:
             raise SliverDoesNotExist("You have not allocated any slivers here") 
 
+        # get login info
+        user = {}
+        if slice['person_ids']:
+            persons = self.shell.GetPersons(slice['person_ids'], ['key_ids'])
+            key_ids = [key_id for person in persons for key_id in person['key_ids']]
+            person_keys = self.shell.GetKeys(key_ids)
+            keys = [key['key'] for key in keys]
+
+            user.update({'urn': slice_urn,
+                         'login': slice['name'],
+                         'protocol': ['ssh'],
+                         'port': ['22'],
+                         'keys': keys})
+
         site_ids = [node['site_id'] for node in nodes]
     
         result = {}
@@ -649,6 +655,7 @@ class PlDriver (Driver):
         result['geni_urn'] = slice_urn
         result['pl_login'] = slice['name']
         result['pl_expires'] = datetime_to_string(utcparse(slice['expires']))
+        result['geni_expires'] = datetime_to_string(utcparse(slice['expires']))
         
         resources = []
         for node in nodes:
@@ -656,10 +663,11 @@ class PlDriver (Driver):
             res['pl_hostname'] = node['hostname']
             res['pl_boot_state'] = node['boot_state']
             res['pl_last_contact'] = node['last_contact']
+            res['geni_expires'] = datetime_to_string(utcparse(slice['expires']))
             if node['last_contact'] is not None:
                 
                 res['pl_last_contact'] = datetime_to_string(utcparse(node['last_contact']))
-            sliver_id = urn_to_sliver_id(slice_urn, slice['slice_id'], node['node_id']) 
+            sliver_id = urn_to_sliver_id(slice_urn, slice['slice_id'], node['node_id'], authority=self.hrn
             res['geni_urn'] = sliver_id
             if node['boot_state'] == 'boot':
                 res['geni_status'] = 'ready'
@@ -668,6 +676,7 @@ class PlDriver (Driver):
                 top_level_status = 'failed' 
                 
             res['geni_error'] = ''
+            res['users'] = [user]  
     
             resources.append(res)
             
@@ -699,7 +708,15 @@ class PlDriver (Driver):
         slices.verify_slice_attributes(slice, requested_attributes, options=options)
         
         # add/remove slice from nodes
-        requested_slivers = [node.get('component_name') for node in rspec.version.get_nodes_with_slivers()]
+        requested_slivers = []
+        for node in rspec.version.get_nodes_with_slivers():
+            hostname = None
+            if node.get('component_name'):
+                hostname = node.get('component_name')
+            elif node.get('component_id'):
+                hostname = xrn_to_hostname(node.get('component_id'))
+            if hostname:
+                requested_slivers.append(hostname)
         nodes = slices.verify_slice_nodes(slice, requested_slivers, peer) 
    
         # add/remove links links