From: Sapan Bhatia Date: Mon, 13 Jul 2009 01:35:10 +0000 (+0000) Subject: Rspecs for non-pl aggregates X-Git-Tag: sfa-0.9-0@14641~72 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=afc3773f051b1a91d36b697652bc98e9eedbf8b2;p=sfa.git Rspecs for non-pl aggregates --- diff --git a/sfa/methods/get_resources.py b/sfa/methods/get_resources.py index a9b9cdc2..4c4948a4 100644 --- a/sfa/methods/get_resources.py +++ b/sfa/methods/get_resources.py @@ -5,8 +5,10 @@ from sfa.util.faults import * from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth - +from sfa.util.config import Config from sfa.plc.nodes import Nodes +# RSpecManager_pl is not used. This is just to resolve issues with the dynamic __import__ that comes later. +import sfa.rspecs.aggregates.rspec_manager_pl class get_resources(Method): """ @@ -29,13 +31,17 @@ class get_resources(Method): returns = Parameter(str, "String representatin of an rspec") def call(self, cred, hrn=None): - - self.api.auth.check(cred, 'listnodes') - nodes = Nodes(self.api) - if hrn: - rspec = nodes.get_rspec(hrn) + sfa_aggregate_type = Config().get_sfa_aggregate_type()=='pl' + if (sfa_aggregate_type == 'pl'): + self.api.auth.check(cred, 'listnodes') + nodes = Nodes(self.api) + if hrn: + rspec = nodes.get_rspec(hrn) + else: + nodes.refresh() + rspec = nodes['rspec'] else: - nodes.refresh() - rspec = nodes['rspec'] + rspec_manager = __import__("sfa.rspecs.aggregates.rspec_manager_"+sfa_aggregate_type) + rspec = rspec_manager.get_rspec(hrn) return rspec diff --git a/sfa/rspecs/__init__.py b/sfa/rspecs/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sfa/rspecs/aggregates/__init__.py b/sfa/rspecs/aggregates/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sfa/rspecs/aggregates/rspec_manager_pl.py b/sfa/rspecs/aggregates/rspec_manager_pl.py new file mode 100644 index 00000000..32805ca6 --- /dev/null +++ b/sfa/rspecs/aggregates/rspec_manager_pl.py @@ -0,0 +1 @@ +# Nothing here for now.