コード例 #1
0
ファイル: base.py プロジェクト: guzsuryasr/openstacknew
def get_client(version):
    """Create a keystoneclient instance to run functional tests.

    The client is instantiated via os-client-config either based on a
    clouds.yaml config file or from the environment variables.

    First, look for a 'functional_admin' cloud, as this is a cloud that the
    user may have defined for functional testing with admin credentials. If
    that is not found, check for the 'devstack-admin' cloud. Finally, fall
    back to looking for environment variables.

    """
    for cloud in OPENSTACK_CLOUDS:
        try:
            cloud_config = os_client_config.get_config(
                cloud=cloud, identity_api_version=version)
            return cloud_config.get_legacy_client(service_key=IDENTITY_CLIENT,
                                                  constructor=client.Client)

        except os_client_config.exceptions.OpenStackConfigException:
            pass

    raise Exception("Could not find any cloud definition for clouds named"
                    " functional_admin or devstack-admin. Check your"
                    " clouds.yaml file or your envvars and try again.")
コード例 #2
0
ファイル: test_init.py プロジェクト: dtroyer/os-client-config
 def test_get_config_without_arg_parser(self):
     cloud_config = os_client_config.get_config(
         options=None, validate=False)
     self.assertIsInstance(
         cloud_config,
         os_client_config.cloud_config.CloudConfig
     )
コード例 #3
0
 def __init__(self, **kwargs):
     if "case_name" not in kwargs:
         kwargs["case_name"] = 'tenantnetwork1'
     super(TenantNetwork1, self).__init__(**kwargs)
     self.dir_results = os.path.join(getattr(config.CONF, 'dir_results'))
     self.res_dir = os.path.join(self.dir_results, self.case_name)
     self.output_log_name = 'functest.log'
     self.output_debug_log_name = 'functest.debug.log'
     try:
         cloud_config = os_client_config.get_config()
         self.cloud = self.orig_cloud = shade.OpenStackCloud(
             cloud_config=cloud_config)
     except Exception:  # pylint: disable=broad-except
         self.cloud = self.orig_cloud = None
         self.ext_net = None
         self.__logger.exception("Cannot connect to Cloud")
     try:
         self.ext_net = self.get_external_network(self.cloud)
     except Exception:  # pylint: disable=broad-except
         self.ext_net = None
         self.__logger.exception("Cannot get the external network")
     self.guid = str(uuid.uuid4())
     self.network = None
     self.subnet = None
     self.router = None
コード例 #4
0
    def __init__(self, **kwargs):
        super(SnapsTestRunner, self).__init__(**kwargs)
        self.logger = logging.getLogger(__name__)

        try:
            cloud_config = os_client_config.get_config()
            self.orig_cloud = shade.OpenStackCloud(cloud_config=cloud_config)
            guid = str(uuid.uuid4())
            self.project = tenantnetwork.NewProject(self.orig_cloud,
                                                    self.case_name, guid)
            self.project.create()
        except Exception:  # pylint: disable=broad-except
            raise Exception("Cannot create user or project")

        if self.orig_cloud.get_role("admin"):
            role_name = "admin"
        elif self.orig_cloud.get_role("Admin"):
            role_name = "Admin"
        else:
            raise Exception("Cannot detect neither admin nor Admin")
        self.orig_cloud.grant_role(role_name,
                                   user=self.project.user.id,
                                   project=self.project.project.id,
                                   domain=self.project.domain.id)
        self.role = None
        if not self.orig_cloud.get_role("heat_stack_owner"):
            self.role = self.orig_cloud.create_role("heat_stack_owner")
        self.orig_cloud.grant_role("heat_stack_owner",
                                   user=self.project.user.id,
                                   project=self.project.project.id,
                                   domain=self.project.domain.id)
        creds_overrides = dict(username=self.project.user.name,
                               project_name=self.project.project.name,
                               project_id=self.project.project.id,
                               password=self.project.password)
        self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials(
            overrides=creds_overrides)
        if 'ext_net_name' in kwargs:
            self.ext_net_name = kwargs['ext_net_name']
        else:
            self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)

        self.netconf_override = None
        if hasattr(config.CONF, 'snaps_network_config'):
            self.netconf_override = getattr(config.CONF,
                                            'snaps_network_config')

        self.use_fip = (getattr(config.CONF,
                                'snaps_use_floating_ips') == 'True')
        self.use_keystone = (getattr(config.CONF,
                                     'snaps_use_keystone') == 'True')

        self.flavor_metadata = getattr(config.CONF, 'snaps_flavor_extra_specs',
                                       None)
        self.logger.info("Using flavor metadata '%s'", self.flavor_metadata)

        self.image_metadata = None
        if hasattr(config.CONF, 'snaps_images'):
            self.image_metadata = getattr(config.CONF, 'snaps_images')
