Esempio n. 1
0
    def test_import_versioned_module(self):
        v2 = importutils.import_versioned_module('oslo_utils.tests.fake', 2)
        self.assertEqual(sys.modules['oslo_utils.tests.fake.v2'], v2)

        dummpy = importutils.import_versioned_module('oslo_utils.tests.fake',
                                                     2, 'dummpy')
        self.assertEqual(sys.modules['oslo_utils.tests.fake.v2.dummpy'],
                         dummpy)
Esempio n. 2
0
    def test_import_versioned_module(self):
        v2 = importutils.import_versioned_module('oslo_utils.tests.fake', 2)
        self.assertEqual(sys.modules['oslo_utils.tests.fake.v2'], v2)

        dummpy = importutils.import_versioned_module('oslo_utils.tests.fake',
                                                     2, 'dummpy')
        self.assertEqual(sys.modules['oslo_utils.tests.fake.v2.dummpy'],
                         dummpy)
def Client(version, *args, **kwargs):
    client_kwargs = _adjust_kwargs(kwargs)

    module = importutils.import_versioned_module('ceilometerclient', version,
                                                 'client')
    client_class = getattr(module, 'Client')
    return client_class(*args, **client_kwargs)
def Client(version, *args, **kwargs):
    client_kwargs = _adjust_kwargs(kwargs)

    module = importutils.import_versioned_module('ceilometerclient',
                                                 version, 'client')
    client_class = getattr(module, 'Client')
    return client_class(*args, **client_kwargs)
Esempio n. 5
0
    def _load_commands(self):
        version = self.options.monasca_api_version

        submodule = importutils.import_versioned_module('monascaclient',
                                                        version,
                                                        'shell')

        self._find_actions(submodule)
Esempio n. 6
0
def GlanceImageService(client=None, version=1, context=None):
    module_str = "ironic.common.glance_service"
    module = importutils.import_versioned_module(module_str, version, "image_service")
    service_class = getattr(module, "GlanceImageService")
    if context is not None and CONF.glance.auth_strategy == "keystone" and not context.auth_token:
        session = _get_glance_session()
        context.auth_token = keystone.get_admin_auth_token(session)
    return service_class(client, version, context)
Esempio n. 7
0
    def _load_commands(self):
        version = self.options.monasca_api_version

        submodule = importutils.import_versioned_module('monascaclient',
                                                        version,
                                                        'shell')

        self._find_actions(submodule)
Esempio n. 8
0
def GlanceImageService(client=None, version=None, context=None):
    module_str = 'ironic.common.glance_service'
    if version is None:
        version = CONF.glance.glance_api_version

    module = importutils.import_versioned_module(module_str, version,
                                                 'image_service')
    service_class = getattr(module, 'GlanceImageService')
    return service_class(client, version, context)
Esempio n. 9
0
def GlanceImageService(client=None, version=1, context=None):
    module_str = 'ironic.common.glance_service'
    module = importutils.import_versioned_module(module_str, version,
                                                 'image_service')
    service_class = getattr(module, 'GlanceImageService')
    if (context is not None and CONF.glance.auth_strategy == 'keystone'
            and not context.auth_token):
        session = _get_glance_session()
        context.auth_token = keystone.get_admin_auth_token(session)
    return service_class(client, version, context)
Esempio n. 10
0
    def get_subcommand_parser(self, version):
        parser = self.get_base_parser()

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>',
                                           dest='subparser_name')
        submodule = importutils.import_versioned_module('ironicclient',
                                                        version, 'shell')
        submodule.enhance_parser(parser, subparsers, self.subcommands)
        utils.define_commands_from_module(subparsers, self, self.subcommands)
        return parser
Esempio n. 11
0
    def get_subcommand_parser(self, version):
        parser = self.get_base_parser()

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>',
                                           dest='subparser_name')
        submodule = importutils.import_versioned_module(
            'ironicclient', version, 'shell')
        submodule.enhance_parser(parser, subparsers, self.subcommands)
        utils.define_commands_from_module(subparsers, self, self.subcommands)
        return parser
