⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 02_xapi-vbd_basic.py

📁 xen虚拟机源代码安装包
💻 PY
字号:
#!/usr/bin/python# Copyright (C) International Business Machines Corp., 2007# Author: Stefan Berger <stefanb@us.ibm.com># Tests related to SR, VDI, VBD## Used methods:# SR: get_by_name_label, get_VDIs## VDI: create, get_name_label, destroy## VBD: create, get_driver, get_mode, get_VM, get_VDI, get_device## VM: get_VBDsfrom XmTestLib import xapifrom XmTestLib.XenAPIDomain import XmTestAPIDomainfrom XmTestLib import *from xen.xend import XendAPIConstantsimport commandsimport ostry:    # XmTestAPIDomain tries to establish a connection to XenD    domain = XmTestAPIDomain()except Exception, e:    SKIP("Skipping test. Error: %s" % str(e))vm_uuid = domain.get_uuid()session = xapi.connect()# Do something with SR/VDI/VBDsr_uuid = session.xenapi.SR.get_by_name_label("Local")if len(sr_uuid) == 0:    FAIL("Could not get a handle on SR 'Local'")vdi_rec = { 'name_label'  : "My disk",            'SR'          : sr_uuid[0],            'virtual_size': 1 << 10,            'sector_size' : 512,            'type'        : 0,            'shareable'   : 0,            'read-only'   : 0}vdi_ref = session.xenapi.VDI.create(vdi_rec)res = session.xenapi.SR.get_VDIs(sr_uuid[0])if vdi_ref not in res:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("SR_get_VDI does not show new VDI")res = session.xenapi.VDI.get_name_label(vdi_ref)if res != vdi_rec['name_label']:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VDI_get_name_label return wrong information")#MORE method calls to VDI to add here...vbd_rec = { 'VM'    : vm_uuid,            'VDI'   : vdi_ref,            'device': "xvda1",            'mode'  : 1,            'driver': 1,}vbd_ref = session.xenapi.VBD.create(vbd_rec)res = session.xenapi.VBD.get_driver(vbd_ref)print "VBD driver: %s" % resif res != XendAPIConstants.XEN_API_DRIVER_TYPE[int(vbd_rec['driver'])]:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VBD_get_driver returned wrong information")res = session.xenapi.VBD.get_mode(vbd_ref)print "VBD mode: %s" % res# FIXME: Check this. Should not have to subtract '1'.if res != XendAPIConstants.XEN_API_VBD_MODE[int(vbd_rec['mode']) - 1]:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VBD_get_mode returned wrong information")res = session.xenapi.VBD.get_VM(vbd_ref)if res != vm_uuid:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VBD_get_VM returned wrong result")res = session.xenapi.VBD.get_VDI(vbd_ref)if res != vdi_ref:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VBD_get_VDI returned wrong result")res = session.xenapi.VBD.get_device(vbd_ref)print "VBD device: %s" % resif res != vbd_rec['device']+":disk":    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VBD_get_device returned wrong result")res = session.xenapi.VM.get_VBDs(vm_uuid)if vbd_ref not in res:    session.xenapi.VDI.destroy(vdi_ref)    FAIL("VM_get_VBDS does not show created VBD")rc = domain.start()console = domain.getConsole()try:    run = console.runCmd("cat /proc/interrupts")except ConsoleError, e:    saveLog(console.getHistory())    session.xenapi.VDI.destroy(vdi_ref)    FAIL("Could not access proc-filesystem")domain.stop()domain.destroy()session.xenapi.VDI.destroy(vdi_ref)res = session.xenapi.SR.get_VDIs(sr_uuid[0])if vdi_ref in res:    FAIL("SR_get_VDI still shows deleted VDI")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -