Пример #1
0
def _test_configuration_is_applied_to_instance(instance, configuration_id):
    if CONFIG.fake_mode:
        raise SkipTest("configuration from sql does not work in fake mode")
    instance_test = instance_info.dbaas.instances.get(instance.id)
    assert_equal(configuration_id, instance_test.configuration['id'])
    if configuration_id:
        testconfig_info = instance_info.dbaas.configurations.get(
            configuration_id)
    else:
        testconfig_info = instance_info.dbaas.instance.configuration(
            instance.id)
        testconfig_info['configuration']
    conf_instances = instance_info.dbaas.configurations.instances(
        configuration_id)
    config_instance_ids = [inst.id for inst in conf_instances]
    assert_true(instance_test.id in config_instance_ids)
    cfg_names = testconfig_info.values.keys()

    host = _get_address(instance.id)
    for user in instance.users:
        username = user['name']
        password = user['password']
        concat_variables = "','".join(cfg_names)
        query = ("show variables where Variable_name "
                 "in ('%s');" % concat_variables)
        actual_values = _execute_query(host, username, password, query)
    print("actual_values %s" % actual_values)
    print("testconfig_info.values %s" % testconfig_info.values)
    assert_true(len(actual_values) == len(cfg_names))

    # check the configs exist
    attrcheck = AttrCheck()
    expected_attrs = [actual_key for actual_key, actual_value in actual_values]
    attrcheck.attrs_exist(testconfig_info.values, expected_attrs,
                          msg="Configurations parameters")

    def _get_parameter_type(name):
        instance_info.dbaas.configuration_parameters.get_parameter(
            instance_info.dbaas_datastore,
            instance_info.dbaas_datastore_version,
            name)
        resp, body = instance_info.dbaas.client.last_response
        print(resp)
        print(body)
        return json.loads(body)['type']

    # check the config values are correct
    for key, value in actual_values:
        key_type = _get_parameter_type(key)
        # mysql returns 'ON' and 'OFF' for True and False respectively
        if value == 'ON':
            converted_key_value = (str(key), 1)
        elif value == 'OFF':
            converted_key_value = (str(key), 0)
        else:
            if key_type == 'integer':
                value = int(value)
            converted_key_value = (str(key), value)
        print("converted_key_value: %s" % str(converted_key_value))
        assert_true(converted_key_value in testconfig_info.values.items())
Пример #2
0
 def test_expected_get_configuration_parameter(self):
     # tests get on a single parameter to verify it has expected attributes
     param_name = 'key_buffer_size'
     allowed_config_params = ['name', 'restart_required',
                              'max', 'min', 'type',
                              'deleted', 'deleted_at',
                              'datastore_version_id']
     param = instance_info.dbaas.configuration_parameters.get_parameter(
         instance_info.dbaas_datastore,
         instance_info.dbaas_datastore_version,
         param_name)
     resp, body = instance_info.dbaas.client.last_response
     print("params: %s" % param)
     print("resp: %s" % resp)
     print("body: %s" % body)
     attrcheck = AttrCheck()
     config_parameter_dict = json.loads(body)
     print("config_parameter_dict: %s" % config_parameter_dict)
     attrcheck.contains_allowed_attrs(
         config_parameter_dict,
         allowed_config_params,
         msg="Get Configuration parameter")
     assert_equal(param_name, config_parameter_dict['name'])
     with TypeCheck('ConfigurationParameter', param) as parameter:
         parameter.has_field('name', six.string_types)
         parameter.has_field('restart_required', bool)
         parameter.has_field('max', six.integer_types)
         parameter.has_field('min', six.integer_types)
         parameter.has_field('type', six.string_types)
         parameter.has_field('datastore_version_id', six.text_type)