Esempio n. 12
0
    def get_subcommand_parser(self, version):
        parser = self.get_base_parser()

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>')
        submodule = importutils.import_versioned_module(
            'fmclient', version, 'shell')
        submodule.enhance_parser(parser, subparsers, self.subcommands)
        utils.define_commands_from_module(subparsers, self, self.subcommands)
        self._add_bash_completion_subparser(subparsers)
        return parser
Esempio n. 13
0
    def get_subcommand_parser(self, version, argv):
        parser = self.get_base_parser(argv)

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>')
        submodule = importutils.import_versioned_module(
            'muranoclient', version, 'shell')
        self._find_actions(subparsers, submodule)
        self._find_actions(subparsers, self)

        return parser
Esempio n. 14
0
    def get_subcommand_parser(self, version, argv=None):
        parser = self.get_base_parser(argv)

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>')
        submodule = importutils.import_versioned_module(
            'karborclient', version, 'shell'
        )
        self._find_actions(subparsers, submodule)
        self._find_actions(subparsers, self)

        return parser
Esempio n. 15
0
def GlanceImageService(client=None, version=None, context=None):
    module_str = 'ironic.common.glance_service'
    if version is None:
        version = CONF.glance.glance_api_version

    module = importutils.import_versioned_module(module_str, version,
                                                 'image_service')
    service_class = getattr(module, 'GlanceImageService')
    if (context is not None and CONF.glance.auth_strategy == 'keystone'
        and not context.auth_token):
            context.auth_token = _get_glance_session().get_token()
    return service_class(client, version, context)
Esempio n. 16
0
    def get_subcommand_parser(self, version):
        parser = self.get_base_parser()

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>')
        submodule = importutils.import_versioned_module('ceilometerclient',
                                                        version, 'shell')
        self._find_actions(subparsers, submodule)
        self._find_actions(subparsers, self)
        self._add_bash_completion_subparser(subparsers)

        return parser
Esempio n. 17
0
    def get_subcommand_parser(self, version):
        parser = self.get_base_parser()

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>')
        submodule = importutils.import_versioned_module(
            'heatclient', version, 'shell')
        self._find_actions(subparsers, submodule)
        self._find_actions(subparsers, self)
        self._add_bash_completion_subparser(subparsers)

        return parser
Esempio n. 18
0
def Client(version=None, endpoint=None, session=None, *args, **kwargs):
    """Client for the OpenStack Images API.

    Generic client for the OpenStack Images API. See version classes
    for specific details.

    :param string version: The version of API to use.
    :param session: A keystoneauth1 session that should be used for transport.
    :type session: keystoneauth1.session.Session
    """
    # FIXME(jamielennox): Add a deprecation warning if no session is passed.
    # Leaving it as an option until we can ensure nothing break when we switch.
    if session:
        if endpoint:
            kwargs.setdefault('endpoint_override', endpoint)

            if not version:
                __, version = utils.strip_version(endpoint)

        if not version:
            msg = ("You must provide a client version when using session")
            raise RuntimeError(msg)

    else:
        if version is not None:
            warnings.warn(("`version` keyword is being deprecated. Please pass"
                           " the version as part of the URL. "
                           "http://$HOST:$PORT/v$VERSION_NUMBER"),
                          DeprecationWarning)

        endpoint, url_version = utils.strip_version(endpoint)
        version = version or url_version

        if not version:
            msg = ("Please provide either the version or an url with the form "
                   "http://$HOST:$PORT/v$VERSION_NUMBER")
            raise RuntimeError(msg)

    module = importutils.import_versioned_module('glanceclient', int(version),
                                                 'client')
    client_class = getattr(module, 'Client')
    return client_class(endpoint, *args, session=session, **kwargs)
Esempio n. 19
0
    def get_subcommand_parser(self, version):
        parser = self.get_base_parser()

        self.subcommands = {}
        subparsers = parser.add_subparsers(metavar='<subcommand>',
                                           dest='subparser_name')
        try:
            submodule = importutils.import_versioned_module('ironicclient',
                                                            version, 'shell')
        except ImportError as e:
            msg = _("Invalid client version '%(version)s'. "
                    "Major part must be one of: '%(major)s'") % {
                "version": version,
                "major": ", ".join(self.get_available_major_versions())}
            raise exceptions.UnsupportedVersion(
                _('%(message)s, error was: %(error)s') %
                {'message': msg, 'error': e})
        submodule.enhance_parser(parser, subparsers, self.subcommands)
        utils.define_commands_from_module(subparsers, self, self.subcommands)
        return parser
Esempio n. 20
0
def Client(version, endpoint_override=None, session=None, *args, **kwargs):
    """Create a client of an appropriate version.

    This call requires a session. If you want it to be created, use
    ``get_client`` instead.

    :param endpoint_override: A bare metal endpoint to use.
    :param session: A keystoneauth session to use. This argument is actually
        required and is marked optional only for backward compatibility.
    :param args: Other arguments to pass to the HTTP client. Not recommended,
        use kwargs instead.
    :param kwargs: Other keyword arguments to pass to the HTTP client (e.g.
        ``insecure``).
    """
    module = importutils.import_versioned_module('ironicclient', version,
                                                 'client')
    client_class = getattr(module, 'Client')
    return client_class(endpoint_override=endpoint_override,
                        session=session,
                        *args,
                        **kwargs)
Esempio n. 21
0
def get_client(version,
               endpoint=None,
               session=None,
               auth_token=None,
               fm_url=None,
               username=None,
               password=None,
               auth_url=None,
               project_id=None,
               project_name=None,
               region_name=None,
               timeout=None,
               user_domain_id=None,
               user_domain_name=None,
               project_domain_id=None,
               project_domain_name=None,
               service_type=SERVICE_TYPE,
               endpoint_type=None,
               **ignored_kwargs):
    """Get an authenticated client, based on the credentials."""
    kwargs = {}
    interface = endpoint_type or 'publicURL'
    endpoint = endpoint or fm_url
    if auth_token and endpoint:
        kwargs.update({
            'token': auth_token,
        })
        if timeout:
            kwargs.update({
                'timeout': timeout,
            })
    elif auth_url:
        auth_kwargs = {}
        auth_type = 'password'
        auth_kwargs.update({
            'auth_url': auth_url,
            'project_id': project_id,
            'project_name': project_name,
            'user_domain_id': user_domain_id,
            'user_domain_name': user_domain_name,
            'project_domain_id': project_domain_id,
            'project_domain_name': project_domain_name,
        })
        if username and password:
            auth_kwargs.update({'username': username, 'password': password})
        elif auth_token:
            auth_type = 'token'
            auth_kwargs.update({
                'token': auth_token,
            })

        # Create new session only if it was not passed in
        if not session:
            loader = loading.get_plugin_loader(auth_type)
            auth_plugin = loader.load_from_options(**auth_kwargs)
            session = loading.session.Session().load_from_options(
                auth=auth_plugin, timeout=timeout)

    exception_msg = _('Must provide Keystone credentials or user-defined '
                      'endpoint and token')
    if not endpoint:
        if session:
            try:
                endpoint = session.get_endpoint(service_type=service_type,
                                                interface=interface,
                                                region_name=region_name)
            except Exception as e:
                raise exc.AuthSystem(
                    _('%(message)s, error was: %(error)s') % {
                        'message': exception_msg,
                        'error': e
                    })
        else:
            # Neither session, nor valid auth parameters provided
            raise exc.AuthSystem(exception_msg)

    kwargs['endpoint_override'] = endpoint
    kwargs['service_type'] = service_type
    kwargs['interface'] = interface
    kwargs['version'] = version

    fm_module = importutils.import_versioned_module('fmclient', version,
                                                    'client')
    client_class = getattr(fm_module, 'Client')
    return client_class(endpoint, session=session, **kwargs)
Esempio n. 22
0
def Client(version, *args, **kwargs):
    module = importutils.import_versioned_module('vitrageclient', version,
                                                 'client')
    client_class = getattr(module, 'Client')
    return client_class(*args, **kwargs)
Esempio n. 23
0
def Client(version, *args, **kwargs):
    module = importutils.import_versioned_module('ironicclient',
                                                 version, 'client')
    client_class = getattr(module, 'Client')
    return client_class(*args, **kwargs)