From 4742191a6cd97f84c9f03cbc0663c8dcb63b69cb Mon Sep 17 00:00:00 2001 From: Faiyaz Ahmed Date: Mon, 6 Jul 2009 21:13:18 +0000 Subject: [PATCH] Call to get whole record, not just tags. --- api.py | 10 ++++++++-- api_calls.py | 11 +++++------ doc/Makefile | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/api.py b/api.py index 9b09d06..350cb25 100644 --- a/api.py +++ b/api.py @@ -74,13 +74,19 @@ class APIRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): # Anyone can call these functions elif method_name not in ('Help', 'Ticket', 'GetXIDs', 'GetSSHKeys'): # Authenticate the caller if not in the above fncts. - target_name = args[0] + if method_name == "GetRecord": + target_name = caller_name + else: + target_name = args[0] + # Gather target slice's object. target_rec = database.db.get(target_name) - # only work on slivers. Sannity check. + + # only work on slivers or self. Sannity check. if not (target_rec and target_rec['type'].startswith('sliver.')): raise xmlrpclib.Fault(102, \ 'Invalid argument: the first argument must be a sliver name.') + # only manipulate slivers who delegate you authority if caller_name in (target_name, target_rec['delegations']): try: result = method(target_rec, *args[1:]) diff --git a/api_calls.py b/api_calls.py index 931760b..8e717ab 100644 --- a/api_calls.py +++ b/api_calls.py @@ -273,10 +273,9 @@ def SetLoans(sliver_name, loans): database.db.sync() @export_to_docbook(roles=['nm-controller', 'self'], - accepts=[ Parameter(str, 'A sliver/slice name.')], - returns=Parameter(dict, 'Tag dictionary')) -@export_to_api(1) -def GetTags(sliver_name): - """Return sliver tags set at PLC""" + returns=Parameter(dict, 'Record dictionary')) +@export_to_api(0) +def GetRecord(sliver_name): + """Return sliver record""" rec = sliver_name - return rec.get('attributes', []) + return rec diff --git a/doc/Makefile b/doc/Makefile index 36b2c1e..be40171 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -23,7 +23,7 @@ NMAPI.xml: NMAPI.xml.in $(if $(local-docbook-43), \ echo Using locally installed DTD $(local-docbook-43), \ echo WARNING - could not locate local DTD - using remote $(remote-docbook-43)) - sed -e s:@DOCBOOK-43@:$(docbook-43): $< > $@ + sed -e s/@DOCBOOK-43@/$(docbook-43)/ $< > $@ .NMAPI.xml.valid: Methods.xml -- 2.43.0