getting the get_resources call working
[sfa.git] / sfa / plc / nodes.py
index 9a2a853..9c5cf62 100644 (file)
@@ -88,7 +88,8 @@ class Nodes(SimpleStorage):
         self.update(node_details)
         self.write()       
  
-    def get_remote_resources(self, hrn = None):
+    def get_rspec_smgr(self, xrn = None):
+        hrn, type = urn_to_hrn(xrn)
         # convert and threshold to ints
         if self.has_key('timestamp') and self['timestamp']:
             hr_timestamp = self['timestamp']
@@ -116,7 +117,7 @@ class Nodes(SimpleStorage):
           if aggregate not in [self.api.auth.client_cred.get_gid_caller().get_hrn()]:
             try:
                 # get the rspec from the aggregate
-                agg_rspec = aggregates[aggregate].get_resources(credential, hrn, origin_hrn)
+                agg_rspec = aggregates[aggregate].get_resources(credential, xrn, origin_hrn)
                 # extract the netspec from each aggregates rspec
                 rspec.parseString(agg_rspec)
                 networks.extend([{'NetSpec': rspec.getDictsByTagName('NetSpec')}])
@@ -130,11 +131,11 @@ class Nodes(SimpleStorage):
         resourceDict = {'RSpec': resources}
         # convert rspec dict to xml
         rspec.parseDict(resourceDict)
-        return rspec
+        return rspec.toxml()
 
     def refresh_nodes_smgr(self):
 
-        rspec = self.get_remote_resources()        
+        rspec = RSpec(xml=self.get_rspec_smgr())        
         # filter according to policy
         blist = self.policy['node_blacklist']
         wlist = self.policy['node_whitelist']    
@@ -154,23 +155,18 @@ class Nodes(SimpleStorage):
         self.update(nodedict)
         self.write()
 
-    def get_rspec(self, hrn = None):
+    def get_rspec(self, xrn = None):
 
         if self.api.interface in ['slicemgr']:
-            return self.get_rspec_smgr(hrn)
+            return self.get_rspec_smgr(xrn)
         elif self.api.interface in ['aggregate']:
-            return self.get_rspec_aggregate(hrn)     
+            return self.get_rspec_aggregate(xrn)     
 
-    def get_rspec_smgr(self, hrn = None):
-        
-        rspec = self.get_remote_resources(hrn)
-        return rspec.toxml()
-
-    def get_rspec_aggregate(self, hrn = None):
+    def get_rspec_aggregate(self, xrn = None):
         """
         Get resource information from PLC
         """
-
+        hrn, type = urn_to_hrn(xrn)
         slicename = None
         # Get the required nodes
         if not hrn:
@@ -203,7 +199,7 @@ class Nodes(SimpleStorage):
             elif self.api.plshell_version in ['4.3']:
                 interface_ids.extend(node['interface_ids'])
             else:
-                raise GeniAPIError, "Unsupported plcapi version ", \
+                raise SfaAPIError, "Unsupported plcapi version ", \
                                  self.api.plshell_version
 
         if self.api.plshell_version in ['4.2']:
@@ -211,7 +207,7 @@ class Nodes(SimpleStorage):
         elif self.api.plshell_version in ['4.3']:
             interfaces = self.api.plshell.GetInterfaces(self.api.plauth, interface_ids)
         else:
-            raise GeniAPIError, "Unsupported plcapi version ", \
+            raise SfaAPIError, "Unsupported plcapi version ", \
                                 self.api.plshell_version 
         interface_dict = {}
         for interface in interfaces:
@@ -220,7 +216,7 @@ class Nodes(SimpleStorage):
             elif self.api.plshell_version in ['4.3']:
                 interface_dict[interface['interface_id']] = interface
             else:
-                raise GeniAPIError, "Unsupported plcapi version", \
+                raise SfaAPIError, "Unsupported plcapi version", \
                                     self.api.plshell_version 
 
         # join nodes with thier interfaces
@@ -233,7 +229,7 @@ class Nodes(SimpleStorage):
                 for interface_id in node['interface_ids']:
                     node['interfaces'].append(interface_dict[interface_id])
             else:
-                raise GeniAPIError, "Unsupported plcapi version", \
+                raise SfaAPIError, "Unsupported plcapi version", \
                                     self.api.plshell_version
 
         # convert and threshold to ints