Merge "Handle log message interpolation by the logger part 10"
This commit is contained in:
commit
435ce7e85c
@ -68,7 +68,7 @@ class Modules(object):
|
|||||||
db_info = db_info.filter(or_(DBModule.tenant_id == context.tenant,
|
db_info = db_info.filter(or_(DBModule.tenant_id == context.tenant,
|
||||||
DBModule.tenant_id.is_(None)))
|
DBModule.tenant_id.is_(None)))
|
||||||
if db_info.count() == 0:
|
if db_info.count() == 0:
|
||||||
LOG.debug("No modules found for tenant %s" % context.tenant)
|
LOG.debug("No modules found for tenant %s", context.tenant)
|
||||||
modules = db_info.all()
|
modules = db_info.all()
|
||||||
return modules
|
return modules
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ class Modules(object):
|
|||||||
db_info = Modules.add_datastore_filter(db_info, datastore_id)
|
db_info = Modules.add_datastore_filter(db_info, datastore_id)
|
||||||
db_info = Modules.add_ds_version_filter(db_info, datastore_version_id)
|
db_info = Modules.add_ds_version_filter(db_info, datastore_version_id)
|
||||||
if db_info.count() == 0:
|
if db_info.count() == 0:
|
||||||
LOG.debug("No auto-apply modules found for tenant %s" %
|
LOG.debug("No auto-apply modules found for tenant %s",
|
||||||
context.tenant)
|
context.tenant)
|
||||||
modules = db_info.all()
|
modules = db_info.all()
|
||||||
return modules
|
return modules
|
||||||
@ -161,7 +161,7 @@ class Module(object):
|
|||||||
datastore_version, auto_apply, visible, live_update,
|
datastore_version, auto_apply, visible, live_update,
|
||||||
priority_apply, apply_order, full_access):
|
priority_apply, apply_order, full_access):
|
||||||
if module_type.lower() not in Modules.VALID_MODULE_TYPES:
|
if module_type.lower() not in Modules.VALID_MODULE_TYPES:
|
||||||
LOG.error(_("Valid module types: %s") % Modules.VALID_MODULE_TYPES)
|
LOG.error(_("Valid module types: %s"), Modules.VALID_MODULE_TYPES)
|
||||||
raise exception.ModuleTypeNotFound(module_type=module_type)
|
raise exception.ModuleTypeNotFound(module_type=module_type)
|
||||||
Module.validate_action(
|
Module.validate_action(
|
||||||
context, 'create', tenant_id, auto_apply, visible, priority_apply,
|
context, 'create', tenant_id, auto_apply, visible, priority_apply,
|
||||||
@ -400,13 +400,16 @@ class InstanceModule(object):
|
|||||||
InstanceModule.update(context, instance_module)
|
InstanceModule.update(context, instance_module)
|
||||||
else:
|
else:
|
||||||
if old_im.md5 == md5 and instance_module:
|
if old_im.md5 == md5 and instance_module:
|
||||||
LOG.debug("Found dupe IM record %s; marking as deleted "
|
LOG.debug("Found dupe IM record %(old_im)s; marking as "
|
||||||
"(instance %s, module %s)." %
|
"deleted (instance %(instance_id)s, "
|
||||||
(old_im.id, instance_id, module_id))
|
"module %(module_id)s).",
|
||||||
|
{'old_im': old_im.id, 'instance_id': instance_id,
|
||||||
|
'module_id': module_id})
|
||||||
else:
|
else:
|
||||||
LOG.debug("Deleting IM record %s (instance %s, "
|
LOG.debug("Deleting IM record %(old_im)s (instance "
|
||||||
"module %s)." %
|
"%(instance_id)s, module %(module_id)s).",
|
||||||
(old_im.id, instance_id, module_id))
|
{'old_im': old_im.id, 'instance_id': instance_id,
|
||||||
|
'module_id': module_id})
|
||||||
InstanceModule.delete(context, old_im)
|
InstanceModule.delete(context, old_im)
|
||||||
|
|
||||||
# If we don't have an instance module, it means we need to create
|
# If we don't have an instance module, it means we need to create
|
||||||
|
@ -64,7 +64,7 @@ class ModuleController(wsgi.Controller):
|
|||||||
return wsgi.Result(view.data(), 200)
|
return wsgi.Result(view.data(), 200)
|
||||||
|
|
||||||
def show(self, req, tenant_id, id):
|
def show(self, req, tenant_id, id):
|
||||||
LOG.info(_("Showing module %s.") % id)
|
LOG.info(_("Showing module %s."), id)
|
||||||
|
|
||||||
context = req.environ[wsgi.CONTEXT_KEY]
|
context = req.environ[wsgi.CONTEXT_KEY]
|
||||||
module = models.Module.load(context, id)
|
module = models.Module.load(context, id)
|
||||||
@ -78,7 +78,7 @@ class ModuleController(wsgi.Controller):
|
|||||||
def create(self, req, body, tenant_id):
|
def create(self, req, body, tenant_id):
|
||||||
|
|
||||||
name = body['module']['name']
|
name = body['module']['name']
|
||||||
LOG.info(_("Creating module '%s'") % name)
|
LOG.info(_("Creating module '%s'"), name)
|
||||||
|
|
||||||
context = req.environ[wsgi.CONTEXT_KEY]
|
context = req.environ[wsgi.CONTEXT_KEY]
|
||||||
policy.authorize_on_tenant(context, 'module:create')
|
policy.authorize_on_tenant(context, 'module:create')
|
||||||
@ -106,7 +106,7 @@ class ModuleController(wsgi.Controller):
|
|||||||
return wsgi.Result(view_data.data(), 200)
|
return wsgi.Result(view_data.data(), 200)
|
||||||
|
|
||||||
def delete(self, req, tenant_id, id):
|
def delete(self, req, tenant_id, id):
|
||||||
LOG.info(_("Deleting module %s.") % id)
|
LOG.info(_("Deleting module %s."), id)
|
||||||
|
|
||||||
context = req.environ[wsgi.CONTEXT_KEY]
|
context = req.environ[wsgi.CONTEXT_KEY]
|
||||||
module = models.Module.load(context, id)
|
module = models.Module.load(context, id)
|
||||||
@ -115,7 +115,7 @@ class ModuleController(wsgi.Controller):
|
|||||||
return wsgi.Result(None, 200)
|
return wsgi.Result(None, 200)
|
||||||
|
|
||||||
def update(self, req, body, tenant_id, id):
|
def update(self, req, body, tenant_id, id):
|
||||||
LOG.info(_("Updating module %s.") % id)
|
LOG.info(_("Updating module %s."), id)
|
||||||
|
|
||||||
context = req.environ[wsgi.CONTEXT_KEY]
|
context = req.environ[wsgi.CONTEXT_KEY]
|
||||||
module = models.Module.load(context, id)
|
module = models.Module.load(context, id)
|
||||||
@ -173,7 +173,7 @@ class ModuleController(wsgi.Controller):
|
|||||||
return wsgi.Result(view_data.data(), 200)
|
return wsgi.Result(view_data.data(), 200)
|
||||||
|
|
||||||
def instances(self, req, tenant_id, id):
|
def instances(self, req, tenant_id, id):
|
||||||
LOG.info(_("Getting instances for module %s.") % id)
|
LOG.info(_("Getting instances for module %s."), id)
|
||||||
|
|
||||||
context = req.environ[wsgi.CONTEXT_KEY]
|
context = req.environ[wsgi.CONTEXT_KEY]
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ class ModuleController(wsgi.Controller):
|
|||||||
return wsgi.Result(result_list, 200)
|
return wsgi.Result(result_list, 200)
|
||||||
|
|
||||||
def reapply(self, req, body, tenant_id, id):
|
def reapply(self, req, body, tenant_id, id):
|
||||||
LOG.info(_("Reapplying module %s to all instances.") % id)
|
LOG.info(_("Reapplying module %s to all instances."), id)
|
||||||
|
|
||||||
context = req.environ[wsgi.CONTEXT_KEY]
|
context = req.environ[wsgi.CONTEXT_KEY]
|
||||||
md5 = None
|
md5 = None
|
||||||
|
@ -309,7 +309,7 @@ class QuotaEngine(object):
|
|||||||
|
|
||||||
reservations = self._driver.reserve(tenant_id, self._resources, deltas)
|
reservations = self._driver.reserve(tenant_id, self._resources, deltas)
|
||||||
|
|
||||||
LOG.debug("Created reservations %(reservations)s" %
|
LOG.debug("Created reservations %(reservations)s",
|
||||||
{'reservations': reservations})
|
{'reservations': reservations})
|
||||||
|
|
||||||
return reservations
|
return reservations
|
||||||
@ -325,7 +325,7 @@ class QuotaEngine(object):
|
|||||||
self._driver.commit(reservations)
|
self._driver.commit(reservations)
|
||||||
except Exception:
|
except Exception:
|
||||||
LOG.exception(_("Failed to commit reservations "
|
LOG.exception(_("Failed to commit reservations "
|
||||||
"%(reservations)s") % {'reservations': reservations})
|
"%(reservations)s"), {'reservations': reservations})
|
||||||
|
|
||||||
def rollback(self, reservations):
|
def rollback(self, reservations):
|
||||||
"""Roll back reservations.
|
"""Roll back reservations.
|
||||||
@ -338,7 +338,7 @@ class QuotaEngine(object):
|
|||||||
self._driver.rollback(reservations)
|
self._driver.rollback(reservations)
|
||||||
except Exception:
|
except Exception:
|
||||||
LOG.exception(_("Failed to roll back reservations "
|
LOG.exception(_("Failed to roll back reservations "
|
||||||
"%(reservations)s") % {'reservations': reservations})
|
"%(reservations)s"), {'reservations': reservations})
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def resources(self):
|
def resources(self):
|
||||||
|
@ -73,7 +73,7 @@ class API(object):
|
|||||||
self.client = self.get_client(target, version_cap)
|
self.client = self.get_client(target, version_cap)
|
||||||
|
|
||||||
def _cast(self, method_name, version, **kwargs):
|
def _cast(self, method_name, version, **kwargs):
|
||||||
LOG.debug("Casting %s" % method_name)
|
LOG.debug("Casting %s", method_name)
|
||||||
with NotificationCastWrapper(self.context, 'taskmanager'):
|
with NotificationCastWrapper(self.context, 'taskmanager'):
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
cctxt.cast(self.context, method_name, **kwargs)
|
cctxt.cast(self.context, method_name, **kwargs)
|
||||||
@ -107,8 +107,8 @@ class API(object):
|
|||||||
LOG.error(e.message)
|
LOG.error(e.message)
|
||||||
|
|
||||||
def resize_volume(self, new_size, instance_id):
|
def resize_volume(self, new_size, instance_id):
|
||||||
LOG.debug("Making async call to resize volume for instance: %s"
|
LOG.debug("Making async call to resize volume for instance: %s",
|
||||||
% instance_id)
|
instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("resize_volume", version=version,
|
self._cast("resize_volume", version=version,
|
||||||
@ -116,7 +116,7 @@ class API(object):
|
|||||||
instance_id=instance_id)
|
instance_id=instance_id)
|
||||||
|
|
||||||
def resize_flavor(self, instance_id, old_flavor, new_flavor):
|
def resize_flavor(self, instance_id, old_flavor, new_flavor):
|
||||||
LOG.debug("Making async call to resize flavor for instance: %s" %
|
LOG.debug("Making async call to resize flavor for instance: %s",
|
||||||
instance_id)
|
instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
@ -126,54 +126,54 @@ class API(object):
|
|||||||
new_flavor=self._transform_obj(new_flavor))
|
new_flavor=self._transform_obj(new_flavor))
|
||||||
|
|
||||||
def reboot(self, instance_id):
|
def reboot(self, instance_id):
|
||||||
LOG.debug("Making async call to reboot instance: %s" % instance_id)
|
LOG.debug("Making async call to reboot instance: %s", instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("reboot", version=version, instance_id=instance_id)
|
self._cast("reboot", version=version, instance_id=instance_id)
|
||||||
|
|
||||||
def restart(self, instance_id):
|
def restart(self, instance_id):
|
||||||
LOG.debug("Making async call to restart instance: %s" % instance_id)
|
LOG.debug("Making async call to restart instance: %s", instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("restart", version=version, instance_id=instance_id)
|
self._cast("restart", version=version, instance_id=instance_id)
|
||||||
|
|
||||||
def detach_replica(self, instance_id):
|
def detach_replica(self, instance_id):
|
||||||
LOG.debug("Making async call to detach replica: %s" % instance_id)
|
LOG.debug("Making async call to detach replica: %s", instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("detach_replica", version=version,
|
self._cast("detach_replica", version=version,
|
||||||
instance_id=instance_id)
|
instance_id=instance_id)
|
||||||
|
|
||||||
def promote_to_replica_source(self, instance_id):
|
def promote_to_replica_source(self, instance_id):
|
||||||
LOG.debug("Making async call to promote replica to source: %s" %
|
LOG.debug("Making async call to promote replica to source: %s",
|
||||||
instance_id)
|
instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
self._cast("promote_to_replica_source", version=version,
|
self._cast("promote_to_replica_source", version=version,
|
||||||
instance_id=instance_id)
|
instance_id=instance_id)
|
||||||
|
|
||||||
def eject_replica_source(self, instance_id):
|
def eject_replica_source(self, instance_id):
|
||||||
LOG.debug("Making async call to eject replica source: %s" %
|
LOG.debug("Making async call to eject replica source: %s",
|
||||||
instance_id)
|
instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
self._cast("eject_replica_source", version=version,
|
self._cast("eject_replica_source", version=version,
|
||||||
instance_id=instance_id)
|
instance_id=instance_id)
|
||||||
|
|
||||||
def migrate(self, instance_id, host):
|
def migrate(self, instance_id, host):
|
||||||
LOG.debug("Making async call to migrate instance: %s" % instance_id)
|
LOG.debug("Making async call to migrate instance: %s", instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("migrate", version=version,
|
self._cast("migrate", version=version,
|
||||||
instance_id=instance_id, host=host)
|
instance_id=instance_id, host=host)
|
||||||
|
|
||||||
def delete_instance(self, instance_id):
|
def delete_instance(self, instance_id):
|
||||||
LOG.debug("Making async call to delete instance: %s" % instance_id)
|
LOG.debug("Making async call to delete instance: %s", instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("delete_instance", version=version,
|
self._cast("delete_instance", version=version,
|
||||||
instance_id=instance_id)
|
instance_id=instance_id)
|
||||||
|
|
||||||
def create_backup(self, backup_info, instance_id):
|
def create_backup(self, backup_info, instance_id):
|
||||||
LOG.debug("Making async call to create a backup for instance: %s" %
|
LOG.debug("Making async call to create a backup for instance: %s",
|
||||||
instance_id)
|
instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ class API(object):
|
|||||||
instance_id=instance_id)
|
instance_id=instance_id)
|
||||||
|
|
||||||
def delete_backup(self, backup_id):
|
def delete_backup(self, backup_id):
|
||||||
LOG.debug("Making async call to delete backup: %s" % backup_id)
|
LOG.debug("Making async call to delete backup: %s", backup_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("delete_backup", version=version, backup_id=backup_id)
|
self._cast("delete_backup", version=version, backup_id=backup_id)
|
||||||
@ -195,7 +195,7 @@ class API(object):
|
|||||||
cluster_config=None, volume_type=None,
|
cluster_config=None, volume_type=None,
|
||||||
modules=None, locality=None):
|
modules=None, locality=None):
|
||||||
|
|
||||||
LOG.debug("Making async call to create instance %s " % instance_id)
|
LOG.debug("Making async call to create instance %s ", instance_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
self._cast("create_instance", version=version,
|
self._cast("create_instance", version=version,
|
||||||
instance_id=instance_id, name=name,
|
instance_id=instance_id, name=name,
|
||||||
@ -217,13 +217,13 @@ class API(object):
|
|||||||
modules=modules, locality=locality)
|
modules=modules, locality=locality)
|
||||||
|
|
||||||
def create_cluster(self, cluster_id):
|
def create_cluster(self, cluster_id):
|
||||||
LOG.debug("Making async call to create cluster %s " % cluster_id)
|
LOG.debug("Making async call to create cluster %s ", cluster_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("create_cluster", version=version, cluster_id=cluster_id)
|
self._cast("create_cluster", version=version, cluster_id=cluster_id)
|
||||||
|
|
||||||
def grow_cluster(self, cluster_id, new_instance_ids):
|
def grow_cluster(self, cluster_id, new_instance_ids):
|
||||||
LOG.debug("Making async call to grow cluster %s " % cluster_id)
|
LOG.debug("Making async call to grow cluster %s ", cluster_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
@ -231,7 +231,7 @@ class API(object):
|
|||||||
cluster_id=cluster_id, new_instance_ids=new_instance_ids)
|
cluster_id=cluster_id, new_instance_ids=new_instance_ids)
|
||||||
|
|
||||||
def shrink_cluster(self, cluster_id, instance_ids):
|
def shrink_cluster(self, cluster_id, instance_ids):
|
||||||
LOG.debug("Making async call to shrink cluster %s " % cluster_id)
|
LOG.debug("Making async call to shrink cluster %s ", cluster_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
@ -239,14 +239,14 @@ class API(object):
|
|||||||
cluster_id=cluster_id, instance_ids=instance_ids)
|
cluster_id=cluster_id, instance_ids=instance_ids)
|
||||||
|
|
||||||
def delete_cluster(self, cluster_id):
|
def delete_cluster(self, cluster_id):
|
||||||
LOG.debug("Making async call to delete cluster %s " % cluster_id)
|
LOG.debug("Making async call to delete cluster %s ", cluster_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
self._cast("delete_cluster", version=version, cluster_id=cluster_id)
|
self._cast("delete_cluster", version=version, cluster_id=cluster_id)
|
||||||
|
|
||||||
def upgrade(self, instance_id, datastore_version_id):
|
def upgrade(self, instance_id, datastore_version_id):
|
||||||
LOG.debug("Making async call to upgrade guest to datastore "
|
LOG.debug("Making async call to upgrade guest to datastore "
|
||||||
"version %s " % datastore_version_id)
|
"version %s ", datastore_version_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
@ -254,7 +254,7 @@ class API(object):
|
|||||||
datastore_version_id=datastore_version_id)
|
datastore_version_id=datastore_version_id)
|
||||||
|
|
||||||
def restart_cluster(self, cluster_id):
|
def restart_cluster(self, cluster_id):
|
||||||
LOG.debug("Making async call to restart cluster %s " % cluster_id)
|
LOG.debug("Making async call to restart cluster %s ", cluster_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
@ -262,7 +262,7 @@ class API(object):
|
|||||||
|
|
||||||
def upgrade_cluster(self, cluster_id, datastore_version_id):
|
def upgrade_cluster(self, cluster_id, datastore_version_id):
|
||||||
LOG.debug("Making async call to upgrade guest to datastore "
|
LOG.debug("Making async call to upgrade guest to datastore "
|
||||||
"version %s " % datastore_version_id)
|
"version %s ", datastore_version_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
@ -271,7 +271,7 @@ class API(object):
|
|||||||
|
|
||||||
def reapply_module(self, module_id, md5, include_clustered,
|
def reapply_module(self, module_id, md5, include_clustered,
|
||||||
batch_size, batch_delay, force):
|
batch_size, batch_delay, force):
|
||||||
LOG.debug("Making async call to reapply module %s" % module_id)
|
LOG.debug("Making async call to reapply module %s", module_id)
|
||||||
version = self.API_BASE_VERSION
|
version = self.API_BASE_VERSION
|
||||||
|
|
||||||
cctxt = self.client.prepare(version=version)
|
cctxt = self.client.prepare(version=version)
|
||||||
|
@ -297,14 +297,14 @@ class Manager(periodic_task.PeriodicTasks):
|
|||||||
master_instance_tasks = BuiltInstanceTasks.load(context, slave_of_id)
|
master_instance_tasks = BuiltInstanceTasks.load(context, slave_of_id)
|
||||||
server_group = master_instance_tasks.server_group
|
server_group = master_instance_tasks.server_group
|
||||||
scheduler_hints = srv_grp.ServerGroup.convert_to_hint(server_group)
|
scheduler_hints = srv_grp.ServerGroup.convert_to_hint(server_group)
|
||||||
LOG.debug("Using scheduler hints for locality: %s" % scheduler_hints)
|
LOG.debug("Using scheduler hints for locality: %s", scheduler_hints)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for replica_index in range(0, len(ids)):
|
for replica_index in range(0, len(ids)):
|
||||||
try:
|
try:
|
||||||
replica_number += 1
|
replica_number += 1
|
||||||
LOG.debug("Creating replica %d of %d."
|
LOG.debug("Creating replica %(num)d of %(count)d.",
|
||||||
% (replica_number, len(ids)))
|
{'num': replica_number, 'count': len(ids)})
|
||||||
instance_tasks = FreshInstanceTasks.load(
|
instance_tasks = FreshInstanceTasks.load(
|
||||||
context, ids[replica_index])
|
context, ids[replica_index])
|
||||||
snapshot = instance_tasks.get_replication_master_snapshot(
|
snapshot = instance_tasks.get_replication_master_snapshot(
|
||||||
@ -322,8 +322,8 @@ class Manager(periodic_task.PeriodicTasks):
|
|||||||
except Exception:
|
except Exception:
|
||||||
# if it's the first replica, then we shouldn't continue
|
# if it's the first replica, then we shouldn't continue
|
||||||
LOG.exception(_(
|
LOG.exception(_(
|
||||||
"Could not create replica %(num)d of %(count)d.")
|
"Could not create replica %(num)d of %(count)d."),
|
||||||
% {'num': replica_number, 'count': len(ids)})
|
{'num': replica_number, 'count': len(ids)})
|
||||||
if replica_number == 1:
|
if replica_number == 1:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user