def test_create_instance_config_from_tempalte(self): self.__test_create_configuration() old_config_items = Configuration.load_items(self.context, self.configuration.id) valid_values = {"character_set_connection" : 'utf-8', "innodb_buffer_pool_size" : 1000} items = Configuration.create_items(self.configuration.id, valid_values) new_config_items = Configuration.load_items(self.context, self.configuration.id) instance_config = Configuration.ksc_create_instance_config_from_template(self.context,self.configuration.id) print instance_config
def __test_admin_update_default_config(self): self.defaultConfiguration.name = 'admin_update_default_config_name' items = Configuration.load_items(self.context, self.defaultConfiguration.id) items.append(ConfigurationParameter(configuration_id=self.defaultConfiguration.id, configuration_key='some_key', configuration_value='some_value', deleted=False)) self.context.is_admin = True Configuration.save(self.context, self.defaultConfiguration, items)
def test_configuration_parameters(self): self.__test_create_configuration() self.assertRaises(Exception, self.__test_not_admin_update_default_config) self.__test_admin_update_default_config() old_config_items = Configuration.load_items(self.context, self.configuration.id) self.assertTrue(old_config_items != None and len(old_config_items) == 0) print old_config_items valid_values = {"character_set_connection" : 'utf-8', "innodb_buffer_pool_size" : 1000} items = Configuration.create_items(self.configuration.id, valid_values) self.assertTrue(items != None and len(items) == len(valid_values), items) new_config_items = Configuration.load_items(self.context, self.configuration.id) self.assertTrue(new_config_items != None and len(new_config_items) == 2) print new_config_items overrides = Configuration.get_configuration_overrides(self.context, self.configuration.id) self.assertTrue(valid_values == overrides, overrides) print valid_values, overrides
def unassign_configuration(self, flavor, configuration_id): LOG.debug("Unassigning the configuration from the instance %s" % self.id) LOG.debug("Unassigning the configuration id %s" % self.configuration.id) def _find_item(items, item_name): LOG.debug("items: %s" % items) LOG.debug("item_name: %s" % item_name) # find the item in the list for i in items: if i[0] == item_name: return i def _convert_value(value): # split the value and the size e.g. 512M=['512','M'] pattern = re.compile("(\d+)(\w+)") split = pattern.findall(value) if len(split) < 2: return value digits, size = split conversions = {"K": 1024, "M": 1024 ** 2, "G": 1024 ** 3} return str(int(digits) * conversions[size]) default_config = self._render_config_dict(flavor) args = {"ds_manager": self.ds_version.manager, "config": default_config} LOG.debug("default %(ds_manager)s section: %(config)s" % args) LOG.debug("self.configuration: %s" % self.configuration.__dict__) overrides = {} config_items = Configuration.load_items(self.context, configuration_id) for item in config_items: LOG.debug("finding item(%s)" % item.__dict__) try: key, val = _find_item(default_config, item.configuration_key) except TypeError: val = None restart_required = inst_models.InstanceTasks.RESTART_REQUIRED self.update_db(task_status=restart_required) if val: overrides[item.configuration_key] = _convert_value(val) LOG.debug("setting the default variables in dict: %s" % overrides) self.update_overrides(overrides, remove=True) self.update_db(configuration_id=None)
def __test_not_admin_update_default_config(self): self.defaultConfiguration.name = 'update_default_config_name' old_config_items = Configuration.load_items(self.context, self.defaultConfiguration.id) Configuration.save(self.context, self.defaultConfiguration, old_config_items)