fix bug create_slice, now checks for the correct rights
[sfa.git] / geni / slicemgr.py
index 8584043..73b6345 100644 (file)
@@ -51,7 +51,8 @@ class SliceMgr(GeniServer):
         
         # Get list of aggregates this sm talks to
         aggregates_file = self.server_basedir + os.sep + 'aggregates.xml'
-        self.aggregate_info = XmlStorage(aggregates_file, {'aggregates': {'aggregate': []}} )
+        connection_dict = {'hrn': '', 'addr': '', 'port': ''}
+        self.aggregate_info = XmlStorage(aggregates_file, {'aggregates': {'aggregate': [connection_dict]}} )
         self.aggregate_info.load()
         
         # Get cached list of nodes (rspec) 
@@ -129,6 +130,8 @@ class SliceMgr(GeniServer):
             for aggregate in aggregates:         
                 # create xmlrpc connection using GeniClient
                 hrn, address, port = aggregate['hrn'], aggregate['addr'], aggregate['port']
+                if not hrn or not address or not port:
+                    continue
                 url = 'http://%(address)s:%(port)s' % locals()
                 self.aggregates[hrn] = GeniClient(url, self.key_file, self.cert_file)
 
@@ -408,9 +411,12 @@ class SliceMgr(GeniServer):
         self.decode_authentication(cred, 'listslices')
         return self.getSlices()
 
-    def get_resources(self, cred, hrn):
+    def get_resources(self, cred, hrn=None):
         self.decode_authentication(cred, 'listnodes')
-        return self.getResources(hrn)
+        if not hrn: 
+            return self.getNodes()
+        else:
+            return self.getResources(hrn)
 
     def get_ticket(self, cred, hrn, rspec):
         self.decode_authentication(cred, 'getticket')
@@ -421,7 +427,7 @@ class SliceMgr(GeniServer):
         return self.getPolicy()
 
     def create_slice(self, cred, hrn, rspec):
-        self.decode_authentication(cred, 'creatslice')
+        self.decode_authentication(cred, 'createslice')
         return self.createSlice(cred, hrn, rspec)
 
     def delete_slice(self, cred, hrn):