filter out nodes that dont belong to the aggregate
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Mon, 10 Oct 2011 22:51:22 +0000 (18:51 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Mon, 10 Oct 2011 22:51:22 +0000 (18:51 -0400)
sfa/client/sfi.py

index 384d6f1..cfa1cef 100755 (executable)
@@ -23,6 +23,8 @@ from sfa.trust.gid import GID
 from sfa.trust.credential import Credential
 from sfa.util.sfaticket import SfaTicket
 from sfa.util.record import SfaRecord, UserRecord, SliceRecord, NodeRecord, AuthorityRecord
+from sfa.rspecs.rspec import RSpec
+from sfa.rspecs.rspec_converter import RSpecConverter
 from sfa.util.xrn import Xrn, get_leaf, get_authority, hrn_to_urn
 import sfa.util.xmlrpcprotocol as xmlrpcprotocol
 from sfa.util.config import Config
@@ -989,12 +991,15 @@ class Sfi:
             
             if 'sfa' not in server_version:
                 users = pg_users_arg(user_records)
+                rspec = RSpec(rspec)
+                rspec.filter({'component_manager_id': server_version['urn']})
+                rspec = RSpecConverter.to_pg_rspec(rspec.toxml(), content_type='request')
             else:
                 users = sfa_users_arg(user_records, slice_record)
         call_args = [slice_urn, creds, rspec, users]
         if self.server_supports_call_id_arg(server):
             call_args.append(unique_call_id())
-             
+            
         result = server.CreateSliver(*call_args)
         if opts.file is None:
             print result