Example #1
0
    def test_client_init(self):
        self.assertRaises(client.VersionNotSupported,
                          client.ClientV1,
                          session=self.session,
                          api_version=(1, 999))
        self.assertRaises(client.VersionNotSupported,
                          client.ClientV1,
                          session=self.session,
                          api_version=2)

        self.assertTrue(
            client.ClientV1(api_version=1,
                            session=self.session).server_api_versions())
        self.assertTrue(
            client.ClientV1(api_version='1.0',
                            session=self.session).server_api_versions())
        self.assertTrue(
            client.ClientV1(api_version=(1, 0),
                            session=self.session).server_api_versions())

        self.assertTrue(
            client.ClientV1(
                inspector_url='http://127.0.0.1:5050').server_api_versions())
        self.assertTrue(
            client.ClientV1(inspector_url='http://127.0.0.1:5050/v1').
            server_api_versions())
Example #2
0
def load_auth_clients():
    auth_fields = {
        'auth_url': os.environ['OS_AUTH_URL'],
        'username': os.environ['OS_USERNAME'],
        'password': os.environ['OS_PASSWORD'],
        'project_name': os.environ['OS_PROJECT_NAME'],
        'user_domain_name': os.environ['OS_USER_DOMAIN_NAME'],
        'project_domain_name': os.environ['OS_PROJECT_DOMAIN_NAME']
    }

    v3_auth = v3.Password(**auth_fields)
    ks_sess = keystone_session.Session(auth=v3_auth, verify=False)
    ks_client = keystone_client.Client(session=ks_sess)
    CLIENTS['keystone'] = ks_client

    gl_client = glanceclient.Client('2', session=ks_sess)
    CLIENTS['glance'] = gl_client

    nv_client = nova_client.Client(2, session=ks_sess)
    CLIENTS['nova'] = nv_client

    ir_client = ironic_client.get_client(1,
                                         insecure=True,
                                         os_ironic_api_version='1.46',
                                         **auth_fields)
    CLIENTS['ironic'] = ir_client

    ins_client = ironic_inspector_client.ClientV1(session=ks_sess)
    CLIENTS['ironic-inspector'] = ins_client
Example #3
0
 def setUp(self):
     super(TestV1PythonAPI, self).setUp()
     self.auth = token_endpoint.Token(endpoint='http://127.0.0.1:5050',
                                      token='token')
     self.session = ks_session.Session(self.auth)
     self.client = client.ClientV1(session=self.session)
     functional.cfg.CONF.set_override('store_data', 'none', 'processing')
Example #4
0
def make_client(instance):
    return ironic_inspector_client.ClientV1(
        inspector_url=instance.get_configuration().get('inspector_url'),
        session=instance.session,
        api_version=instance._api_version[API_NAME],
        interface=instance._interface,
        region_name=instance._region_name)
Example #5
0
    def get_baremetal_introspection_client(self, context):
        bmi_endpoint = keystone_utils.get_endpoint_for_project(
            'ironic-inspector')

        return ironic_inspector_client.ClientV1(
            api_version='1.2',
            inspector_url=bmi_endpoint.url,
            region_name=bmi_endpoint.region,
            auth_token=context.auth_token)
Example #6
0
    def get_baremetal_introspection_client(self, context):
        bmi_endpoint = keystone_utils.get_endpoint_for_project(
            context, 'ironic-inspector')

        auth = Token(endpoint=bmi_endpoint.url, token=context.auth_token)

        return ironic_inspector_client.ClientV1(
            api_version='1.2',
            region_name=bmi_endpoint.region,
            session=ks_session.Session(auth))
Example #7
0
def make_client(instance):
    url = instance.get_configuration().get('inspector_url')
    if not url:
        url = instance.get_endpoint_for_service_type(
            'baremetal-introspection',
            interface=instance.interface,
            region_name=instance._region_name)
    return ironic_inspector_client.ClientV1(
        inspector_url=url,
        session=instance.session,
        api_version=instance._api_version[API_NAME],
        interface=instance._interface,
        region_name=instance._region_name)
