From: Tony Mack Date: Sat, 20 Oct 2012 02:05:23 +0000 (-0400) Subject: fix Allocate X-Git-Tag: sfa-3.0-0~103 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=31d10cfe9e17c6decd18337cdc53fb828930775f;p=sfa.git fix Allocate --- diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index bb60be0f..3f34ac6c 100644 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -1234,7 +1234,9 @@ or with an slice hrn, shows currently provisioned resources if 'sfa' not in server_version: users = pg_users_arg(user_records) rspec = RSpec(rspec) - rspec.filter({'component_manager_id': server_version['urn']}) + cm_hrn = Xrn(xrn=server_version['urn']).get_hrn() + cm_urn = Xrn(cm_hrn, type='authority+cm').get_urn() + rspec.filter({'component_manager_id': cm_urn}) rspec = RSpecConverter.to_pg_rspec(rspec.toxml(), content_type='request') else: users = sfa_users_arg(user_records, slice_record) diff --git a/sfa/methods/Allocate.py b/sfa/methods/Allocate.py index a1bb9e06..565d859f 100644 --- a/sfa/methods/Allocate.py +++ b/sfa/methods/Allocate.py @@ -1,10 +1,11 @@ from sfa.util.faults import SfaInvalidArgument, InvalidRSpec, SfatablesRejected -from sfa.util.xrn import urn_to_hrn +from sfa.util.xrn import Xrn from sfa.util.method import Method from sfa.util.sfatablesRuntime import run_sfatables from sfa.trust.credential import Credential from sfa.storage.parameter import Parameter, Mixed from sfa.rspecs.rspec import RSpec +from sfa.util.sfalogging import logger class Allocate(Method): """ @@ -26,7 +27,7 @@ class Allocate(Method): interfaces = ['aggregate', 'slicemgr'] accepts = [ Parameter(str, "Slice URN"), - Parameter(dict, "List of credentials"), + Parameter(type([dict]), "List of credentials"), Parameter(str, "RSpec"), Parameter(dict, "options"), ] diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py index 0179bb91..42da6ec2 100644 --- a/sfa/planetlab/pldriver.py +++ b/sfa/planetlab/pldriver.py @@ -5,7 +5,7 @@ from sfa.util.faults import MissingSfaInfo, UnknownSfaType, \ from sfa.util.sfalogging import logger from sfa.util.defaultdict import defaultdict from sfa.util.sfatime import utcparse, datetime_to_string, datetime_to_epoch -from sfa.util.xrn import hrn_to_urn, get_leaf +from sfa.util.xrn import Xrn, hrn_to_urn, get_leaf from sfa.util.cache import Cache # one would think the driver should not need to mess with the SFA db, but.. @@ -700,7 +700,7 @@ class PlDriver (Driver): # only used by plc and ple. slices.handle_peer(site, slice, persons, peer) - return aggregate.describe(slice_xrn=xrn.get_urn(), version=rspec.version) + return aggregate.describe([xrn.get_urn()], version=rspec.version) def provision(self, urns, options={}): return self.describe(urns, None, options=options) diff --git a/sfa/rspecs/rspec.py b/sfa/rspecs/rspec.py index b957e510..38865bba 100755 --- a/sfa/rspecs/rspec.py +++ b/sfa/rspecs/rspec.py @@ -91,12 +91,12 @@ class RSpec: def filter(self, filter): if 'component_manager_id' in filter: - nodes = self.version.get_node_elements() + nodes = self.version.get_nodes() for node in nodes: if 'component_manager_id' not in node.attrib or \ node.attrib['component_manager_id'] != filter['component_manager_id']: parent = node.getparent() - parent.remove(node) + parent.remove(node.element) def toxml(self, header=True): diff --git a/sfa/rspecs/versions/pgv2.py b/sfa/rspecs/versions/pgv2.py index 9506e5df..3d3e5388 100644 --- a/sfa/rspecs/versions/pgv2.py +++ b/sfa/rspecs/versions/pgv2.py @@ -175,10 +175,10 @@ class PGv2(RSpecVersion): # Leases def get_leases(self, filter=None): - pass + return [] def add_leases(self, leases, network = None, no_dupes=False): - pass + return None # Utility