VMware Compute Driver OVF Support
blueprint vmware-compute-driver Launch OVF disk image DocImpact Add support for VMware disk and adapter type vmware_disktype: eagerZeroedThick, preallocated and sparse Default value is 'preallocated'. 'sparse' disk refers to OVF supported VMDK format (sparse or streamOptimized). A sparse disk is copied to thin disk upon deployment. vmware_adaptertype: ide, busLogic and lsiLogic Default value is 'lsiLogic'. Usage: glance add name="Ubuntu" disk_format=vmdk container_format=ovf is_public=true vmware_adaptertype="lsiLogic" vmware_ostype="ubuntuGuest" vmware_disktype="sparse" < ubuntu-disk1.vmdk Add support for VNC console Nova conf: vnc_enabled=[true|false] defaults to true vnc_port=[port #] defaults to 5900 vnc_port_total=[total port #] defaults to 10000, the actual VM VNC port is vnc_port + VM ID % vnc_port_total vnc_password=[optional] Change-Id: I912b46b9f72f9089b448e03a04327fb79b9f0f3f
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
||||
|
||||
# Copyright (c) 2012 VMware, Inc.
|
||||
# Copyright (c) 2011 Citrix Systems, Inc.
|
||||
# Copyright 2011 OpenStack LLC.
|
||||
#
|
||||
@@ -41,7 +42,9 @@ class VMwareAPIVMTestCase(test.TestCase):
|
||||
self.context = context.RequestContext('fake', 'fake', is_admin=False)
|
||||
self.flags(vmwareapi_host_ip='test_url',
|
||||
vmwareapi_host_username='test_username',
|
||||
vmwareapi_host_password='test_pass')
|
||||
vmwareapi_host_password='test_pass',
|
||||
vnc_enabled=False,
|
||||
use_linked_clone=False)
|
||||
self.user_id = 'fake'
|
||||
self.project_id = 'fake'
|
||||
self.context = context.RequestContext(self.user_id, self.project_id)
|
||||
@@ -211,7 +214,7 @@ class VMwareAPIVMTestCase(test.TestCase):
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
self.conn.suspend(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.PAUSED)
|
||||
self._check_vm_info(info, power_state.SUSPENDED)
|
||||
self.assertRaises(exception.InstanceRebootFailure, self.conn.reboot,
|
||||
self.instance, self.network_info, 'SOFT')
|
||||
|
||||
@@ -221,7 +224,7 @@ class VMwareAPIVMTestCase(test.TestCase):
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
self.conn.suspend(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.PAUSED)
|
||||
self._check_vm_info(info, power_state.SUSPENDED)
|
||||
|
||||
def test_suspend_non_existent(self):
|
||||
self._create_instance_in_the_db()
|
||||
@@ -234,7 +237,7 @@ class VMwareAPIVMTestCase(test.TestCase):
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
self.conn.suspend(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.PAUSED)
|
||||
self._check_vm_info(info, power_state.SUSPENDED)
|
||||
self.conn.resume(self.instance, self.network_info)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
@@ -251,6 +254,43 @@ class VMwareAPIVMTestCase(test.TestCase):
|
||||
self.assertRaises(exception.InstanceResumeFailure, self.conn.resume,
|
||||
self.instance, self.network_info)
|
||||
|
||||
def test_power_on(self):
|
||||
self._create_vm()
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
self.conn.power_off(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.SHUTDOWN)
|
||||
self.conn.power_on(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
|
||||
def test_power_on_non_existent(self):
|
||||
self._create_instance_in_the_db()
|
||||
self.assertRaises(exception.InstanceNotFound, self.conn.power_on,
|
||||
self.instance)
|
||||
|
||||
def test_power_off(self):
|
||||
self._create_vm()
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.RUNNING)
|
||||
self.conn.power_off(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.SHUTDOWN)
|
||||
|
||||
def test_power_off_non_existent(self):
|
||||
self._create_instance_in_the_db()
|
||||
self.assertRaises(exception.InstanceNotFound, self.conn.power_off,
|
||||
self.instance)
|
||||
|
||||
def test_power_off_suspended(self):
|
||||
self._create_vm()
|
||||
self.conn.suspend(self.instance)
|
||||
info = self.conn.get_info({'name': 1})
|
||||
self._check_vm_info(info, power_state.SUSPENDED)
|
||||
self.assertRaises(exception.InstancePowerOffFailure,
|
||||
self.conn.power_off, self.instance)
|
||||
|
||||
def test_get_info(self):
|
||||
self._create_vm()
|
||||
info = self.conn.get_info({'name': 1})
|
||||
|
Reference in New Issue
Block a user