Skip to content

Commit

Permalink
remove locals() from virt/hyperv package
Browse files Browse the repository at this point in the history
Also fix logging issue with missing local variable for
existing placeholder

fixes bug 1171936

Change-Id: I6e32364983372945c2b69bb92cd3a96689b7a53c
  • Loading branch information
eugene64 committed Jun 29, 2013
1 parent 94aad08 commit a39c7d0
Show file tree
Hide file tree
Showing 9 changed files with 109 additions and 60 deletions.
19 changes: 12 additions & 7 deletions nova/virt/hyperv/imagecache.py
Expand Up @@ -66,11 +66,12 @@ def _resize_and_cache_vhd(self, instance, vhd_path):
root_vhd_size = root_vhd_size_gb * 1024 ** 3

if root_vhd_size < vhd_size:
raise vmutils.HyperVException(_("Cannot resize the image to a "
"size smaller than the VHD max. "
"internal size: %(vhd_size)s. "
"Requested disk size: "
"%(root_vhd_size)s") % locals())
raise vmutils.HyperVException(
_("Cannot resize the image to a size smaller than the VHD "
"max. internal size: %(vhd_size)s. Requested disk size: "
"%(root_vhd_size)s") %
{'vhd_size': vhd_size, 'root_vhd_size': root_vhd_size}
)
if root_vhd_size > vhd_size:
path_parts = os.path.splitext(vhd_path)
resized_vhd_path = '%s_%s%s' % (path_parts[0],
Expand All @@ -82,10 +83,14 @@ def copy_and_resize_vhd():
if not self._pathutils.exists(resized_vhd_path):
try:
LOG.debug(_("Copying VHD %(vhd_path)s to "
"%(resized_vhd_path)s") % locals())
"%(resized_vhd_path)s"),
{'vhd_path': vhd_path,
'resized_vhd_path': resized_vhd_path})
self._pathutils.copyfile(vhd_path, resized_vhd_path)
LOG.debug(_("Resizing VHD %(resized_vhd_path)s to new "
"size %(root_vhd_size)s") % locals())
"size %(root_vhd_size)s"),
{'resized_vhd_path': resized_vhd_path,
'root_vhd_size': root_vhd_size})
self._vhdutils.resize_vhd(resized_vhd_path,
root_vhd_size)
except Exception:
Expand Down
6 changes: 4 additions & 2 deletions nova/virt/hyperv/livemigrationutils.py
Expand Up @@ -155,8 +155,10 @@ def _update_planned_vm_disk_resources(self, vmutils_remote, conn_v2_remote,

LOG.debug(_("Replacing host resource "
"%(old_disk_path)s with "
"%(new_disk_path)s on planned VM %(vm_name)s") %
locals())
"%(new_disk_path)s on planned VM %(vm_name)s"),
{'old_disk_path': old_disk_path,
'new_disk_path': new_disk_path,
'vm_name': vm_name})
sasd.HostResource = [new_disk_path]
updated_resource_setting_data.append(sasd.GetText_(1))

Expand Down
33 changes: 21 additions & 12 deletions nova/virt/hyperv/migrationops.py
Expand Up @@ -71,7 +71,8 @@ def _migrate_disk_files(self, instance_name, disk_files, dest):
# Skip the config drive as the instance is already configured
if os.path.basename(disk_file).lower() != 'configdrive.vhd':
LOG.debug(_('Copying disk "%(disk_file)s" to '
'"%(dest_path)s"') % locals())
'"%(dest_path)s"'),
{'disk_file': disk_file, 'dest_path': dest_path})
self._pathutils.copy(disk_file, dest_path)

self._pathutils.rename(instance_path, revert_path)
Expand Down Expand Up @@ -100,12 +101,11 @@ def _check_target_instance_type(self, instance, instance_type):
curr_root_gb = instance['root_gb']

if new_root_gb < curr_root_gb:
raise vmutils.VHDResizeException(_("Cannot resize the root disk "
"to a smaller size. Current "
"size: %(curr_root_gb)s GB. "
"Requested size: "
"%(new_root_gb)s GB") %
locals())
raise vmutils.VHDResizeException(
_("Cannot resize the root disk to a smaller size. Current "
"size: %(curr_root_gb)s GB. Requested size: "
"%(new_root_gb)s GB") %
{'curr_root_gb': curr_root_gb, 'new_root_gb': new_root_gb})

