passing slice hrn to slice control methods
[sfa.git] / geni / util / slices.py
index 5bfc5ee..8486057 100644 (file)
@@ -16,7 +16,10 @@ class Slices(SimpleStorage):
         self.api = api
         self.ttl = ttl
         self.threshold = None
-        self.slices_file = os.sep.join([self.api.server_basedir, self.api.interface +'.'+ self.api.hrn + '.slices'])
+        path = self.api.config.basepath
+        filename = ".".join([self.api.interface, self.api.hrn, "slices"])
+        filepath = path + os.sep + filename
+        self.slices_file = filepath
         SimpleStorage.__init__(self, self.slices_file)
         self.policy = Policy(self.api)    
         self.load()
@@ -126,8 +129,7 @@ class Slices(SimpleStorage):
         records = registry.resolve(credential, hrn)
         for record in records:
             if record.get_type() in ['slice']:
-                slice_info = record.as_dict()
-                slice = slice_info['pl_info']
+                slice = record.as_dict()
         if not slice:
             raise RecordNotFound(slice_hrn)   
 
@@ -146,8 +148,7 @@ class Slices(SimpleStorage):
                 if not site_records:
                     raise RecordNotFound(authority)
                 site_record = site_records[0]
-                site_info = site_record.as_dict()
-                site = site_info['pl_info']
+                site = site_record.as_dict()
                 
                  # add the site
                 site.pop('site_id')
@@ -159,8 +160,7 @@ class Slices(SimpleStorage):
 
         # get the list of valid slice users from the registry and make 
         # they are added to the slice 
-        geni_info = slice_info['geni_info']
-        researchers = geni_info['researcher']
+        researchers = slice.get('researcher', [])
         for researcher in researchers:
             person_record = {}
             person_records = registry.resolve(credential, researcher)
@@ -169,7 +169,7 @@ class Slices(SimpleStorage):
                     person_record = record
             if not person_record:
                 pass
-            person_dict = person_record.as_dict()['pl_info']
+            person_dict = person_record.as_dict()
             persons = self.api.plshell.GetPersons(self.api.plauth, [person_dict['email']], ['person_id', 'key_ids'])
 
             # Create the person record 
@@ -251,9 +251,9 @@ class Slices(SimpleStorage):
 
     def start_slice(self, hrn):
         if self.api.interface in ['aggregate']:
-            self.start_slice_aggregate()
+            self.start_slice_aggregate(hrn)
         elif self.api.interface in ['slicemgr']:
-            self.start_slice_smgr()
+            self.start_slice_smgr(hrn)
 
     def start_slice_aggregate(self, hrn):
         slicename = hrn_to_pl_slicename(hrn)
@@ -268,24 +268,24 @@ class Slices(SimpleStorage):
 
     def start_slice_smgr(self, hrn):
         credential = self.api.getCredential()
-        aggregates = Aggregates()
+        aggregates = Aggregates(self.api)
         for aggregate in aggregates:
-            aggreegates[aggregate].start_slice(credential, hrn)
+            aggregates[aggregate].start_slice(credential, hrn)
         return 1
 
 
     def stop_slice(self, hrn):
         if self.api.interface in ['aggregate']:
-            self.stop_slice_aggregate()
+            self.stop_slice_aggregate(hrn)
         elif self.api.interface in ['slicemgr']:
-            self.stop_slice_smgr()
+            self.stop_slice_smgr(hrn)
 
     def stop_slice_aggregate(self, hrn):
         slicename = hrn_to_pl_slicename(hrn)
         slices = self.api.plshell.GetSlices(self.api.plauth, {'name': slicename}, ['slice_id'])
         if not slices:
             raise RecordNotFound(hrn)
-        slice_id = slices[0]
+        slice_id = slices[0]['slice_id']
         attributes = self.api.plshell.GetSliceAttributes(self.api.plauth, {'slice_id': slice_id, 'name': 'enabled'}, ['slice_attribute_id'])
         attribute_id = attributes[0]['slice_attribute_id']
         self.api.plshell.UpdateSliceAttribute(self.api.plauth, attribute_id, "0")
@@ -293,7 +293,7 @@ class Slices(SimpleStorage):
 
     def stop_slice_smgr(self, hrn):
         credential = self.api.getCredential()
-        aggregates = Aggregates()
+        aggregates = Aggregates(self.api)
         for aggregate in aggregates:
-            aggregate[aggregate].stop_slice(credential, hrn)  
+            aggregates[aggregate].stop_slice(credential, hrn)