X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fclient%2Fsfi.py;h=c9bde73af92981745035ea9641ebda3f0ecf16e1;hb=935de64c2ed3a68566da471c68447a1ac384455d;hp=80c2c0425cc9e914fe7f1a7d41ad8bfa05a614ae;hpb=c18aa8c161ab7278ef52911c57eaf7203e8d9e79;p=sfa.git diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py old mode 100755 new mode 100644 index 80c2c042..c9bde73a --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -1,6 +1,3 @@ -#! /usr/bin/env python - -# sfi -- slice-based facility interface # xxx NOTE this will soon be reviewed to take advantage of sfaclientlib @@ -34,7 +31,7 @@ from sfa.rspecs.rspec_converter import RSpecConverter from sfa.rspecs.version_manager import VersionManager from sfa.client.return_value import ReturnValue -import sfa.client.sfaprotocol as sfaprotocol +from sfa.client.sfaserverproxy import SfaServerProxy, ServerException from sfa.client.client_helper import pg_users_arg, sfa_users_arg AGGREGATE_PORT=12346 @@ -482,9 +479,9 @@ class Sfi: self.cert_file = cert_file self.cert = GID(filename=cert_file) self.logger.info("Contacting Registry at: %s"%self.reg_url) - self.registry = sfaprotocol.server_proxy(self.reg_url, key_file, cert_file, timeout=self.options.timeout, verbose=self.options.debug) + self.registry = SfaServerProxy(self.reg_url, key_file, cert_file, timeout=self.options.timeout, verbose=self.options.debug) self.logger.info("Contacting Slice Manager at: %s"%self.sm_url) - self.slicemgr = sfaprotocol.server_proxy(self.sm_url, key_file, cert_file, timeout=self.options.timeout, verbose=self.options.debug) + self.slicemgr = SfaServerProxy(self.sm_url, key_file, cert_file, timeout=self.options.timeout, verbose=self.options.debug) return def get_cached_server_version(self, server): @@ -577,7 +574,7 @@ class Sfi: self.logger.info("Getting Registry issued cert") self.read_config() # *hack. need to set registry before _get_gid() is called - self.registry = sfaprotocol.server_proxy(self.reg_url, key_file, cert_file, + self.registry = SfaServerProxy(self.reg_url, key_file, cert_file, timeout=self.options.timeout, verbose=self.options.debug) gid = self._get_gid(type='user') self.registry = None @@ -759,7 +756,7 @@ class Sfi: host_parts = host.split('/') host_parts[0] = host_parts[0] + ":" + str(port) url = "http://%s" % "/".join(host_parts) - return sfaprotocol.server_proxy(url, keyfile, certfile, timeout=self.options.timeout, + return SfaServerProxy(url, keyfile, certfile, timeout=self.options.timeout, verbose=self.options.debug) # xxx opts could be retrieved in self.options @@ -884,7 +881,7 @@ or version information about sfi itself elif record['type'] in ["slice"]: try: cred = self.get_slice_cred(record.get_name()).save_to_string(save_parents=True) - except sfaprotocol.ServerException, e: + except ServerException, e: # XXX smbaker -- once we have better error return codes, update this # to do something better than a string compare if "Permission error" in e.args[0]: @@ -1027,10 +1024,12 @@ or currently provisioned resources (ListResources) creds = [slice_cred] if delegated_cred: creds.append(delegated_cred) - call_args = [slice_urn, creds, rspec, users] + # do not append users, keys, or slice tags. Anything + # not contained in this request will be removed from the slice + options = {'append': False} if self.server_supports_options_arg(server): - options = {'call_id': unique_call_id()} - call_args.append(options) + options['call_id'] = unique_call_id() + call_args = [slice_urn, creds, rspec, users, options] result = server.CreateSliver(*call_args) value = ReturnValue.get_value(result) if opts.file is None: @@ -1276,5 +1275,3 @@ or currently provisioned resources (ListResources) self.logger.debug('Sfi.get_trusted_certs -> %r'%cert.get_subject()) return -if __name__ == "__main__": - Sfi().main()