These attachments are examples for pci assignment via xen-api.
ppci_get_record.py: demonstrates physical pci information acquisition.
dpci_create.py: adds a pci device to a domain.
dpci_destroy.py: removes a pci device from a domain.
Regards,
-----------------------
Yosuke Iwamatsu
NEC Corporation
#!/usr/bin/python
"""Test program for Xen-API direct PCI device attachment"""
SERVER_URL='http://localhost:9363'
USER='me'
PASSWORD='mypassword'
VM_NAME='mydomain'
PCI_NAME='0000:0c:00.1'
import sys
sys.path.append("/usr/lib/python")
from xen.xm.XenAPI import Session
def main(argv = sys.argv):
server = Session(SERVER_URL)
server.login_with_password(USER, PASSWORD)
# get VM
vm_refs = server.xenapi.host.get_resident_VMs(
server.xenapi.session.get_this_host(server.getSession()))
for vm_ref in vm_refs:
vm_record = server.xenapi.VM.get_record(vm_ref)
if vm_record['name_label'] == VM_NAME:
break
# get PPCI
ppci_refs = server.xenapi.host.get_PPCIs(
server.xenapi.session.get_this_host(server.getSession()))
for ppci_ref in ppci_refs:
ppci_record = server.xenapi.PPCI.get_record(ppci_ref)
if ppci_record['name'] == PCI_NAME:
break
# create DPCI
dpci_record = {
'VM': vm_ref,
'PPCI': ppci_ref,
'hotplug_slot': 0,
}
dpci_ref = server.xenapi.DPCI.create(dpci_record)
server.logout()
if __name__ == "__main__":
main()
#!/usr/bin/python
"""Test program for Xen-API direct PCI device detachment"""
SERVER_URL='http://localhost:9363'
USER='me'
PASSWORD='mypassword'
VM_NAME='mydomain'
PCI_NAME='0000:0c:00.1'
import sys
sys.path.append("/usr/lib/python")
from xen.xm.XenAPI import Session
def main(argv = sys.argv):
server = Session(SERVER_URL)
server.login_with_password(USER, PASSWORD)
# get VM
vm_refs = server.xenapi.host.get_resident_VMs(
server.xenapi.session.get_this_host(server.getSession()))
for vm_ref in vm_refs:
vm_record = server.xenapi.VM.get_record(vm_ref)
if vm_record['name_label'] == VM_NAME:
break
# get DPCI
dpci_refs = server.xenapi.DPCI.get_all()
for dpci_ref in dpci_refs:
dpci_record = server.xenapi.DPCI.get_record(dpci_ref)
ppci_record = server.xenapi.PPCI.get_record(dpci_record['PPCI'])
if ppci_record['name'] == PCI_NAME:
break
# destroy
server.xenapi.DPCI.destroy(dpci_ref)
server.logout()
if __name__ == "__main__":
main()
#!/usr/bin/python
"""Test program for Xen-API PPCI class"""
SERVER_URL='http://localhost:9363'
USER='me'
PASSWORD='mypassword'
import sys
sys.path.append("/usr/lib/python")
from xen.xm.XenAPI import Session
def main(argv = sys.argv):
server = Session(SERVER_URL)
server.login_with_password(USER, PASSWORD)
print "=== PPCI INFORMATION ==="
ppci_refs = server.xenapi.host.get_PPCIs(
server.xenapi.session.get_this_host(server.getSession()))
print "ppci_refs = %s" % ppci_refs
for ppci_ref in ppci_refs:
ppci_record = server.xenapi.PPCI.get_record(ppci_ref)
print "ppci_record = %s" % ppci_record
print
server.logout()
if __name__ == "__main__":
main()
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|