def migrate_disk_and_power_off(self, context, instance, dest,
instance_type, network_info,
Expand Down Expand Up @@ -165,17 +165,23 @@ def _merge_base_vhd(self, diff_vhd_path, base_vhd_path):
os.path.basename(base_vhd_path))
try:
LOG.debug(_('Copying base disk %(base_vhd_path)s to '
'%(base_vhd_copy_path)s'), locals())
'%(base_vhd_copy_path)s'),
{'base_vhd_path': base_vhd_path,
'base_vhd_copy_path': base_vhd_copy_path})
self._pathutils.copyfile(base_vhd_path, base_vhd_copy_path)

LOG.debug(_("Reconnecting copied base VHD "
"%(base_vhd_copy_path)s and diff "
"VHD %(diff_vhd_path)s"), locals())
"VHD %(diff_vhd_path)s"),
{'base_vhd_copy_path': base_vhd_copy_path,
'diff_vhd_path': diff_vhd_path})
self._vhdutils.reconnect_parent_vhd(diff_vhd_path,
base_vhd_copy_path)

LOG.debug(_("Merging base disk %(base_vhd_copy_path)s and "
"diff disk %(diff_vhd_path)s"), locals())
"diff disk %(diff_vhd_path)s"),
{'base_vhd_copy_path': base_vhd_copy_path,
'diff_vhd_path': diff_vhd_path})
self._vhdutils.merge_vhd(diff_vhd_path, base_vhd_copy_path)

# Replace the differential VHD with the merged one
Expand All @@ -192,7 +198,8 @@ def _resize_vhd(self, vhd_path, new_size):
# A differential VHD cannot be resized
self._merge_base_vhd(vhd_path, base_disk_path)
LOG.debug(_("Resizing disk \"%(vhd_path)s\" to new max "
"size %(new_size)s"), locals())
"size %(new_size)s"),
{'vhd_path': vhd_path, 'new_size': new_size})
self._vhdutils.resize_vhd(vhd_path, new_size)

def _check_base_disk(self, context, instance, diff_vhd_path,
Expand All @@ -204,7 +211,9 @@ def _check_base_disk(self, context, instance, diff_vhd_path,
if src_base_disk_path.lower() != base_vhd_path.lower():
LOG.debug(_("Reconnecting copied base VHD "
"%(base_vhd_path)s and diff "
"VHD %(diff_vhd_path)s"), locals())
"VHD %(diff_vhd_path)s"),
{'base_vhd_path': base_vhd_path,
'diff_vhd_path': diff_vhd_path})
self._vhdutils.reconnect_parent_vhd(diff_vhd_path,
base_vhd_path)

Expand Down
4 changes: 3 additions & 1 deletion nova/virt/hyperv/networkutils.py
Expand Up @@ -58,5 +58,7 @@ def create_vswitch_port(self, vswitch_path, port_name):
if ret_val != 0:
raise vmutils.HyperVException(_("Failed to create vswitch port "
"%(port_name)s on switch "
"%(vswitch_path)s") % locals())
"%(vswitch_path)s") %
{'port_name': port_name,
'vswitch_path': vswitch_path})
return new_port
5 changes: 3 additions & 2 deletions nova/virt/hyperv/pathutils.py
Expand Up @@ -69,7 +69,7 @@ def copy(self, src, dest):
# spawning overhead.
if subprocess.call(['cmd.exe', '/C', 'copy', '/Y', src, dest]):
raise IOError(_('The file copy from %(src)s to %(dest)s failed')
% locals())
% {'src': src, 'dest': dest})

def rmtree(self, path):
shutil.rmtree(path)
Expand All @@ -83,7 +83,8 @@ def get_instances_dir(self, remote_server=None):
else:
# Use an administrative share
path = local_instance_path.replace(':', '$')
return '\\\\%(remote_server)s\\%(path)s' % locals()
return ('\\\\%(remote_server)s\\%(path)s' %
{'remote_server': remote_server, 'path': path})
else:
return local_instance_path

