# this is designed to use a totally empty new directory
# so we demonstrate how to bootstrap the whole thing
+from __future__ import print_function
+
# init logging on console
import logging
console = logging.StreamHandler()
-logger=logging.getLogger('')
+logger = logging.getLogger('')
logger.addHandler(console)
logger.setLevel(logging.DEBUG)
import uuid
+
+
def unique_call_id(): return uuid.uuid4().urn
# use sys.argv to point to a completely fresh directory
import sys
-args=sys.argv[1:]
-if len(args)!=1:
- print "Usage: %s directory"%sys.argv[0]
+args = sys.argv[1:]
+if len(args) != 1:
+ print("Usage: %s directory" % sys.argv[0])
sys.exit(1)
-dir=args[0]
-logger.debug('sfaclientsample: Using directory %s'%dir)
+dir = args[0]
+logger.debug('sfaclientsample: Using directory %s' % dir)
###
# this uses a test sfa deployment at openlab
-registry_url="http://sfa1.pl.sophia.inria.fr:12345/"
-aggregate_url="http://sfa1.pl.sophia.inria.fr:12347/"
+registry_url = "http://sfa1.pl.sophia.inria.fr:12345/"
+aggregate_url = "http://sfa1.pl.sophia.inria.fr:12347/"
# this is where the private key sits - would be ~/.ssh/id_rsa in most cases
# but in this context, create this local file
# the tests key pair can be found in
# http://git.onelab.eu/?p=tests.git;a=blob;f=system/config_default.py
# search for public_key / private_key
-private_key="miniclient-private-key"
+private_key = "miniclient-private-key"
# user hrn
-user_hrn="pla.inri.fake-pi1"
+user_hrn = "pla.inri.fake-pi1"
-slice_hrn="pla.inri.slpl1"
+slice_hrn = "pla.inri.slpl1"
# hrn_to_urn(slice_hrn,'slice')
-slice_urn='urn:publicid:IDN+pla:inri+slice+slpl1'
+slice_urn = 'urn:publicid:IDN+pla:inri+slice+slpl1'
from sfa.client.sfaclientlib import SfaClientBootstrap
-bootstrap = SfaClientBootstrap (user_hrn, registry_url, dir=dir, logger=logger)
+bootstrap = SfaClientBootstrap(user_hrn, registry_url, dir=dir, logger=logger)
# install the private key in the client directory from 'private_key'
bootstrap.init_private_key_if_missing(private_key)
+
def truncate(content, length=20, suffix='...'):
- if isinstance (content, (int) ): return content
- if isinstance (content, list): return truncate ( "%s"%content, length, suffix)
+ if isinstance(content, (int)):
+ return content
+ if isinstance(content, list):
+ return truncate("%s" % content, length, suffix)
if len(content) <= length:
return content
else:
- return content[:length+1]+ ' '+suffix
+ return content[:length + 1] + ' ' + suffix
-### issue a GetVersion call
-### this assumes we've already somehow initialized the certificate
-def get_version (url):
+# issue a GetVersion call
+# this assumes we've already somehow initialized the certificate
+def get_version(url):
# make sure we have a self-signed cert
bootstrap.self_signed_cert()
server_proxy = bootstrap.server_proxy_simple(url)
server_version = server_proxy.GetVersion()
- print "miniclient: GetVersion at %s returned:"%(url)
- for (k,v) in server_version.iteritems(): print "miniclient: \tversion[%s]=%s"%(k,truncate(v))
+ print("miniclient: GetVersion at %s returned:" % (url))
+ for (k, v) in server_version.iteritems():
+ print("miniclient: \tversion[%s]=%s" % (k, truncate(v)))
# version_dict = {'type': 'SFA', 'version': '1', }
-version_dict = {'type':'ProtoGENI', 'version':'2'}
+version_dict = {'type': 'ProtoGENI', 'version': '2'}
# ditto with list resources
-def list_resources ():
+def list_resources():
bootstrap.bootstrap_my_gid()
credential = bootstrap.my_credential_string()
- credentials = [ credential ]
+ credentials = [credential]
options = {}
- options [ 'geni_rspec_version' ] = version_dict
- options [ 'call_id' ] = unique_call_id()
- list_resources = bootstrap.server_proxy (aggregate_url).ListResources(credentials,options)
- print "miniclient: ListResources at %s returned : %s"%(aggregate_url,truncate(list_resources))
+ options['geni_rspec_version'] = version_dict
+ options['call_id'] = unique_call_id()
+ list_resources = bootstrap.server_proxy(
+ aggregate_url).ListResources(credentials, options)
+ print("miniclient: ListResources at %s returned : %s" %
+ (aggregate_url, truncate(list_resources)))
-def list_slice_resources ():
+
+def list_slice_resources():
bootstrap.bootstrap_my_gid()
- credential = bootstrap.slice_credential_string (slice_hrn)
- credentials = [ credential ]
- options = { }
- options [ 'geni_rspec_version' ] = version_dict
- options [ 'geni_slice_urn' ] = slice_urn
- options [ 'call_id' ] = unique_call_id()
- list_resources = bootstrap.server_proxy (aggregate_url).ListResources(credentials,options)
- print "miniclient: ListResources at %s for slice %s returned : %s"%(aggregate_url,slice_urn,truncate(list_resources))
-
-
-
-def main ():
+ credential = bootstrap.slice_credential_string(slice_hrn)
+ credentials = [credential]
+ options = {}
+ options['geni_rspec_version'] = version_dict
+ options['geni_slice_urn'] = slice_urn
+ options['call_id'] = unique_call_id()
+ list_resources = bootstrap.server_proxy(
+ aggregate_url).ListResources(credentials, options)
+ print("miniclient: ListResources at %s for slice %s returned : %s" %
+ (aggregate_url, slice_urn, truncate(list_resources)))
+
+
+def main():
get_version(registry_url)
get_version(aggregate_url)
list_resources()