Added import slices based on the user name.
authorSandrine Avakian <sandrine.avakian@inria.fr>
Wed, 16 Nov 2011 10:30:12 +0000 (11:30 +0100)
committerSandrine Avakian <sandrine.avakian@inria.fr>
Wed, 16 Nov 2011 10:30:12 +0000 (11:30 +0100)
sfa/senslab/slab-import.py

index 57cfd30..ced9980 100644 (file)
@@ -84,9 +84,34 @@ def import_person(person):
     else:
         existing_record = existing_records[0]
         person['record_id'] = existing_record['record_id']
-        table.update(person)      
-        
+        table.update(person)
+              
+def init_slice_record(person):
+    slices_list = []
+    dflt_slice = { 'authority': None, 'gid': None,  'record_id':None ,'peer_authority': None, 'type':'slice','pointer':-1, 'date_created':None, 'last_updated': None}
+  
+    def_slice = {}
+    def_slice['hrn'] = person['hrn']+'_slice'
+    def_slice.update(dflt_slice)
+    return  def_slice
         
+def import_slice(slice_record):
+
+    pkey = Keypair(create=True)
+    urn = hrn_to_urn(slice['hrn'], 'slice')
+    slice_record['gid'] = AuthHierarchy.create_gid(urn, create_uuid(), pkey)
+    
+    slice_record['authority'] = get_authority(slice['hrn'])
+    
+    existing_records = table.find({'hrn': hrn, 'type': 'slice'})
+    if not existing_records:
+         print>>sys.stderr, " \r\n \t slab-import : slice record %s inserted" %(slice_record['hrn'])
+        table.insert(slice_record)
+    else:
+        print>>sys.stderr, " \r\n \t slab-import : slice record %s updated" %(slice_record['hrn'])
+        existing_record = existing_records[0]
+        slice_record['record_id'] = existing_record['record_id']
+        table.update(slice_record)        
         
 def delete_record( hrn, type):
     # delete the record
@@ -177,7 +202,11 @@ def main():
     for person in ldap_person_list:
         if person['hrn'] not in existing_hrns or \
             (person['hrn'], 'user') not in existing_records :
-            import_person( person)     
+            import_person( person)
+            init_slice_record(person)
+       
+    
+    
 # import slices
         #for slice_id in site['slice_ids']:
                #print >>sys.stderr, "\r\n\r\n \t ^^^^^^^\\\\\\\\\\\\\\\^^^^^^ slice_id  %s  " %(slice_id)              
@@ -228,7 +257,12 @@ def main():
                 if node['hostname'] == nodename :
                     found = True
                     break 
-                    
+                
+        elif type == 'slice':
+            for person in ldap_person_list:
+                if person['hrn']+'_slice' == record_hrn:
+                    found = True
+                    break           
         else:
             continue