summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorPádraig Brady <pbrady@redhat.com>2013-01-03 02:59:34 +0000
committerPádraig Brady <pbrady@redhat.com>2013-01-22 14:50:35 +0000
commite91e6c07d9e34b79114ecac29b3669084e331f5a (patch)
tree56c28d7f519f52f556e1d220e4824dc0bede95ae /nova/tests
parentfab8af583bf6c363d2cebbc360ae2709325d80bd (diff)
ensure failure to inject user files results in startup error
This was the case in Essex but was inadvertantly changed in: folsom-2-95-g0d166ca. * nova/virt/disk/api.py: Refactor to allow specifying mandatory injection items, that result in an exception on failure to inject. * nova/virt/libvirt/driver.py: Specify that user 'files' are mandatory items and thus result in VM startup failure unless injected successfully. * nova/tests/test_virt_disk.py: A new test for the separate warning and error cases. Fixes bug: 1095744 Change-Id: Idab5c4294c1cb52098ce44a7aae957a44fb2674f
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/test_virt_disk.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/nova/tests/test_virt_disk.py b/nova/tests/test_virt_disk.py
index 902d49704..e6a57e085 100644
--- a/nova/tests/test_virt_disk.py
+++ b/nova/tests/test_virt_disk.py
@@ -14,8 +14,10 @@
# License for the specific language governing permissions and limitations
# under the License.
+import os
import sys
+from nova import exception
from nova import test
from nova.tests import fakeguestfs
from nova.virt.disk import api as diskapi
@@ -29,6 +31,25 @@ class VirtDiskTest(test.TestCase):
sys.modules['guestfs'] = fakeguestfs
vfsguestfs.guestfs = fakeguestfs
+ def test_inject_data(self):
+
+ self.assertTrue(diskapi.inject_data("/some/file", use_cow=True))
+
+ self.assertTrue(diskapi.inject_data("/some/file",
+ mandatory=('files',)))
+
+ self.assertTrue(diskapi.inject_data("/some/file", key="mysshkey",
+ mandatory=('key',)))
+
+ os_name = os.name
+ os.name = 'nt' # Cause password injection to fail
+ self.assertRaises(exception.NovaException,
+ diskapi.inject_data,
+ "/some/file", admin_password="p",
+ mandatory=('admin_password',))
+ self.assertFalse(diskapi.inject_data("/some/file", admin_password="p"))
+ os.name = os_name
+
def test_inject_data_key(self):
vfs = vfsguestfs.VFSGuestFS("/some/file", "qcow2")