예제 #1
0
 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
예제 #2
0
 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)
예제 #3
0
    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
예제 #4
0
    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)
예제 #5
0
 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)