コード例 #5
0
ファイル: test_init.py プロジェクト: dtroyer/os-client-config
 def test_get_config_with_arg_parser(self):
     cloud_config = os_client_config.get_config(
         options=argparse.ArgumentParser(),
         validate=False)
     self.assertIsInstance(
         cloud_config,
         os_client_config.cloud_config.CloudConfig
     )
コード例 #6
0
ファイル: connection_check.py プロジェクト: boucherv/functest
 def __init__(self, **kwargs):
     if "case_name" not in kwargs:
         kwargs["case_name"] = 'connection_check'
     super(ConnectionCheck, self).__init__(**kwargs)
     try:
         cloud_config = os_client_config.get_config()
         self.cloud = shade.OpenStackCloud(cloud_config=cloud_config)
     except Exception:  # pylint: disable=broad-except
         self.cloud = None
コード例 #7
0
 def check_requirements(self):
     """Skip if OpenStack Rocky or newer."""
     try:
         cloud_config = os_client_config.get_config()
         cloud = shade.OpenStackCloud(cloud_config=cloud_config)
         if functest_utils.get_nova_version(cloud) > (2, 60):
             self.is_skipped = True
     except Exception:  # pylint: disable=broad-except
         pass
コード例 #8
0
def main():
    module = AnsibleModule(argument_spec=dict(project_name=dict(required=True,
                                                                type='str'), ),
                           supports_check_mode=False)

    try:
        cloud_config = os_client_config.get_config()
        identity_client = cloud_config.get_session_client("identity")
        compute_client = cloud_config.get_session_client("compute")
    except Exception, e:
        module.fail_json(msg="Unable to initialise OpenStack client: %s" % e)
コード例 #9
0
def get_share_client(module):
    # NOTE: set OS_CLOUD environment variable to choose a named entry from clouds.yaml
    if 'OS_CLOUD' in os.environ:
        try:
            cloud_config = os_client_config.get_config()
            share_client = cloud_config.get_session_client("sharev2")
        except Exception as e:
            module.fail_json(
                msg=
                "Please check your OpenStack clouds.yaml[%s] credentials: %s" %
                (os.environ['OS_CLOUD'], e))
    else:
        # OS_CLOUD not set - fall back to other mechanisms for credential handling
        try:
            share_client = os_client_config.session_client("sharev2")
        except Exception as e:
            module.fail_json(
                msg="Please check your OpenStack environment credentials: %s" %
                e)

    return share_client
コード例 #10
0
 def test_get_config_with_arg_parser(self):
     cloud_config = os_client_config.get_config(
         options=argparse.ArgumentParser(), validate=False)
     self.assertIsInstance(cloud_config,
                           os_client_config.cloud_config.CloudConfig)
コード例 #11
0
 def test_get_config_without_arg_parser(self):
     cloud_config = os_client_config.get_config(options=None,
                                                validate=False)
     self.assertIsInstance(cloud_config,
                           os_client_config.cloud_config.CloudConfig)
コード例 #12
0
 def __init__(self, **kwargs):
     self.cloud = shade.OperatorCloud(os_client_config.get_config(**kwargs))
     self.images = []
     self.flavors = []
コード例 #13
0
def get_sahara_client():
    cloud_config = os_client_config.get_config()
    return cloud_config.get_session_client("data_processing")