diff options
author | Leehom Li <feli5@cisco.com> | 2016-03-17 22:26:25 -0400 |
---|---|---|
committer | Lee Yarwood <lyarwood@redhat.com> | 2016-04-13 15:59:49 +0100 |
commit | 9da547ebbcd7a2f4e8304aa7d070d3dd27821c6b (patch) | |
tree | 61b0ab0c5aa1342d9e0c0ad91b906b341d96e895 | |
parent | 7bc335535fc9daa7cf0bdf68f6ec5857f6f27d9b (diff) | |
download | nova-9da547ebbcd7a2f4e8304aa7d070d3dd27821c6b.tar.gz |
Change "libvirt.xml" back to the original after doing unrescue
After doing rescue and unrescue "libvirt.xml" is not changed back to the
original. This patch write back "libvirt.xml" using xml info stored in
"unrescue.xml"
Conflicts:
nova/tests/unit/virt/libvirt/test_driver.py
NOTE(lyarwood): conflict due to the use of contextlib.nested prior to
Mitaka and 8dde6c7.
Change-Id: I524ff57d7f21a1b5ecd20ab9b0e377ad9f7e04b9
Closes-Bug: #1558877
(cherry picked from commit 2e39d6444aa4c231da96b4d6314519578dd3dbf2)
-rw-r--r-- | nova/tests/unit/virt/libvirt/test_driver.py | 7 | ||||
-rw-r--r-- | nova/virt/libvirt/driver.py | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py index 9bdb4a26be..43c7e6e677 100644 --- a/nova/tests/unit/virt/libvirt/test_driver.py +++ b/nova/tests/unit/virt/libvirt/test_driver.py @@ -13737,10 +13737,12 @@ class LibvirtDriverTestCase(test.NoDBTestCase): mock_get_domain.return_value = fake_dom mock_load_file.return_value = "fake_unrescue_xml" unrescue_xml_path = os.path.join('/path', 'unrescue.xml') + xml_path = os.path.join('/path', 'libvirt.xml') rescue_file = os.path.join('/path', 'rescue.file') drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False) with contextlib.nested( + mock.patch.object(libvirt_utils, 'write_to_file'), mock.patch.object(drvr, '_destroy'), mock.patch.object(drvr, '_create_domain'), mock.patch.object(libvirt_utils, 'file_delete'), @@ -13748,9 +13750,10 @@ class LibvirtDriverTestCase(test.NoDBTestCase): return_value=['lvm.rescue']), mock.patch.object(lvm, 'remove_volumes'), mock.patch.object(glob, 'iglob', return_value=[rescue_file]) - ) as (mock_destroy, mock_create, mock_del, mock_lvm_disks, - mock_remove_volumes, mock_glob): + ) as (mock_write, mock_destroy, mock_create, mock_del, + mock_lvm_disks, mock_remove_volumes, mock_glob): drvr.unrescue(instance, None) + mock_write.assert_called_once_with(xml_path, "fake_unrescue_xml") mock_destroy.assert_called_once_with(instance) mock_create.assert_called_once_with("fake_unrescue_xml", fake_dom) diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py index 9d8f8dfd9e..2a72bb6acf 100644 --- a/nova/virt/libvirt/driver.py +++ b/nova/virt/libvirt/driver.py @@ -2487,7 +2487,9 @@ class LibvirtDriver(driver.ComputeDriver): """ instance_dir = libvirt_utils.get_instance_path(instance) unrescue_xml_path = os.path.join(instance_dir, 'unrescue.xml') + xml_path = os.path.join(instance_dir, 'libvirt.xml') xml = libvirt_utils.load_file(unrescue_xml_path) + libvirt_utils.write_to_file(xml_path, xml) guest = self._host.get_guest(instance) # TODO(sahid): We are converting all calls from a |