Expand Down
25 changes: 17 additions & 8 deletions nova/virt/hyperv/snapshotops.py
Expand Up @@ -71,7 +71,8 @@ def snapshot(self, context, instance, name, update_task_state):
dest_vhd_path = os.path.join(export_dir, os.path.basename(
src_vhd_path))
LOG.debug(_('Copying VHD %(src_vhd_path)s to %(dest_vhd_path)s'),
locals())
{'src_vhd_path': src_vhd_path,
'dest_vhd_path': dest_vhd_path})
self._pathutils.copyfile(src_vhd_path, dest_vhd_path)

image_vhd_path = None
Expand All @@ -81,29 +82,37 @@ def snapshot(self, context, instance, name, update_task_state):
basename = os.path.basename(src_base_disk_path)
dest_base_disk_path = os.path.join(export_dir, basename)
LOG.debug(_('Copying base disk %(src_vhd_path)s to '
'%(dest_base_disk_path)s'), locals())
'%(dest_base_disk_path)s'),
{'src_vhd_path': src_vhd_path,
'dest_base_disk_path': dest_base_disk_path})
self._pathutils.copyfile(src_base_disk_path,
dest_base_disk_path)

LOG.debug(_("Reconnecting copied base VHD "
"%(dest_base_disk_path)s and diff "
"VHD %(dest_vhd_path)s"), locals())
"VHD %(dest_vhd_path)s"),
{'dest_base_disk_path': dest_base_disk_path,
'dest_vhd_path': dest_vhd_path})
self._vhdutils.reconnect_parent_vhd(dest_vhd_path,
dest_base_disk_path)

LOG.debug(_("Merging base disk %(dest_base_disk_path)s and "
"diff disk %(dest_vhd_path)s"), locals())
"diff disk %(dest_vhd_path)s"),
{'dest_base_disk_path': dest_base_disk_path,
'dest_vhd_path': dest_vhd_path})
self._vhdutils.merge_vhd(dest_vhd_path, dest_base_disk_path)
image_vhd_path = dest_base_disk_path

LOG.debug(_("Updating Glance image %(image_id)s with content from "
"merged disk %(image_vhd_path)s"), locals())
LOG.debug(_("Updating Glance image %(name)s with content from "
"merged disk %(image_vhd_path)s"),
{'image_id': name, 'image_vhd_path': image_vhd_path})
update_task_state(task_state=task_states.IMAGE_UPLOADING,
expected_state=task_states.IMAGE_PENDING_UPLOAD)
self._save_glance_image(context, name, image_vhd_path)

LOG.debug(_("Snapshot image %(image_id)s updated for VM "
"%(instance_name)s"), locals())
LOG.debug(_("Snapshot image %(name)s updated for VM "
"%(instance_name)s"),
{'name': name, 'instance_name': instance_name})
finally:
try:
LOG.debug(_("Removing snapshot %s"), name)
Expand Down
21 changes: 14 additions & 7 deletions nova/virt/hyperv/vmops.py
Expand Up @@ -119,13 +119,16 @@ def _create_root_vhd(self, context, instance):
try:
if CONF.use_cow_images:
LOG.debug(_("Creating differencing VHD. Parent: "
"%(base_vhd_path)s, Target: %(root_vhd_path)s")
% locals())
"%(base_vhd_path)s, Target: %(root_vhd_path)s"),
{'base_vhd_path': base_vhd_path,
'root_vhd_path': root_vhd_path})
self._vhdutils.create_differencing_vhd(root_vhd_path,
base_vhd_path)
else:
LOG.debug(_("Copying VHD image %(base_vhd_path)s to target: "
"%(root_vhd_path)s") % locals())
"%(root_vhd_path)s"),
{'base_vhd_path': base_vhd_path,
'root_vhd_path': root_vhd_path})
self._pathutils.copyfile(base_vhd_path, root_vhd_path)

