From: Tony Mack Date: Sat, 20 Oct 2012 01:05:51 +0000 (-0400) Subject: fix Provision X-Git-Tag: sfa-3.0-0~104 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=02993db8cc4867b78b4618d287aa97006ac9d185 fix Provision --- diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py index 004f4398..bb60be0f 100644 --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -287,7 +287,7 @@ class Sfi: ("describe", "slice_hrn"), ("create", "slice_hrn rspec"), ("allocate", "slice_hrn rspec"), - ("provison", "slice_hrn"), + ("provision", "slice_hrn"), ("action", "slice_hrn action"), ("delete", "slice_hrn"), ("status", "slice_hrn"), @@ -361,7 +361,7 @@ class Sfi: help="set extra/testbed-dependent flags, e.g. --extra enabled=true") # user specifies remote aggregate/sm/component - if command in ("resources", "describe", "create", "delete", "allocate", "provision", + if command in ("resources", "describe", "allocate", "provision", "create", "delete", "allocate", "provision", "action", "shutdown", "get_ticket", "renew", "status"): parser.add_option("-d", "--delegate", dest="delegate", default=None, action="store_true", @@ -369,7 +369,7 @@ class Sfi: "authority in set of credentials for this call") # show_credential option - if command in ("list","resources", "describe", "create","add","update","remove","slices","delete","status","renew"): + if command in ("list","resources", "describe", "provision", "allocate", "create","add","update","remove","slices","delete","status","renew"): parser.add_option("-C","--credential",dest='show_credential',action='store_true',default=False, help="show credential(s) used in human-readable form") # registy filter option @@ -403,7 +403,7 @@ class Sfi: # 'create' does return the new rspec, makes sense to save that too - if command in ("resources", "describe", "show", "list", "gid", 'create'): + if command in ("resources", "describe", "allocate", "provision", "show", "list", "gid", 'create'): parser.add_option("-o", "--output", dest="file", help="output XML to file", metavar="FILE", default=None) @@ -1192,6 +1192,8 @@ or with an slice hrn, shows currently provisioned resources return value def allocate(self, options, args): + server = self.sliceapi() + server_version = self.get_cached_server_version(server) slice_hrn = args[0] slice_urn = Xrn(slice_hrn, type='slice').get_urn() @@ -1199,7 +1201,6 @@ or with an slice hrn, shows currently provisioned resources creds = [self.slice_credential_string(slice_hrn)] delegated_cred = None - server_version = self.get_cached_server_version(server) if server_version.get('interface') == 'slicemgr': # delegate our cred to the slice manager # do not delegate cred to slicemgr...not working at the moment @@ -1254,13 +1255,14 @@ or with an slice hrn, shows currently provisioned resources def provision(self, options, args): + server = self.sliceapi() + server_version = self.get_cached_server_version(server) slice_hrn = args[0] slice_urn = Xrn(slice_hrn, type='slice').get_urn() # credentials creds = [self.slice_credential_string(slice_hrn)] delegated_cred = None - server_version = self.get_cached_server_version(server) if server_version.get('interface') == 'slicemgr': # delegate our cred to the slice manager # do not delegate cred to slicemgr...not working at the moment @@ -1275,7 +1277,7 @@ or with an slice hrn, shows currently provisioned resources api_options = {} api_options ['call_id'] = unique_call_id() - result = server.CreateSliver(slice_urn, creds, api_options) + result = server.Provision([slice_urn], creds, api_options) value = ReturnValue.get_value(result) if self.options.raw: save_raw_to_file(result, self.options.raw, self.options.rawformat, self.options.rawbanner) diff --git a/sfa/methods/Provision.py b/sfa/methods/Provision.py index 21ab93da..00c5a434 100644 --- a/sfa/methods/Provision.py +++ b/sfa/methods/Provision.py @@ -23,7 +23,7 @@ class Provision(Method): interfaces = ['aggregate', 'slicemgr'] accepts = [ Parameter(type([str]), "URNs"), - Parameter(dict, "Credentials"), + Parameter(type([dict]), "Credentials"), Parameter(dict, "options"), ] returns = Parameter(dict, "Provisioned Resources") diff --git a/sfa/planetlab/plaggregate.py b/sfa/planetlab/plaggregate.py index 5bf0950b..733638b0 100644 --- a/sfa/planetlab/plaggregate.py +++ b/sfa/planetlab/plaggregate.py @@ -3,7 +3,7 @@ from collections import defaultdict from sfa.util.xrn import Xrn, hrn_to_urn, urn_to_hrn from sfa.util.sfatime import utcparse, datetime_to_string from sfa.util.sfalogging import logger - +from sfa.util.faults import SliverDoesNotExist from sfa.rspecs.rspec import RSpec from sfa.rspecs.elements.hardware_type import HardwareType from sfa.rspecs.elements.node import Node diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py index f00f1ebe..0179bb91 100644 --- a/sfa/planetlab/pldriver.py +++ b/sfa/planetlab/pldriver.py @@ -703,7 +703,7 @@ class PlDriver (Driver): return aggregate.describe(slice_xrn=xrn.get_urn(), version=rspec.version) def provision(self, urns, options={}): - return self.describe(urns, options=options) + return self.describe(urns, None, options=options) def delete(self, urns, options={}): names = []