def current_preset(self): self._logger.debug('Getting current Memcached preset') preset = CnfPreset(name='System') vars = {} for option_spec in self.options: current_value = option_spec.get_func() vars[option_spec.name] = current_value if current_value else option_spec.default_value preset.settings = vars return preset
def current_preset(self): self._logger.debug('Getting current Memcached preset') preset = CnfPreset(name='System') vars = {} for option_spec in self.options: current_value = option_spec.get_func() vars[ option_spec. name] = current_value if current_value else option_spec.default_value preset.settings = vars return preset
def _obtain_current_preset(self): service_conf = self._queryenv.get_service_configuration(self._service_name) if service_conf.new_engine: '''New sheriff in town. No need to calculate or apply old preset''' return None cur_preset = CnfPreset(service_conf.name, service_conf.settings) if cur_preset.name == 'default': try: cur_preset = self._preset_store.load(PresetType.DEFAULT) except IOError, e: if e.errno == 2: cur_preset = self._cnf_ctl.current_preset() self._preset_store.save(cur_preset, PresetType.DEFAULT) else: raise
def sc_on_configured(self, service_name, **kwargs): if self._service_name != service_name: return # Fetch current configuration preset service_conf = self._queryenv.get_service_configuration( self._service_name) if service_conf.new_engine: LOG.debug('New configuration presets engine is available.') response = None settings = {} LOG.debug('Initial preset from HostInitResponse: %s' % self.initial_preset) if self.initial_preset: LOG.debug('initial_preset = %s' % self.initial_preset) for preset in self.initial_preset: for f, data in preset.items(): kv = {} for setting in data['settings']: k = setting['setting']['name'] v = setting['setting']['value'] kv[k] = v settings.update({data['name']: kv}) LOG.debug('Got settings from initial preset: %s' % settings) else: cnf = bus.cnf ini = cnf.rawini farm_role_id = ini.get('general', 'farm_role_id') response = self._queryenv.list_farm_role_params(farm_role_id) LOG.debug('list_farm_role_params: %s' % response) if response and service_name in response and 'preset' in response[ service_name]: settings = response[service_name]['preset'] LOG.debug('list_farm_role_params returned settings: %s' % settings) if settings: manifest = self.preset_provider.get_manifest(service_name) if manifest: LOG.debug('Applying configuration preset') self.preset_provider.set_preset(settings, manifest) LOG.debug( 'Configuration preset has been successfully applied.') else: LOG.WARNING('Cannot apply preset: Manifest not found.') else: log = bus.init_op.logger if bus.init_op else LOG if self._cnf_ctl: log.info('Applying configuration preset') # Backup default configuration my_preset = self._cnf_ctl.current_preset() self._preset_store.save(my_preset, PresetType.DEFAULT) # Stop service if it's already running self._stop_service('Applying configuration preset') cur_preset = CnfPreset(service_conf.name, service_conf.settings, self._service_name) self._preset_store.copy(PresetType.DEFAULT, PresetType.LAST_SUCCESSFUL, override=False) if cur_preset.name == 'default': # Scalr respond with default preset LOG.debug('%s configuration is default', self._service_name) #self._preset_store.copy(PresetType.DEFAULT, PresetType.LAST_SUCCESSFUL) self._start_service() return elif self._cnf_ctl.preset_equals(cur_preset, my_preset): LOG.debug("%s configuration satisfies current preset '%s'", self._service_name, cur_preset.name) self._start_service() return else: LOG.info("Applying '%s' preset to %s", cur_preset.name, self._service_name) self._cnf_ctl.apply_preset(cur_preset) log.info('Start %s with configuration preset', service_name) self._start_service_with_preset(cur_preset) else: log.info('Start %s' % service_name) self._start_service() bus.fire(self._service_name + '_configure', **kwargs)
def __init__(self): self.preset = CnfPreset(name='current', settings={'1':'old_value'})