本文整理汇总了Python中scalarizr.libs.metaconf.Configuration.remove方法的典型用法代码示例。如果您正苦于以下问题:Python Configuration.remove方法的具体用法?Python Configuration.remove怎么用?Python Configuration.remove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类scalarizr.libs.metaconf.Configuration
的用法示例。
在下文中一共展示了Configuration.remove方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: apply_preset
# 需要导入模块: from scalarizr.libs.metaconf import Configuration [as 别名]
# 或者: from scalarizr.libs.metaconf.Configuration import remove [as 别名]
def apply_preset(self, preset):
conf = Configuration(self._config_format)
conf.read(self._config_path)
self._before_apply_preset()
ver = self._software_version
for opt in self._manifest:
path = opt.name if not opt.section else '%s/%s' % (opt.section, opt.name)
try:
value = conf.get(path)
except NoPathError:
value = ''
if opt.name in preset.settings:
new_value = preset.settings[opt.name]
# Skip unsupported
if ver and opt.supported_from and opt.supported_from > ver:
self._logger.debug("Skipping option '%s' supported from %s; installed %s" %
(opt.name, opt.supported_from, ver))
continue
if not opt.default_value:
self._logger.debug("Option '%s' has no default value" % opt.name)
pass
elif new_value == opt.default_value:
if value:
self._logger.debug("Option '%s' equal to default. Removing." % opt.name)
conf.remove(path)
self._after_remove_option(opt)
continue
if self.definitions and new_value in self.definitions:
manifest = Configuration('ini')
if os.path.exists(self._manifest_path):
manifest.read(self._manifest_path)
try:
if manifest.get('%s/type' % opt.name) == 'boolean':
new_value = self.definitions[new_value]
except NoPathError, e:
pass
self._logger.debug("Check that '%s' value changed:'%s'='%s'"%(opt.name, value, new_value))
if new_value == value:
self._logger.debug("Skip option '%s'. Not changed" % opt.name)
pass
else:
self._logger.debug("Set option '%s' = '%s'" % (opt.name, new_value))
self._logger.debug('Set path %s = %s', path, new_value)
conf.set(path, new_value, force=True)
self._after_set_option(opt, new_value)
else:
if value:
self._logger.debug("Removing option '%s'. Not found in preset" % opt.name)
conf.remove(path)
self._after_remove_option(opt)
示例2: MysqlProxyHandler
# 需要导入模块: from scalarizr.libs.metaconf import Configuration [as 别名]
# 或者: from scalarizr.libs.metaconf.Configuration import remove [as 别名]
class MysqlProxyHandler(ServiceCtlHandler):
def __init__(self):
self._logger = logging.getLogger(__name__)
self.service = initdv2.lookup(BEHAVIOUR)
self._service_name = BEHAVIOUR
bus.on(init=self.on_init)
def accept(self, message, queue, behaviour=None, platform=None, os=None, dist=None):
return message.behaviour and is_mysql_role(message.behaviour) and message.name in (
Messages.HOST_UP,
Messages.HOST_DOWN,
NEW_MASTER_UP,
DbMsrMessages.DBMSR_NEW_MASTER_UP
)
def on_init(self):
bus.on(
start=self.on_start,
before_host_up=self.on_before_host_up,
reload=self.on_reload
)
def on_reload(self):
self._reload_backends()
def on_start(self):
cnf = bus.cnf
if cnf.state == config.ScalarizrState.RUNNING:
self._reload_backends()
def on_before_host_up(self, msg):
self._reload_backends()
def _reload_backends(self):
self._logger.info('Updating mysql-proxy backends list')
self.config = Configuration('mysql')
if os.path.exists(CONFIG_FILE_PATH):
self.config.read(CONFIG_FILE_PATH)
self.config.remove('./mysql-proxy/proxy-backend-addresses')
self.config.remove('./mysql-proxy/proxy-read-only-backend-addresses')
try:
self.config.get('./mysql-proxy')
except NoPathError:
self.config.add('./mysql-proxy')
queryenv = bus.queryenv_service
roles = queryenv.list_roles()
master = None
slaves = []
for role in roles:
if not is_mysql_role(role.behaviour):
continue
for host in role.hosts:
ip = host.internal_ip or host.external_ip
if host.replication_master:
master = ip
else:
slaves.append(ip)
if master:
self._logger.debug('Adding mysql master %s to mysql-proxy defaults file', master)
self.config.add('./mysql-proxy/proxy-backend-addresses', '%s:3306' % master)
if slaves:
self._logger.debug('Adding mysql slaves to mysql-proxy defaults file: %s', ', '.join(slaves))
for slave in slaves:
self.config.add('./mysql-proxy/proxy-read-only-backend-addresses', '%s:3306' % slave)
self.config.set('./mysql-proxy/pid-file', PID_FILE, force=True)
self.config.set('./mysql-proxy/daemon', 'true', force=True)
self.config.set('./mysql-proxy/log-file', LOG_FILE, force=True)
if self.service.version > (0,8,0):
self.config.set('./mysql-proxy/plugins', 'proxy', force=True)
self._logger.debug('Saving new mysql-proxy defaults file')
self.config.write(CONFIG_FILE_PATH)
os.chmod(CONFIG_FILE_PATH, 0660)
self.service.restart()
def on_HostUp(self, message):
self._reload_backends()
on_DbMsr_NewMasterUp = on_Mysql_NewMasterUp = on_HostDown = on_HostUp
示例3: MongoDBConfig
# 需要导入模块: from scalarizr.libs.metaconf import Configuration [as 别名]
# 或者: from scalarizr.libs.metaconf.Configuration import remove [as 别名]
class MongoDBConfig(BaseConfig):
config_type = "mongodb"
config_name = os.path.basename(CONFIG_PATH_DEFAULT)
@classmethod
def find(cls, config_dir=None):
# conf_path = UBUNTU_CONFIG_PATH if disttool.is_ubuntu() else CENTOS_CONFIG_PATH
return cls(os.path.join(config_dir, cls.config_name) if config_dir else CONFIG_PATH_DEFAULT)
def set(self, option, value):
if not self.data:
self.data = Configuration(self.config_type)
if os.path.exists(self.path):
self.data.read(self.path)
if value:
self.data.set(option, value, force=True)
else:
self.data.remove(option)
if self.autosave:
self.save_data()
self.data = None
def set_bool_option(self, option, value):
try:
assert value in (None, True, False)
except AssertionError:
raise ValueError("%s must be a boolean (got %s instead)" % (option, type(value)))
value_to_set = None if value is None else str(value).lower()
self.set(option, value_to_set)
def get_bool_option(self, option):
value = self.get(option)
try:
assert not value or value == "true" or value == "false"
except AssertionError:
raise ValueError("%s must be true or false (got %s instead)" % (option, type(value)))
return True if value == "true" else False
def _get_logpath(self):
return self.get("logpath")
def _set_logpath(self, path):
self.set("logpath", path)
def _get_replSet(self):
return self.get("replSet")
def _set_replSet(self, name):
self.set("replSet", name)
def _get_port(self):
return self.get_numeric_option("port")
def _set_port(self, number):
self.set_numeric_option("port", number)
def _get_logappend(self):
return self.get_bool_option("logappend")
def _set_logappend(self, on=True):
self.set_bool_option("logappend", on)
def _get_dbpath(self):
return self.get("dbpath")
def _set_dbpath(self, path):
self.set_path_type_option("dbpath", path)
def _get_nojournal(self):
return self.get_bool_option("nojournal")
def _set_nojournal(self, on=False):
self.set_bool_option("nojournal", on)
def _get_nohttpinterface(self):
return self.get_bool_option("nohttpinterface")
def _set_nohttpinterface(self, on=False):
self.set_bool_option("nohttpinterface", on)
def _get_rest(self):
return self.get_bool_option("rest")
def _set_rest(self, on=False):
self.set_bool_option("rest", on)
def _set_shardsvr(self, value):
self.set_bool_option("shardsvr", value)
def _get_shardsvr(self):
return self.get_bool_option("shardsvr")
shardsvr = property(_get_shardsvr, _set_shardsvr)
rest = property(_get_rest, _set_rest)
nohttpinterface = property(_get_nohttpinterface, _set_nohttpinterface)
nojournal = property(_get_nojournal, _set_nojournal)
dbpath = property(_get_dbpath, _set_dbpath)
logappend = property(_get_logappend, _set_logappend)
port = property(_get_port, _set_port)
#.........这里部分代码省略.........