install pl rspec schema (pl.rng) in /etc/sfa. Add variable to default config file...
Tony Mack [Wed, 7 Apr 2010 20:32:52 +0000 (20:32 +0000)]
TODO
config/default_config.xml
setup.py
sfa/managers/aggregate_manager_pl.py
sfa/server/interface.py

diff --git a/TODO b/TODO
index 99db1ad..7f442ee 100644 (file)
--- a/TODO
+++ b/TODO
@@ -4,7 +4,6 @@
 * a recently disabled/deleted user may still have a valid cred. Keep a list of valid/invalid users on the aggregate and check callers against this list
 
 - Component manager
-  * only call get_gids() if there are slices with no gids installed
   * GetTicket - must verify_{site,slice,person,keys} on remote aggregate 
   * Redeem ticket - RedeemTicket/AdminTicket not working. Why?
   * install the slice and node gid when the slice is created (create NM plugin to execute sfa_component_setup.py ?) 
   slices were on it and recreate them? do we make some sort of transaction log)   
 
 - Registry
-* sfa.plc.api.SfaAPI.fill_record_pl_info() should add the sites PIs to a slice records researchers list
+* sign peer gids 
 * update call should attempt to push updates to federated peers if 
   the peer has a record for an object that is updated locally  
 * api.update_membership() shoudl behave more like resolve when looking up records (attempt to resolve records at federated registeries) instead of only looking in the local registry
-* support generic registry records (dont depend on postgres!)
+* move db tables into db with less overhead (tokyocabinet?)
+* make resolve, fill_record_info more fault tolerent. Skip records with failures
 
 - Auth Service
   * develop a simple service where users auth using username/passord and 
index 02f48e3..79d6955 100644 (file)
@@ -106,6 +106,12 @@ $URL$
          <description>The type of backend server for this
          aggregate. Some aggregates may not be myplc.</description>
        </variable>
+    
+    <variable id="rspec_schema" type="string">
+      <name>RSpec Schema</name>
+      <value>/etc/sfa/pl.rng</value>
+      <description>The path to the default schema</description>
+    </variable>
 
        <variable id="host" type="hostname">
          <name>Hostname</name>
index eb94e80..77e6491 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -45,7 +45,8 @@ package_dirs = [
 data_files = [('/etc/sfa/', [ 'config/aggregates.xml',
                               'config/registries.xml',
                               'config/default_config.xml',
-                              'config/sfi_config']),
+                              'config/sfi_config',
+                              'sfa/managers/pl/pl.rng']),
               ('/etc/sfatables/matches/', glob('sfatables/matches/*.xml')),
               ('/etc/sfatables/targets/', glob('sfatables/targets/*.xml')),
               ('/etc/init.d/', ['sfa/init.d/sfa', 'sfa/init.d/sfa-cm'])]
index cde20b2..2ca9db4 100644 (file)
@@ -67,7 +67,8 @@ def create_slice(api, xrn, xml):
     slice = network.get_slice(api, hrn)
     current = __get_hostnames(slice.get_nodes())
 
-    network.addRSpec(xml, "/var/www/html/schemas/pl.rng")
+    network.addRSpec(xml, api.config.SFA_AGGREGATE_RSPEC_SCHEMA)
+    
     request = __get_hostnames(network.nodesWithSlivers())
     
     # remove nodes not in rspec
index 9b4c039..7172ef9 100644 (file)
@@ -127,7 +127,10 @@ class Interfaces(dict):
         the db.         
         """
         # get hrns we expect to find
-        hrns_expected = [interface['hrn'] for interface in self.interfaces]
+        # ignore records for local interfaces
+        ignore_interfaces = [self.api.config.SFA_INTERFACE_HRN]
+        hrns_expected = [interface['hrn'] for interface in self.interfaces \
+                         if interface['hrn'] not in ignore_interfaces]
 
         # get hrns that actually exist in the db
         table = SfaTable()