def _test_detach_disk_from_vm(self, destroy_disk=False):
     def fake_call_method(module, method, *args, **kwargs):
         vmdk_detach_config_spec = kwargs.get('spec')
         virtual_device_config = vmdk_detach_config_spec.deviceChange[0]
         self.assertEqual('remove', virtual_device_config.operation)
         self.assertEqual('ns0:VirtualDeviceConfigSpec',
                           virtual_device_config.obj_name)
         if destroy_disk:
             self.assertEqual('destroy',
                              virtual_device_config.fileOperation)
         else:
             self.assertFalse(hasattr(virtual_device_config,
                              'fileOperation'))
         return 'fake_configure_task'
     with contextlib.nested(
         mock.patch.object(self._session, '_wait_for_task'),
         mock.patch.object(self._session, '_call_method',
                           fake_call_method)
     ) as (_wait_for_task, _call_method):
         fake_device = vmwareapi_fake.DataObject()
         fake_device.backing = vmwareapi_fake.DataObject()
         fake_device.backing.fileName = 'fake_path'
         fake_device.key = 'fake_key'
         self._volumeops.detach_disk_from_vm('fake_vm_ref', self.instance,
                                             fake_device, destroy_disk)
         _wait_for_task.assert_has_calls([
                mock.call(self.instance['uuid'], 'fake_configure_task')])
Exemple #2
0
    def test_attach_vmdk_disk_to_vm(self):
        self._create_vm()
        connection_info = self._test_vmdk_connection_info('vmdk')
        mount_point = '/dev/vdc'
        discover = ('fake_name', 'fake_uuid')

        # create fake backing info
        volume_device = vmwareapi_fake.DataObject()
        volume_device.backing = vmwareapi_fake.DataObject()
        volume_device.backing.fileName = 'fake_path'

        self.mox.StubOutWithMock(volumeops.VMwareVolumeOps,
                                 '_get_vmdk_base_volume_device')
        volumeops.VMwareVolumeOps._get_vmdk_base_volume_device(
                mox.IgnoreArg()).AndReturn(volume_device)
        self.mox.StubOutWithMock(volumeops.VMwareVolumeOps,
                                 'attach_disk_to_vm')
        volumeops.VMwareVolumeOps.attach_disk_to_vm(mox.IgnoreArg(),
                self.instance, mox.IgnoreArg(), mox.IgnoreArg(),
                vmdk_path='fake_path',
                controller_key=mox.IgnoreArg(),
                unit_number=mox.IgnoreArg())
        self.mox.ReplayAll()
        self.conn.attach_volume(None, connection_info, self.instance,
                                mount_point)
Exemple #3
0
    def test_get_stats_from_cluster(self):
        ManagedObjectRefs = [
            fake.ManagedObjectReference("host1", "HostSystem"),
            fake.ManagedObjectReference("host2", "HostSystem")
        ]
        hosts = fake._convert_to_array_of_mor(ManagedObjectRefs)
        respool = fake.ManagedObjectReference("resgroup-11", "ResourcePool")
        prop_dict = {'host': hosts, 'resourcePool': respool}

        hardware = fake.DataObject()
        hardware.numCpuCores = 8
        hardware.numCpuThreads = 16
        hardware.vendor = "Intel"
        hardware.cpuModel = "Intel(R) Xeon(R)"

        runtime_host_1 = fake.DataObject()
        runtime_host_1.connectionState = "connected"
        runtime_host_2 = fake.DataObject()
        runtime_host_2.connectionState = "disconnected"

        prop_list_host_1 = [
            fake.Prop(name="hardware_summary", val=hardware),
            fake.Prop(name="runtime_summary", val=runtime_host_1)
        ]
        prop_list_host_2 = [
            fake.Prop(name="hardware_summary", val=hardware),
            fake.Prop(name="runtime_summary", val=runtime_host_2)
        ]
        fake_objects = fake.FakeRetrieveResult()
        fake_objects.add_object(
            fake.ObjectContent("prop_list_host1", prop_list_host_1))
        fake_objects.add_object(
            fake.ObjectContent("prop_list_host1", prop_list_host_2))

        respool_resource_usage = fake.DataObject()
        respool_resource_usage.maxUsage = 5368709120
        respool_resource_usage.overallUsage = 2147483648
        session = fake_session()

        def fake_call_method(*args):
            if "get_dynamic_properties" in args:
                return prop_dict
            elif "get_properties_for_a_collection_of_objects" in args:
                return fake_objects
            else:
                return respool_resource_usage

        with mock.patch.object(fake_session, '_call_method', fake_call_method):
            result = vm_util.get_stats_from_cluster(session, "cluster1")
            cpu_info = {}
            mem_info = {}
            cpu_info['vcpus'] = 16
            cpu_info['cores'] = 8
            cpu_info['vendor'] = ["Intel"]
            cpu_info['model'] = ["Intel(R) Xeon(R)"]
            mem_info['total'] = 5120
            mem_info['free'] = 3072
            expected_stats = {'cpu': cpu_info, 'mem': mem_info}
            self.assertEqual(expected_stats, result)
