Bug that andy found...
authorSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 16 Jul 2009 20:08:58 +0000 (20:08 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 16 Jul 2009 20:08:58 +0000 (20:08 +0000)
sfa/methods/create_slice.py
sfa/methods/get_resources.py
sfa/rspecs/aggregates/rspec_manager_max.py

index 73b3d42..906bf63 100644 (file)
@@ -40,7 +40,7 @@ class create_slice(Method):
             slices.create_slice(hrn, rspec)    
         else:
             # To clean up after July 21 - SB    
-            rspec_manager = __import__("sfa.rspecs.aggregates.rspec_manager_"+sfa_aggregate_type)
+            rspec_manager = __import__("sfa.rspecs.aggregates.rspec_manager_"+sfa_aggregate_type, fromlist = ["sfa.rspecs.aggregates"])
             rspec = rspec_manager.create_slice(self.api, hrn, rspec)
         
         return 1 
index a001b35..7b56374 100644 (file)
@@ -43,7 +43,7 @@ class get_resources(Method):
                 rspec = nodes['rspec']
         else:
             # To clean up after July 21 - SB    
-            rspec_manager = __import__("sfa.rspecs.aggregates.rspec_manager_"+sfa_aggregate_type)
+            rspec_manager = __import__("sfa.rspecs.aggregates.rspec_manager_"+sfa_aggregate_type, fromlist = ["sfa.rspecs.aggregates"])
             rspec = rspec_manager.get_rspec(hrn)
         
         return rspec
index d3cb295..b937a75 100644 (file)
@@ -53,103 +53,104 @@ def collapse_alloc_dict(d):
         ret.extend(d[k])
     return ret
 
-def bootstrap_slice(api, hrn, added_nodes, deleted_nodes):    
-        # This code is taken from slices.py
-        # To clean up after 21 July
-        # Get the slice record from geni
-        slice = {}
-        registries = Registries(api)
-        registry = registries[self.api.hrn]
-        credential = self.api.getCredential()
-        records = registry.resolve(credential, hrn)
-        for record in records:
-            if record.get_type() in ['slice']:
-                slice = record.as_dict()
-        if not slice:
-            raise RecordNotFound(hrn)   
-
-        # Make sure slice exists at plc, if it doesnt add it
-        slicename = hrn_to_pl_slicename(hrn)
-        slices = api.plshell.GetSlices(api.plauth, [slicename], ['node_ids'])
-        if not slices:
-            parts = slicename.split("_")
-            login_base = parts[0]
-            # if site doesnt exist add it
-            sites = api.plshell.GetSites(api.plauth, [login_base])
-            if not sites:
-                authority = get_authority(hrn)
-                site_records = registry.resolve(credential, authority)
-                site_record = {}
-                if not site_records:
-                    raise RecordNotFound(authority)
-                site_record = site_records[0]
-                site = site_record.as_dict()
-                
-                 # add the site
-                site.pop('site_id')
-                site_id = api.plshell.AddSite(api.plauth, site)
-            else:
-                site = sites[0]
-            
-            slice_fields = {}
-            slice_keys = ['name', 'url', 'description']
-            for key in slice_keys:
-                if key in slice and slice[key]:
-                    slice_fields[key] = slice[key]  
-            api.plshell.AddSlice(api.plauth, slice_fields)
-            slice = slice_fields
-            slice['node_ids'] = 0
-        else:
-            slice = slices[0]    
-        # get the list of valid slice users from the registry and make 
-        # they are added to the slice 
-        researchers = record.get('researcher', [])
-        for researcher in researchers:
-            person_record = {}
-            person_records = registry.resolve(credential, researcher)
-            for record in person_records:
-                if record.get_type() in ['user']:
-                    person_record = record
-            if not person_record:
-                pass
-            person_dict = person_record.as_dict()
-            persons = api.plshell.GetPersons(api.plauth, [person_dict['email']], ['person_id', 'key_ids'])
-
-            # Create the person record 
-            if not persons:
-                person_id=api.plshell.AddPerson(api.plauth, person_dict)
-
-               # The line below enables the user account on the remote aggregate soon after it is created.
-               # without this the user key is not transfered to the slice (as GetSlivers returns key of only enabled users),
-               # which prevents the user from login to the slice. We may do additional checks before enabling the user.
-
-               api.plshell.UpdatePerson(api.plauth, person_id, {'enabled' : True})
-                key_ids = []
-            else:
-                key_ids = persons[0]['key_ids']
-
-            api.plshell.AddPersonToSlice(api.plauth, person_dict['email'], slicename)        
-
-            # Get this users local keys
-            keylist = api.plshell.GetKeys(api.plauth, key_ids, ['key'])
-            keys = [key['key'] for key in keylist]
-
-            # add keys that arent already there 
-            for personkey in person_dict['keys']:
-                if personkey not in keys:
-                    key = {'key_type': 'ssh', 'key': personkey}
-                    api.plshell.AddPersonKey(api.plauth, person_dict['email'], key)
-
-        # find out where this slice is currently running
-        nodelist = api.plshell.GetNodes(api.plauth, slice['node_ids'], ['hostname'])
-        hostnames = [node['hostname'] for node in nodelist]
-
-        api.plshell.AddSliceToNodes(self.api.plauth, slicename, added_nodes) 
-        api.plshell.DeleteSliceFromNodes(self.api.plauth, slicename, deleted_nodes)
-
-        return 1
+#def bootstrap_slice(api, hrn, added_nodes, deleted_nodes):    
+#        # This code is taken from slices.py
+#        # To clean up after 21 July
+#        # Get the slice record from geni
+#        slice = {}
+#        registries = Registries(api)
+#        registry = registries[self.api.hrn]
+#        credential = self.api.getCredential()
+#        records = registry.resolve(credential, hrn)
+#        for record in records:
+#            if record.get_type() in ['slice']:
+#                slice = record.as_dict()
+#        if not slice:
+#            raise RecordNotFound(hrn)   
+#
+#        # Make sure slice exists at plc, if it doesnt add it
+#        slicename = hrn_to_pl_slicename(hrn)
+#        slices = api.plshell.GetSlices(api.plauth, [slicename], ['node_ids'])
+#        if not slices:
+#            parts = slicename.split("_")
+#            login_base = parts[0]
+#            # if site doesnt exist add it
+#            sites = api.plshell.GetSites(api.plauth, [login_base])
+#            if not sites:
+#                authority = get_authority(hrn)
+#                site_records = registry.resolve(credential, authority)
+#                site_record = {}
+#                if not site_records:
+#                    raise RecordNotFound(authority)
+#                site_record = site_records[0]
+#                site = site_record.as_dict()
+#                
+#                 # add the site
+#                site.pop('site_id')
+#                site_id = api.plshell.AddSite(api.plauth, site)
+#            else:
+#                site = sites[0]
+#            
+#            slice_fields = {}
+#            slice_keys = ['name', 'url', 'description']
+#            for key in slice_keys:
+#                if key in slice and slice[key]:
+#                    slice_fields[key] = slice[key]  
+#            api.plshell.AddSlice(api.plauth, slice_fields)
+#            slice = slice_fields
+#            slice['node_ids'] = 0
+#        else:
+#            slice = slices[0]    
+#        # get the list of valid slice users from the registry and make 
+#        # they are added to the slice 
+#        researchers = record.get('researcher', [])
+#        for researcher in researchers:
+#            person_record = {}
+#            person_records = registry.resolve(credential, researcher)
+#            for record in person_records:
+#                if record.get_type() in ['user']:
+#                    person_record = record
+#            if not person_record:
+#                pass
+#            person_dict = person_record.as_dict()
+#            persons = api.plshell.GetPersons(api.plauth, [person_dict['email']], ['person_id', 'key_ids'])
+#
+#            # Create the person record 
+#            if not persons:
+#                person_id=api.plshell.AddPerson(api.plauth, person_dict)
+#
+#        # The line below enables the user account on the remote aggregate soon after it is created.
+#        # without this the user key is not transfered to the slice (as GetSlivers returns key of only enabled users),
+#        # which prevents the user from login to the slice. We may do additional checks before enabling the user.
+#
+#        api.plshell.UpdatePerson(api.plauth, person_id, {'enabled' : True})
+#                #key_ids = []
+#            #else:
+#                #key_ids = persons[0]['key_ids']
+#
+#            api.plshell.AddPersonToSlice(api.plauth, person_dict['email'], slicename)        
+#
+#            # Get this users local keys
+#            keylist = api.plshell.GetKeys(api.plauth, key_ids, ['key'])
+#            keys = [key['key'] for key in keylist]
+#
+#            # add keys that arent already there 
+#            for personkey in person_dict['keys']:
+#                if personkey not in keys:
+#                    key = {'key_type': 'ssh', 'key': personkey}
+#                    api.plshell.AddPersonKey(api.plauth, person_dict['email'], key)
+#
+#        # find out where this slice is currently running
+#        nodelist = api.plshell.GetNodes(api.plauth, slice['node_ids'], ['hostname'])
+#        hostnames = [node['hostname'] for node in nodelist]
+#
+#        api.plshell.AddSliceToNodes(self.api.plauth, slicename, added_nodes) 
+#        api.plshell.DeleteSliceFromNodes(self.api.plauth, slicename, deleted_nodes)
+#
+#        return 1
 
 def alloc_links(api, links_to_add, links_to_drop, foo):
+    return True
 
 def alloc_nodes(api,hrn, links_to_add, links_to_delete):