Пример #3
0
 def test_expected_get_configuration_parameter(self):
     # tests get on a single parameter to verify it has expected attributes
     param_name = 'key_buffer_size'
     allowed_config_params = [
         'name', 'restart_required', 'max', 'min', 'type', 'deleted',
         'deleted_at', 'datastore_version_id'
     ]
     param = instance_info.dbaas.configuration_parameters.get_parameter(
         instance_info.dbaas_datastore,
         instance_info.dbaas_datastore_version, param_name)
     resp, body = instance_info.dbaas.client.last_response
     print("params: %s" % param)
     print("resp: %s" % resp)
     print("body: %s" % body)
     attrcheck = AttrCheck()
     config_parameter_dict = json.loads(body.decode())
     print("config_parameter_dict: %s" % config_parameter_dict)
     attrcheck.contains_allowed_attrs(config_parameter_dict,
                                      allowed_config_params,
                                      msg="Get Configuration parameter")
     assert_equal(param_name, config_parameter_dict['name'])
     with TypeCheck('ConfigurationParameter', param) as parameter:
         parameter.has_field('name', six.string_types)
         parameter.has_field('restart_required', bool)
         parameter.has_field('max', six.integer_types)
         parameter.has_field('min', six.integer_types)
         parameter.has_field('type', six.string_types)
         parameter.has_field('datastore_version_id', six.text_type)
Пример #4
0
def _test_configuration_is_applied_to_instance(instance, configuration_id):
    if CONFIG.fake_mode:
        raise SkipTest("configuration from sql does not work in fake mode")
    instance_test = instance_info.dbaas.instances.get(instance.id)
    assert_equal(configuration_id, instance_test.configuration['id'])
    if configuration_id:
        testconfig_info = instance_info.dbaas.configurations.get(
            configuration_id)
    else:
        testconfig_info = instance_info.dbaas.instance.configuration(
            instance.id)
        testconfig_info['configuration']
    conf_instances = instance_info.dbaas.configurations.instances(
        configuration_id)
    config_instance_ids = [inst.id for inst in conf_instances]
    assert_true(instance_test.id in config_instance_ids)
    cfg_names = testconfig_info.values.keys()

    host = _get_address(instance.id)
    for user in instance.users:
        username = user['name']
        password = user['password']
        concat_variables = "','".join(cfg_names)
        query = ("show variables where Variable_name "
                 "in ('%s');" % concat_variables)
        actual_values = _execute_query(host, username, password, query)
    print("actual_values %s" % actual_values)
    print("testconfig_info.values %s" % testconfig_info.values)
    assert_true(len(actual_values) == len(cfg_names))

    # check the configs exist
    attrcheck = AttrCheck()
    allowed_attrs = [actual_key for actual_key, actual_value in actual_values]
    attrcheck.contains_allowed_attrs(testconfig_info.values,
                                     allowed_attrs,
                                     msg="Configurations parameters")

    def _get_parameter_type(name):
        instance_info.dbaas.configuration_parameters.get_parameter(
            instance_info.dbaas_datastore,
            instance_info.dbaas_datastore_version, name)
        resp, body = instance_info.dbaas.client.last_response
        print(resp)
        print(body)
        return json.loads(body.decode())['type']

    # check the config values are correct
    for key, value in actual_values:
        key_type = _get_parameter_type(key)
        # mysql returns 'ON' and 'OFF' for True and False respectively
        if value == 'ON':
            converted_key_value = (str(key), 1)
        elif value == 'OFF':
            converted_key_value = (str(key), 0)
        else:
            if key_type == 'integer':
                value = int(value)
            converted_key_value = (str(key), value)
        print("converted_key_value: %s" % str(converted_key_value))
        assert_true(converted_key_value in testconfig_info.values.items())
Пример #5
0
 def test_flavor_get_attrs(self):
     allowed_attrs = ["id", "name", "ram", "links", "local_storage", "str_id"]
     flavor = self.rd_client.flavors.get(1)
     attrcheck = AttrCheck()
     flavor_dict = flavor._info
     attrcheck.contains_allowed_attrs(flavor_dict, allowed_attrs, msg="Flavor Get 1")
     attrcheck.links(flavor_dict["links"])
Пример #6
0
 def test_flavor_get_attrs(self):
     expected_attrs = ['id', 'name', 'ram', 'links', 'local_storage']
     flavor = self.rd_client.flavors.get(1)
     attrcheck = AttrCheck()
     flavor_dict = flavor._info
     attrcheck.attrs_exist(flavor_dict, expected_attrs,
                           msg="Flavor Get 1")
     attrcheck.links(flavor_dict['links'])
