summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCerberus <matt.dietz@rackspace.com>2011-02-14 23:58:21 -0600
committerCerberus <matt.dietz@rackspace.com>2011-02-14 23:58:21 -0600
commit4574bcdfe303a76a46eb7579a5a70de4e54cc926 (patch)
tree3a9d255d0b484c513799a0b95e6b1270a80799f5
parente7fe96453760320ef897b9edfc39e057d565e6c0 (diff)
downloadnova-4574bcdfe303a76a46eb7579a5a70de4e54cc926.tar.gz
nova-4574bcdfe303a76a46eb7579a5a70de4e54cc926.tar.xz
nova-4574bcdfe303a76a46eb7579a5a70de4e54cc926.zip
Tons o loggin
-rw-r--r--nova/compute/manager.py1
-rw-r--r--nova/virt/xenapi_conn.py4
-rw-r--r--plugins/xenserver/xenapi/etc/xapi.d/plugins/migration20
3 files changed, 22 insertions, 3 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 2308c8315..6a87bb6f1 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -447,6 +447,7 @@ class ComputeManager(manager.Manager):
'args': {
'migration_id': migration_id,
'instance_id': instance_id,
+ 'disk_info': disk_info,
},
})
diff --git a/nova/virt/xenapi_conn.py b/nova/virt/xenapi_conn.py
index 21892ca37..6d40d4615 100644
--- a/nova/virt/xenapi_conn.py
+++ b/nova/virt/xenapi_conn.py
@@ -195,11 +195,11 @@ class XenAPIConnection(object):
def migrate_disk_and_power_off(self, instance, dest):
"""Transfers the VHD of a running instance to another host, then shuts
off the instance copies over the COW disk"""
- self._vmops.migrate_disk_and_power_off(instance, dest)
+ return self._vmops.migrate_disk_and_power_off(instance, dest)
def attach_disk(self, instance, disk_info):
"""Moves the copied VDIs into the SR"""
- return self._vmops.attach_disk(instance)
+ return self._vmops.attach_disk(instance, disk_info)
def suspend(self, instance, callback):
"""suspend the specified instance"""
diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration b/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration
index 3d3ad4e67..63de5bfba 100644
--- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration
+++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration
@@ -29,6 +29,7 @@ import subprocess
import XenAPIPlugin
from pluginlib_nova import *
+configure_logging('migration')
SSH_HOSTS = '/root/.ssh/known_hosts'
DEVNULL = '/dev/null'
@@ -88,17 +89,27 @@ def move_vhds_into_sr(session, args):
new_base_copy_path = "%s/%s.vhd" % (temp_vhd_path, new_base_copy_uuid)
new_cow_path = "%s/%s.vhd" % (temp_vhd_path, new_cow_uuid)
+ logging.debug('Creating temporary SR path' % temp_vhd_path)
os.mkdir(temp_vhd_path)
+
+ logging.debug('Moving %s into %s' % (source_base_copy_path, temp_vhd_path))
shutil.move(source_base_copy_path, new_base_copy_path)
+
+ logging.debug('Moving %s into %s' % (source_cow_path, temp_vhd_path))
shutil.move(source_cow_path, new_cow_path)
+ logging.debug('Cleaning up %s' % source_image_path)
os.rmdir(source_image_path)
# Link the COW to the base copy
+ logging.debug('Attaching COW to the base copy...')
subprocess.call([VHD_UTIL, 'modify', '-n', new_cow_path, '-p',
new_base_copy_path])
+ logging.debug('Moving VHDs into SR %s' % sr_path)
shutil.move("%s/*.vhd" % temp_vhd_path, sr_path)
+
+ loggin.debug('Cleaning up temporary SR path %s' % temp_vhd_path)
os.rmdir(temp_vhd_path)
return None
@@ -115,12 +126,19 @@ def transfer_vhd(session, args):
source_path = "%s/%s" % (sr_path, vhd_path)
dest_path = '%s:%sinstance%d/' % (host, IMAGE_PATH, instance_id)
+ logging.debug("Preparing to transmit %s to %s" % (source_path,
+ dest_path))
+
ssh_cmd = '-e "ssh -o StrictHostKeyChecking=no " '
rsync_args = ['nohup', RSYNC, '-av', '--progress', ssh_cmd, source_path,
dest_path]
- if subprocess.call(rsync_args) != 0:
+ logging.debug('rsync %s' % (' '.join(rsync_args, )))
+
+ rsync_proc = subprocess.POpen(rsync_args)
+ logging.debug('Rsync output: \n %s' % rsync_proc.communicate()[0])
+ if rsync_proc.returncode != 0
raise Exception("Unexpected VHD transfer failure")