def test_not_too_large(self): self.mox.StubOutWithMock(flavors, "extract_flavor") flavors.extract_flavor(self.instance).AndReturn(dict(root_gb=1)) self.mox.StubOutWithMock(vm_utils, "_get_vdi_chain_size") vm_utils._get_vdi_chain_size(self.session, self.vdi_uuid).AndReturn(1073741824) self.mox.ReplayAll() vm_utils._check_vdi_size(self.context, self.session, self.instance, self.vdi_uuid)
def test_not_too_large(self): self.mox.StubOutWithMock(flavors, 'extract_instance_type') flavors.extract_instance_type(self.instance).AndReturn(dict(root_gb=1)) self.mox.StubOutWithMock(vm_utils, '_get_vdi_chain_size') vm_utils._get_vdi_chain_size(self.session, self.vdi_uuid).AndReturn(1073741824) self.mox.ReplayAll() vm_utils._check_vdi_size(self.context, self.session, self.instance, self.vdi_uuid)
def test_too_large(self): self.mox.StubOutWithMock(flavors, 'extract_instance_type') flavors.extract_instance_type(self.instance).AndReturn(dict(root_gb=1)) self.mox.StubOutWithMock(vm_utils, '_get_vdi_chain_size') vm_utils._get_vdi_chain_size(self.session, self.vdi_uuid).AndReturn(1073741825) self.mox.ReplayAll() self.assertRaises(exception.InstanceTypeDiskTooSmall, vm_utils._check_vdi_size, self.context, self.session, self.instance, self.vdi_uuid)
def test_too_large(self): self.mox.StubOutWithMock(flavors, 'extract_flavor') flavors.extract_flavor(self.instance).AndReturn( dict(root_gb=1)) self.mox.StubOutWithMock(vm_utils, '_get_vdi_chain_size') vm_utils._get_vdi_chain_size(self.session, self.vdi_uuid).AndReturn(1073741825) self.mox.ReplayAll() self.assertRaises(exception.InstanceTypeDiskTooSmall, vm_utils._check_vdi_size, self.context, self.session, self.instance, self.vdi_uuid)
instance_uuid = "2a4489d0-bce5-444f-a584-10b95c62a193" # get full instance record: ctx = context.get_admin_context() instance = db.instance_get_by_uuid(ctx, instance_uuid) # construct a xenapi driver: driver = xapi_driver.XenAPIDriver() # get xen opaque ref to vm: vm_ref = driver._vmops._get_vm_opaque_ref(instance) # get the root VDI for the instance: session = driver._vmops._session vdi_ref, vm_vdi_rec = vm_utils.get_vdi_for_vm_safely(session, vm_ref) print vdi_ref print "-"*80 print vm_vdi_rec sz_bytes = int(vm_vdi_rec["physical_utilisation"]) print "vdi size (GB): %0.2f" % (sz_bytes/1024.0/1024.0/1024.0) # test again with the chain concept: sz_bytes = vm_utils._get_vdi_chain_size(session, vm_vdi_rec['uuid']) print "chain vdi size (GB): %0.2f" % (sz_bytes/1024.0/1024.0/1024.0)