Пример #7
0
 def test_flavor_list_attrs(self):
     allowed_attrs = ["id", "name", "ram", "links", "local_storage", "str_id"]
     flavors = self.rd_client.flavors.list()
     attrcheck = AttrCheck()
     for flavor in flavors:
         flavor_dict = flavor._info
         attrcheck.contains_allowed_attrs(flavor_dict, allowed_attrs, msg="Flavors list")
         attrcheck.links(flavor_dict["links"])
Пример #8
0
 def test_flavor_list_attrs(self):
     expected_attrs = ['id', 'name', 'ram', 'links', 'local_storage']
     flavors = self.rd_client.flavors.list()
     attrcheck = AttrCheck()
     for flavor in flavors:
         flavor_dict = flavor._info
         attrcheck.attrs_exist(flavor_dict, expected_attrs,
                               msg="Flavors list")
         attrcheck.links(flavor_dict['links'])
Пример #9
0
 def test_flavor_get_attrs(self):
     allowed_attrs = ['id', 'name', 'ram', 'links', 'local_storage']
     flavor = self.rd_client.flavors.get(1)
     attrcheck = AttrCheck()
     flavor_dict = flavor._info
     attrcheck.contains_allowed_attrs(
         flavor_dict, allowed_attrs,
         msg="Flavor Get 1")
     attrcheck.links(flavor_dict['links'])
Пример #10
0
 def test_flavor_list_attrs(self):
     allowed_attrs = ['id', 'name', 'ram', 'vcpus', 'links',
                      'local_storage', 'str_id']
     flavors = self.rd_client.flavors.list()
     attrcheck = AttrCheck()
     for flavor in flavors:
         flavor_dict = flavor._info
         attrcheck.contains_allowed_attrs(
             flavor_dict, allowed_attrs,
             msg="Flavors list")
         attrcheck.links(flavor_dict['links'])
Пример #11
0
 def test_expected_get_configuration_parameter(self):
     # tests get on a single parameter to verify it has expected attributes
     param = 'key_buffer_size'
     expected_config_params = ['name', 'restart_required', 'max',
                               'min', 'type']
     instance_info.dbaas.configuration_parameters.get_parameter(
         instance_info.dbaas_datastore,
         instance_info.dbaas_datastore_version,
         param)
     resp, body = instance_info.dbaas.client.last_response
     print(resp)
     print(body)
     attrcheck = AttrCheck()
     config_parameter_dict = json.loads(body)
     print(config_parameter_dict)
     attrcheck.attrs_exist(config_parameter_dict, expected_config_params,
                           msg="Get Configuration parameter")
     assert_equal(param, config_parameter_dict['name'])
Пример #12
0
 def test_expected_get_configuration_parameter(self):
     # tests get on a single parameter to verify it has expected attributes
     param = 'key_buffer_size'
     expected_config_params = ['name', 'restart_required', 'max',
                               'min', 'type']
     instance_info.dbaas.configuration_parameters.get_parameter(
         instance_info.dbaas_datastore,
         instance_info.dbaas_datastore_version,
         param)
     resp, body = instance_info.dbaas.client.last_response
     print(resp)
     print(body)
     attrcheck = AttrCheck()
     config_parameter_dict = json.loads(body)
     print(config_parameter_dict)
     attrcheck.attrs_exist(config_parameter_dict, expected_config_params,
                           msg="Get Configuration parameter")
     assert_equal(param, config_parameter_dict['name'])
Пример #13
0
 def test_flavor_get_attrs(self):
     expected_attrs = ['id', 'name', 'ram', 'links', 'local_storage']
     flavor = self.rd_client.flavors.get(1)
     attrcheck = AttrCheck()
     flavor_dict = flavor._info
     attrcheck.attrs_exist(flavor_dict, expected_attrs, msg="Flavor Get 1")
     attrcheck.links(flavor_dict['links'])
