def __init__(self, parser): self.parser = parser self._get_global_flags() try: self._get_auth_flags() except exc.CommandError as ce: print(self.__doc__) print("ERROR: %s" % ce.message) return self.parser.add_argument('action', default='help', help='Action to perform on resource') parsed, _ = self.parser.parse_known_args() action = vars(parsed).get('action') client_args = vars(parsed) client_args.pop('insecure', None) client_args['verify'] = self.verify if 'os_auth_token' in client_args: del client_args['os_auth_token'] self.client = solum_client.get_client(parsed.solum_api_version, **client_args) if action in self._actions: try: return self._actions[action]() except exc.CommandError as ce: print("ERROR: %s" % ce.message) else: print(self.__doc__)
def _get_solum_client(): args = {} args['os_username'] = os.getenv('OS_USERNAME', '') args['os_password'] = os.getenv('OS_PASSWORD', '') args['os_tenant_name'] = os.getenv('OS_TENANT_NAME', '') args['os_auth_url'] = os.getenv('OS_AUTH_URL', '') args['solum_url'] = os.getenv('SOLUM_URL', '') try: client = solum_client.get_client(SOLUM_API_VERSION, **args) return client except Exception as ex: print("Error in getting Solum client: %s" % ex) exit(1)
def __init__(self, parser): self.parser = parser self._get_global_flags() try: self._get_auth_flags() except exc.CommandError as ce: print(self.__doc__) print("ERROR: %s" % ce.message) return parsed, _ = self.parser.parse_known_args() client_args = vars(parsed) client_args.pop('insecure', None) client_args['verify'] = self.verify if 'os_auth_token' in client_args: del client_args['os_auth_token'] self.client = solum_client.get_client(parsed.solum_api_version, **client_args) return self.info()
def __init__(self, parser): self.parser = parser self._get_global_flags() self.parser.add_argument('action', default='help', help='Action to perform on resource') self.parser.add_argument('--os-username', default=env('OS_USERNAME'), help='Defaults to env[OS_USERNAME]') self.parser.add_argument('--os-password', default=env('OS_PASSWORD'), help='Defaults to env[OS_PASSWORD]') self.parser.add_argument('--os-tenant-name', default=env('OS_TENANT_NAME'), help='Defaults to env[OS_TENANT_NAME]') self.parser.add_argument('--os-auth-url', default=env('OS_AUTH_URL'), help='Defaults to env[OS_AUTH_URL]') self.parser.add_argument('--os-auth-token', default=env('OS_AUTH_TOKEN'), help='Defaults to env[OS_AUTH_TOKEN]') self.parser.add_argument('--solum-url', default=env('SOLUM_URL'), help='Defaults to env[SOLUM_URL]') self.parser.add_argument('--solum-api-version', default=env( 'SOLUM_API_VERSION', default='1'), help='Defaults to env[SOLUM_API_VERSION] ' 'or 1') action = None try: parsed, _ = parser.parse_known_args() action = parsed.action except Exception: # Parser has a habit of doing this when an arg is missing. self.parser.print_help() client_args = parsed.__dict__ if not (parsed.os_auth_token and parsed.solum_url): # Remove arguments that are not to be passed to the client in this # case. del client_args['os_auth_token'] if not parsed.os_username: raise exc.CommandError("You must provide a username via " "either --os-username or via " "env[OS_USERNAME]") if not parsed.os_password: raise exc.CommandError("You must provide a password via " "either --os-password or via " "env[OS_PASSWORD]") if not parsed.os_tenant_name: raise exc.CommandError("You must provide a tenant_name via " "either --os-tenant-name or via " "env[OS_TENANT_NAME]") if not parsed.os_auth_url: raise exc.CommandError("You must provide an auth url via " "either --os-auth-url or via " "env[OS_AUTH_URL]") else: client_args['endpoint'] = client_args['solum_url'] del client_args['solum_url'] if client_args['action'] == 'build': self.client = builder_client.get_client(parsed.solum_api_version, **client_args) else: self.client = solum_client.get_client(parsed.solum_api_version, **client_args) if action in self._actions: try: self.parser.error = self.parser.the_error self._actions[action]() except (exceptions.ClientException, ks_exc.ClientException): # Don't print usage help on functional errors. raise except Exception: self.parser.print_help() raise else: self.help() raise exceptions.CommandError('"%s" is not a valid action' % action)
def test_get_client_insecure(self): env = dict((k, v) for k, v in FAKE_ENV.items() if k is not None) test_client = client.get_client('1', **env) self.assertTrue(test_client.http_client.verify) test_client = client.get_client('1', verify=False) self.assertFalse(test_client.http_client.verify)
def test_get_client_debug(self): env = dict((k, v) for k, v in FAKE_ENV.items() if k is not None) test_client = client.get_client('1', **env) self.assertFalse(test_client.http_client.debug) test_client = client.get_client('1', debug=True) self.assertTrue(test_client.http_client.debug)
def __init__(self, parser): self.parser = parser self._get_global_flags() self.parser.add_argument("action", default="help", help="Action to perform on resource") self.parser.add_argument("--os-username", default=env("OS_USERNAME"), help="Defaults to env[OS_USERNAME]") self.parser.add_argument("--os-password", default=env("OS_PASSWORD"), help="Defaults to env[OS_PASSWORD]") self.parser.add_argument( "--os-tenant-name", default=env("OS_TENANT_NAME"), help="Defaults to env[OS_TENANT_NAME]" ) self.parser.add_argument("--os-auth-url", default=env("OS_AUTH_URL"), help="Defaults to env[OS_AUTH_URL]") self.parser.add_argument("--os-auth-token", default=env("OS_AUTH_TOKEN"), help="Defaults to env[OS_AUTH_TOKEN]") self.parser.add_argument("--solum-url", default=env("SOLUM_URL"), help="Defaults to env[SOLUM_URL]") self.parser.add_argument( "--solum-api-version", default=env("SOLUM_API_VERSION", default="1"), help="Defaults to env[SOLUM_API_VERSION] " "or 1", ) action = None try: parsed, _ = parser.parse_known_args() action = parsed.action except Exception: # Parser has a habit of doing this when an arg is missing. self.parser.print_help() client_args = parsed.__dict__ if not (parsed.os_auth_token and parsed.solum_url): # Remove arguments that are not to be passed to the client in this # case. del client_args["os_auth_token"] if not parsed.os_username: raise exc.CommandError( "You must provide a username via " "either --os-username or via " "env[OS_USERNAME]" ) if not parsed.os_password: raise exc.CommandError( "You must provide a password via " "either --os-password or via " "env[OS_PASSWORD]" ) if not parsed.os_tenant_name: raise exc.CommandError( "You must provide a tenant_name via " "either --os-tenant-name or via " "env[OS_TENANT_NAME]" ) if not parsed.os_auth_url: raise exc.CommandError( "You must provide an auth url via " "either --os-auth-url or via " "env[OS_AUTH_URL]" ) else: client_args["endpoint"] = client_args["solum_url"] del client_args["solum_url"] self.client = solum_client.get_client(parsed.solum_api_version, **client_args) if action in self._actions: try: self.parser.error = self.parser.the_error self._actions[action]() except (exceptions.ClientException, ks_exc.ClientException): # Don't print usage help on functional errors. raise except Exception: self.parser.print_help() raise else: self.help() raise exceptions.CommandError('"%s" is not a valid action' % action)