base_vhd_info = self._vhdutils.get_vhd_info(base_vhd_path)
Expand All @@ -137,7 +140,9 @@ def _create_root_vhd(self, context, instance):
"smaller size"))
elif root_vhd_size > base_vhd_size:
LOG.debug(_("Resizing VHD %(root_vhd_path)s to new "
"size %(root_vhd_size)s") % locals())
"size %(root_vhd_size)s"),
{'base_vhd_path': base_vhd_path,
'root_vhd_path': root_vhd_path})
self._vhdutils.resize_vhd(root_vhd_path, root_vhd_size)
except Exception:
with excutils.save_and_reraise_exception():
Expand Down Expand Up @@ -336,9 +341,11 @@ def _set_vm_state(self, vm_name, req_state):
try:
self._vmutils.set_vm_state(vm_name, req_state)
LOG.debug(_("Successfully changed state of VM %(vm_name)s"
" to: %(req_state)s") % locals())
" to: %(req_state)s"),
{'vm_name': vm_name, 'req_state': req_state})
except Exception as ex:
LOG.exception(ex)
msg = _("Failed to change vm state of %(vm_name)s"
" to %(req_state)s") % locals()
msg = (_("Failed to change vm state of %(vm_name)s"
" to %(req_state)s") %
{'vm_name': vm_name, 'req_state': req_state})
raise vmutils.HyperVException(msg)
34 changes: 20 additions & 14 deletions nova/virt/hyperv/vmutils.py
Expand Up @@ -223,8 +223,8 @@ def attach_ide_drive(self, vm_name, path, ctrller_addr, drive_addr,
drivedflt = self._conn.query("SELECT * FROM "
"Msvm_ResourceAllocationSettingData "
"WHERE ResourceSubType LIKE "
"'%(res_sub_type)s' AND InstanceID LIKE "
"'%%Default%%'" % locals())[0]
"'%s' AND InstanceID LIKE "
"'%%Default%%'" % res_sub_type)[0]
drive = self._clone_wmi_obj('Msvm_ResourceAllocationSettingData',
drivedflt)
#Set the IDE ctrller as parent.
Expand All @@ -243,9 +243,9 @@ def attach_ide_drive(self, vm_name, path, ctrller_addr, drive_addr,
drivedefault = self._conn.query("SELECT * FROM "
"Msvm_ResourceAllocationSettingData "
"WHERE ResourceSubType LIKE "
"'%(res_sub_type)s' AND "
"'%s' AND "
"InstanceID LIKE '%%Default%%'"
% locals())[0]
% res_sub_type)[0]

#Clone the default and point it to the image file.
res = self._clone_wmi_obj('Msvm_ResourceAllocationSettingData',
Expand Down Expand Up @@ -329,8 +329,9 @@ def set_vm_state(self, vm_name, req_state):
#Invalid state for current operation (32775) typically means that
#the VM is already in the state requested
self.check_ret_val(ret_val, job_path, [0, 32775])
LOG.debug(_("Successfully changed vm state of %(vm_name)s"
" to %(req_state)s") % locals())
LOG.debug(_("Successfully changed vm state of %(vm_name)s "
"to %(req_state)s"),
{'vm_name': vm_name, 'req_state': req_state})

def get_vm_storage_paths(self, vm_name):
vm = self._lookup_vm_check(vm_name)
Expand Down Expand Up @@ -391,23 +392,28 @@ def _wait_for_job(self, job_path):
raise HyperVException(_("WMI job failed with status "
"%(job_state)d. Error details: "
"%(err_sum_desc)s - %(err_desc)s - "
"Error code: %(err_code)d")
% locals())
"Error code: %(err_code)d") %
{'job_state': job_state,
'err_sum_desc': err_sum_desc,
'err_desc': err_desc,
'err_code': err_code})
else:
(error, ret_val) = job.GetError()
if not ret_val and error:
raise HyperVException(_("WMI job failed with status "
"%(job_state)d. Error details: "
"%(error)s") % locals())
"%(error)s") %
{'job_state': job_state,
'error': error})
else:
raise HyperVException(_("WMI job failed with status "
"%(job_state)d. No error "
"description available")
% locals())
"%d. No error "
"description available") %
job_state)
desc = job.Description
elap = job.ElapsedTime
LOG.debug(_("WMI job succeeded: %(desc)s, Elapsed=%(elap)s")
% locals())
LOG.debug(_("WMI job succeeded: %(desc)s, Elapsed=%(elap)s"),
{'desc': desc, 'elap': elap})

def _clone_wmi_obj(self, wmi_class, wmi_obj):
"""Clone a WMI object."""
Expand Down

0 comments on commit a39c7d0

Please sign in to comment.