+class KeystoneClient:
+
+ def __init__(self, username=None, password=None, tenant=None, url=None, config=None):
+ if not config:
+ config = Config()
+ opts = parse_novarc(config.SFA_NOVA_NOVARC)
+ if username:
+ opts['OS_USERNAME'] = username
+ if password:
+ opts['OS_PASSWORD'] = password
+ if tenant:
+ opts['OS_TENANT_NAME'] = tenant
+ if url:
+ opts['OS_AUTH_URL'] = url
+ self.opts = opts
+ self.client = keystone_client.Client(username=opts.get('OS_USERNAME'),
+ password=opts.get('OS_PASSWORD'),
+ tenant_name=opts.get(
+ 'OS_TENANT_NAME'),
+ auth_url=opts.get('OS_AUTH_URL'))
+
+ def connect(self, *args, **kwds):
+ self.__init__(*args, **kwds)
+
+ def __getattr__(self, name):
+ return getattr(self.client, name)
+
+