Пример #14
0
 def test_expected_configurations_parameters(self):
     """test get expected configurations parameters"""
     expected_attrs = ["configuration-parameters"]
     instance_info.dbaas.configuration_parameters.parameters(
         instance_info.dbaas_datastore,
         instance_info.dbaas_datastore_version)
     resp, body = instance_info.dbaas.client.last_response
     attrcheck = AttrCheck()
     config_parameters_dict = json.loads(body)
     attrcheck.attrs_exist(config_parameters_dict, expected_attrs,
                           msg="Configurations parameters")
     # sanity check that a few options are in the list
     config_params_list = config_parameters_dict['configuration-parameters']
     config_param_keys = []
     for param in config_params_list:
         config_param_keys.append(param['name'])
     expected_config_params = ['key_buffer_size', 'connect_timeout']
     # check for duplicate configuration parameters
     msg = "check for duplicate configuration parameters"
     assert_equal(len(config_param_keys), len(set(config_param_keys)), msg)
     for expected_config_item in expected_config_params:
         assert_true(expected_config_item in config_param_keys)
Пример #15
0
 def test_expected_configurations_parameters(self):
     """Test get expected configurations parameters."""
     expected_attrs = ["configuration-parameters"]
     instance_info.dbaas.configuration_parameters.parameters(
         instance_info.dbaas_datastore, instance_info.dbaas_datastore_version
     )
     resp, body = instance_info.dbaas.client.last_response
     attrcheck = AttrCheck()
     config_parameters_dict = json.loads(body)
     attrcheck.attrs_exist(config_parameters_dict, expected_attrs, msg="Configurations parameters")
     # sanity check that a few options are in the list
     config_params_list = config_parameters_dict["configuration-parameters"]
     config_param_keys = []
     for param in config_params_list:
         config_param_keys.append(param["name"])
     expected_configs = self.expected_default_datastore_configs()
     expected_config_params = expected_configs.get("parameters_list")
     # check for duplicate configuration parameters
     msg = "check for duplicate configuration parameters"
     assert_equal(len(config_param_keys), len(set(config_param_keys)), msg)
     for expected_config_item in expected_config_params:
         assert_true(expected_config_item in config_param_keys)
Пример #16
0
 def test_flavor_list_attrs(self):
     expected_attrs = ['id', 'name', 'ram', 'links', 'local_storage']
     flavors = self.rd_client.flavors.list()
     attrcheck = AttrCheck()
     for flavor in flavors:
         flavor_dict = flavor._info
         attrcheck.attrs_exist(flavor_dict, expected_attrs,
                               msg="Flavors list")
         attrcheck.links(flavor_dict['links'])
Пример #17
0
 def test_flavor_get_attrs(self):
     allowed_attrs = ['id', 'name', 'ram', 'links', 'local_storage']
     flavor = self.rd_client.flavors.get(1)
     attrcheck = AttrCheck()
     flavor_dict = flavor._info
     attrcheck.contains_allowed_attrs(flavor_dict,
                                      allowed_attrs,
                                      msg="Flavor Get 1")
     attrcheck.links(flavor_dict['links'])
Пример #18
0
 def test_expected_configurations_parameters(self):
     """Test get expected configurations parameters."""
     allowed_attrs = ["configuration-parameters"]
     instance_info.dbaas.configuration_parameters.parameters(
         instance_info.dbaas_datastore,
         instance_info.dbaas_datastore_version)
     resp, body = instance_info.dbaas.client.last_response
     attrcheck = AttrCheck()
     config_parameters_dict = json.loads(body.decode())
     attrcheck.contains_allowed_attrs(config_parameters_dict,
                                      allowed_attrs,
                                      msg="Configurations parameters")
     # sanity check that a few options are in the list
     config_params_list = config_parameters_dict['configuration-parameters']
     config_param_keys = []
     for param in config_params_list:
         config_param_keys.append(param['name'])
     expected_configs = self.expected_default_datastore_configs()
     expected_config_params = expected_configs.get('parameters_list')
     # check for duplicate configuration parameters
     msg = "check for duplicate configuration parameters"
     assert_equal(len(config_param_keys), len(set(config_param_keys)), msg)
     for expected_config_item in expected_config_params:
         assert_true(expected_config_item in config_param_keys)
Пример #19
0
 def test_flavor_list_attrs(self):
     allowed_attrs = [
         'id', 'name', 'ram', 'links', 'local_storage', 'str_id'
     ]
     flavors = self.rd_client.flavors.list()
     attrcheck = AttrCheck()
     for flavor in flavors:
         flavor_dict = flavor._info
         attrcheck.contains_allowed_attrs(flavor_dict,
                                          allowed_attrs,
                                          msg="Flavors list")
         attrcheck.links(flavor_dict['links'])