From 923a726bcebe0aa86ca77276ff4b83eb0d1450d3 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Sun, 12 Apr 2009 22:56:01 +0000 Subject: [PATCH] added resources method --- geni/methods/__init__.py | 1 + geni/methods/resources.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 geni/methods/resources.py diff --git a/geni/methods/__init__.py b/geni/methods/__init__.py index d6e2da91..15bad5b0 100644 --- a/geni/methods/__init__.py +++ b/geni/methods/__init__.py @@ -6,5 +6,6 @@ list register remove resolve +resources update """.split() diff --git a/geni/methods/resources.py b/geni/methods/resources.py new file mode 100644 index 00000000..03ab6aea --- /dev/null +++ b/geni/methods/resources.py @@ -0,0 +1,38 @@ +from geni.util.faults import * +from geni.util.excep import * +from geni.util.method import Method +from geni.util.parameter import Parameter, Mixed +from geni.util.auth import Auth +from geni.util.nodes import Nodes + +class resources(Method): + """ + Get an resource specification (rspec). The rspec may describe the resources + available at an authority or the resources being used by a slice. + + @param cred credential string specifying the rights of the caller + @param hrn human readable name of the slice we are interesed in or None + for an authority. + """ + + interfaces = ['aggregate', 'slicemgr'] + + accepts = [ + Parameter(str, "Credential string"), + Mixed(Parameter(str, "Human readable name (hrn)"), + Parameter(None, "hrn not specified")) + ] + + 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) + else: + nodes.refresh() + rspec = nodes['rspec'] + + return rspec -- 2.43.0