Exemple #4
0
 def fake_call_method(module, method, *args, **kwargs):
     if method == 'SearchDatastore_Task':
         return 'fake_exists_task'
     elif method == 'get_dynamic_property':
         info = fake.DataObject()
         info.name = 'search_task'
         info.state = 'error'
         error = fake.DataObject()
         error.localizedMessage = "Error message"
         error.fault = fake.FileNotFound()
         info.error = error
         return info
     # Should never get here
     self.fail()
Exemple #5
0
 def fake_call_method(module, method, *args, **kwargs):
     if method == 'SearchDatastore_Task':
         ds_browser = args[0]
         self.assertEqual('fake-browser', ds_browser)
         datastorePath = kwargs.get('datastorePath')
         self.assertEqual('fake-path', datastorePath)
         return 'fake_exists_task'
     elif method == 'get_dynamic_property':
         info = fake.DataObject()
         info.name = 'search_task'
         info.state = 'success'
         result = fake.DataObject()
         result.path = 'fake-path'
         matched = fake.DataObject()
         matched.path = 'fake-file'
         result.file = [matched]
         info.result = result
         return info
     # Should never get here
     self.fail()
 def test_get_neutron_network_bridge_network_not_found(self):
     self.mox.StubOutWithMock(vm_util, 'get_host_ref')
     self.mox.StubOutWithMock(self.session, '_call_method')
     self.mox.StubOutWithMock(network_util, 'get_network_with_the_name')
     vm_util.get_host_ref(self.session, self.cluster).AndReturn('fake-host')
     opaque = fake.DataObject()
     opaque.HostOpaqueNetworkInfo = ['fake-network-info']
     self.session._call_method(
         vim_util, "get_dynamic_property", 'fake-host', 'HostSystem',
         'config.network.opaqueNetwork').AndReturn(None)
     network_util.get_network_with_the_name(self.session, 0,
                                            self.cluster).AndReturn(None)
     self.mox.ReplayAll()
     self.assertRaises(exception.NetworkNotFoundForBridge,
                       vif.get_neutron_network, self.session,
                       self.vif['network']['id'], self.cluster, self.vif)
 def test_get_neutron_network(self):
     self.mox.StubOutWithMock(vm_util, 'get_host_ref')
     self.mox.StubOutWithMock(self.session, '_call_method')
     self.mox.StubOutWithMock(vif, '_get_network_ref_from_opaque')
     vm_util.get_host_ref(self.session, self.cluster).AndReturn('fake-host')
     opaque = fake.DataObject()
     opaque.HostOpaqueNetworkInfo = ['fake-network-info']
     self.session._call_method(
         vim_util, "get_dynamic_property", 'fake-host', 'HostSystem',
         'config.network.opaqueNetwork').AndReturn(opaque)
     vif._get_network_ref_from_opaque(
         opaque.HostOpaqueNetworkInfo, CONF.vmware.integration_bridge,
         self.vif['network']['id']).AndReturn('fake-network-ref')
     self.mox.ReplayAll()
     network_ref = vif.get_neutron_network(self.session,
                                           self.vif['network']['id'],
                                           self.cluster, self.vif)
     self.assertEqual(network_ref, 'fake-network-ref')
Exemple #8
0
 def __init__(self, path='fake-path'):
     self.path = path
     self.fault = fake.DataObject()
Exemple #9
0
 def _get_vim(self):
     fake_vim = fake.DataObject()
     client = fake.DataObject()
     client.factory = 'fake_factory'
     fake_vim.client = client
     return fake_vim
Exemple #10
0
 def __init__(self, path='fake-path', message='fake_message'):
     self.path = path
     self.fault = fake.DataObject()
     self.fault.localizedMessage = message