def get_disks(args):
    try:
        ironic = ironicclient.client.get_client(
            1,
            os_username=args.os_username,
            os_password=args.os_password,
            os_auth_url=args.os_auth_url,
            os_tenant_name=args.os_tenant_name)
    except ironicclient.exc.AmbiguousAuthSystem as exc:
        logging.error(exc)
        return [], {}

    loader = ksloading.get_plugin_loader('password')

    auth_plugin = loader.load_from_options(username=args.os_username,
                                           password=args.os_password,
                                           auth_url=args.os_auth_url,
                                           tenant_name=args.os_tenant_name)

    keystone_session = ksloading.session.Session().load_from_options(
        auth=auth_plugin)

    insp_client = ironic_inspector_client.ClientV1(session=keystone_session)
    all_disks = []
    node_data_json = {}
    for node in ironic.node.list():
        details = ironic.node.get(node.uuid)
        data = insp_client.get_data(node.uuid)
        root_disk = data.get('root_disk')
        disks = data.get('inventory', {}).get('disks', [])
        machine_uuid = data.get('extra', {}).get('system',
                                                 {}).get('product',
                                                         {}).get('uuid')
        node_data_json[machine_uuid] = {}
        node_data_json[machine_uuid]["swift::storage::disks::args"] = {}
        for disk in disks:
            if root_disk.get('name') != disk.get('name'):
                device = os.path.basename(disk.get('name'))
                entry = {
                    'ip': "%s.storagemgmt" % machine_uuid.lower(),
                    'device': device,
                    'size': disk.get('size', 0),
                    'meta': '%s:%s' % (machine_uuid.lower(), device)
                }
                all_disks.append(entry)
                node_data_json[machine_uuid]["swift::storage::disks::args"][
                    device] = {}

    return all_disks, node_data_json
Example #9
0
    def get_ironic_inspector_client(self):
        """Return the ironic inspector client.

        This method will return a client object using the legacy library. Upon
        the creation of a successful client creation, the client object will
        be stored in the `self.client_cache object`, should this method be
        called more than once, the cached object will automatically return,
        resulting in fewer authentications and faster API interactions.

        :returns: Object
        """

        if 'ironic_inspector_client' in self.client_cache:
            return self.client_cache['ironic_inspector_client']
        else:
            self.client_cache['ironic_inspector_client'] = \
                ironic_inspector_client.ClientV1(session=self.sess)
            return self.client_cache['ironic_inspector_client']
Example #10
0
 def _create_inspector_client(self):
     assert ironic_inspector_client is not None, \
         'BUG: _create_inspector_client called without inspector client'
     # NOTE(dtantsur): endpoint_override is required to respect settings in
     # clouds.yaml, such as baremetal_introspection_endpoint_override.
     endpoint_override = self.cloud_region.get_endpoint(_INSPECTOR_TYPE)
     try:
         return ironic_inspector_client.ClientV1(
             inspector_url=endpoint_override,
             session=self.cloud_region.get_session(),
             region_name=self.cloud_region.get_region_name(_INSPECTOR_TYPE),
         )
     except ironic_inspector_client.EndpointNotFound as e:
         # Re-raise with a more obvious message.
         raise exc.EndpointNotFound(_HELP % {
             'err': e,
             'cmd': sys.argv[0],
             'project': 'ironic-inspector'
         })
Example #11
0
    def get_inspector_client(self):
        os_auth_url, os_tenant_name, os_username, os_password, \
            os_user_domain_name, os_project_domain_name = \
            CredentialHelper.get_undercloud_creds()
        auth_url = os_auth_url + "v3"

        kwargs = {
            'username': os_username,
            'password': os_password,
            'auth_url': os_auth_url,
            'project_id': os_tenant_name,
            'user_domain_name': os_user_domain_name,
            'project_domain_name': os_project_domain_name
        }
        auth = v3.Password(auth_url=auth_url,
                           username=os_username,
                           password=os_password,
                           project_name=os_tenant_name,
                           user_domain_name=os_user_domain_name,
                           project_domain_name=os_project_domain_name)
        sess = session.Session(auth=auth)
        self.inspector = ironic_inspector_client.ClientV1(session=sess)
Example #12
0
 def set_ironic_clients(self):
     self.ironic_client_kwargs['os_auth_url'] = self.auth_url
     self.ironic_client = \
         ironicclient.get_client(1, **self.ironic_client_kwargs)
     self.ironic_inspector_client = ironic_inspector_client.ClientV1(
         session=self.keystone_session)
 def get_client(self, **kwargs):
     kwargs.setdefault('inspector_url', self.my_ip)
     return ironic_inspector_client.ClientV1(**kwargs)
Example #14
0
 def setUp(self):
     super(TestV1PythonAPI, self).setUp()
     self.client = client.ClientV1()
     functional.cfg.CONF.set_override('store_data', '', 'processing')
Example #15
0
 def setUp(self):
     super(TestV1PythonAPI, self).setUp()
     self.auth = token_endpoint.Token(endpoint='http://127.0.0.1:5050',
                                      token='token')
     self.session = ks_session.Session(self.auth)
     self.client = client.ClientV1(session=self.session)
Example #16
0
 def get_client(self, **kwargs):
     return ironic_inspector_client.ClientV1(auth_token=self.token,
                                             **kwargs)