Exemple #1
0
    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__)
Exemple #2
0
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)
Exemple #3
0
    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)