Commented some debug printing out.
[sfa.git] / sfa / senslab / OARrspec.py
index a045e47..bed7fd3 100644 (file)
@@ -1,10 +1,4 @@
-###########################################################################
-#    Copyright (C) 2011 by root                                      
-#    <root@FlabFedora2>                                                             
-#
-# Copyright: See COPYING file that comes with this distribution
-#
-###########################################################################
+
 #!/usr/bin/python
 
 # import modules used here -- sys is a very standard one
@@ -15,10 +9,11 @@ import json
 
 from sfa.util.xrn import *
 from sfa.util.plxrn import *
-from sfa.rspecs.sfa_rspec import SfaRSpec
-from sfa.rspecs.pg_rspec  import PGRSpec
-from sfa.rspecs.rspec_version import RSpecVersion
-
+#from sfa.rspecs.sfa_rspec import SfaRSpec
+from sfa.rspecs.rspec import RSpec
+#from sfa.rspecs.pg_rspec  import PGRSpec
+#from sfa.rspecs.rspec_version import RSpecVersion
+from sfa.rspecs.version_manager import VersionManager
 from sfa.senslab.OARrestapi import *
 
 class OARrspec:
@@ -26,18 +21,23 @@ class OARrspec:
     
     sites = {}
     nodes = {}
-  
+    api = None
+    interfaces = {}
+    links = {}
+    node_tags = {}
+    
     prepared=False
     #panos new user options variable
     user_options = {}
 
-    def __init__(self):
+    def __init__(self ,api, user_options={}):
        self.OARImporter = OARapi()     
-       print >>sys.stderr,'\r\n \r\n \t\t__INIT OARRSPEC__'
-
+       self.user_options = user_options
+       self.api = api 
+       print >>sys.stderr,"\r\n \r\n \t\t_____________INIT OARRSPEC__ api : %s" %(api)
 
     def prepare_sites(self, force=False):
-       print >>sys.stderr,'\r\n \r\n ++++++++++++++\t\t',  self.OARImporter.GetSites()
+       print >>sys.stderr,'\r\n \r\n ++++++++++++++\t\t prepare_sites'
         if not self.sites or force:  
              for site in self.OARImporter.GetSites():
                print >>sys.stderr,'prepare_sites : site ', site                    
@@ -50,48 +50,62 @@ class OARrspec:
                 self.nodes[node['node_id']] = node
                print >>sys.stderr,'prepare_nodes:node', node
 
-
+    #def prepare_interfaces(self, force=False):
+        #if not self.interfaces or force:
+            #for interface in self.api.plshell.GetInterfaces(self.api.plauth):
+                #self.interfaces[interface['interface_id']] = interface
 
     #def prepare_node_tags(self, force=False):
         #if not self.node_tags or force:
             #for node_tag in self.api.plshell.GetNodeTags(self.api.plauth):
                 #self.node_tags[node_tag['node_tag_id']] = node_tag
-
+               
+    def prepare_links(self, force=False):
+        if not self.links or force:
+            pass
 
     def prepare(self, force=False):
         if not self.prepared or force:
             self.prepare_sites(force)
             self.prepare_nodes(force)
-        
+            #self.prepare_links(force)
+            #self.prepare_interfaces(force)
+            #self.prepare_node_tags(force)         
             # add site/interface info to nodes
             for node_id in self.nodes:
                 node = self.nodes[node_id]
                 site = self.sites[node['site_id']]
-              
-               node['network'] = "grenoble-senslab"    
-                node['network_urn'] = hrn_to_urn(node['network'], 'authority+sa')
+                #interfaces = [self.interfaces[interface_id] for interface_id in node['interface_ids']]
+                #tags = [self.node_tags[tag_id] for tag_id in node['node_tag_ids']]
+               node['network'] = "senslab"     
+                node['network_urn'] = hrn_to_urn(node['network'], 'authority+am')
                 node['urn'] = hostname_to_urn(node['network'], site['login_base'], node['hostname'])
-                node['site_urn'] = hrn_to_urn(PlXrn.site_hrn(node['network'], site['login_base']), 'authority') 
+                node['site_urn'] = hrn_to_urn(PlXrn.site_hrn(node['network'], site['login_base']), 'authority+sa') 
                 node['site'] = site
-             
+                #node['interfaces'] = interfaces
                 #node['tags'] = tags
-       print >>sys.stderr, "\r\n OAR  prepare ", node 
+               #print >>sys.stderr, "\r\n OAR  prepare ", node 
+               
         self.prepared = True  
-
+       
+#from plc/aggregate.py 
     def get_rspec(self, slice_xrn=None, version = None):
        print>>sys.stderr, " \r\n OARrspec \t\t get_spec **************\r\n" 
         self.prepare()
        
         rspec = None
-        rspec_version = RSpecVersion(version)
-       print >>sys.stderr, '\r\n \t\t rspec_version type', rspec_version['type']
-        if rspec_version['type'].lower() == 'sfa':
-            rspec = SfaRSpec("",{},self.user_options)
+       version_manager = VersionManager()
+       version = version_manager.get_version(version)
+        #rspec_version = RSpecVersion(version)
+       #print >>sys.stderr, '\r\n \t\t rspec_version type',version_manager['type']
+       
+       if not slice_xrn:
+            rspec_version = version_manager._get_version(version.type, version.version, 'ad')
         else:
-            rspec = SfaRSpec("",{},self.user_options)
-
-
-        rspec.add_nodes(self.nodes.values())
+            rspec_version = version_manager._get_version(version.type, version.version, 'manifest')
+      
+        rspec = RSpec(version=rspec_version, user_options=self.user_options)
+        rspec.version.add_nodes(self.nodes.values())
        print >>sys.stderr, 'after add_nodes'