virt-manager/tests/magicuri.py

84 lines
2.5 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
from virtinst import URI
def parse_options():
description = ("Generate a fake URI for use with virt-manager/virtinst "
"that wraps a standard test:/// URI but pretends to be a different "
"hypervisor. See virtinst/uri.py MagicURI for format details. "
"Example: magicuri.py qemu+tcp://fakeuri.example.com/system")
parser = argparse.ArgumentParser(description=description)
parser.add_argument("fakeuri",
help="The libvirt URI we should fake")
parser.add_argument("--capsfile",
help="Path to file to use for capabilities XML")
parser.add_argument("--domcapsfile",
help="Path to file to use for domain capabilities XML")
parser.add_argument("--driverxml",
help="Path to driver xml (defaults to testdriver.xml)")
options = parser.parse_args()
testdir = os.path.abspath(os.path.dirname(__file__))
capsdir = os.path.join(testdir, "data/capabilities/")
uriobj = URI(options.fakeuri)
hv = uriobj.scheme
capsfile = None
domcapsfile = None
if hv == "qemu":
capsfile = capsdir + "kvm-x86_64.xml"
domcapsfile = capsdir + "kvm-x86_64-domcaps.xml"
elif hv == "xen":
capsfile = capsdir + "xen-rhel5.4.xml"
elif hv == "lxc":
capsfile = capsdir + "lxc.xml"
elif hv == "vz":
capsfile = capsdir + "vz.xml"
if options.capsfile:
capsfile = os.path.abspath(options.capsfile)
if options.domcapsfile:
domcapsfile = os.path.abspath(options.domcapsfile)
driverxml = os.path.join(testdir, "testdriver.xml")
if options.driverxml:
driverxml = os.path.abspath(options.driverxml)
return options.fakeuri, capsfile, domcapsfile, driverxml
def main():
fakeuri, capsfile, domcapsfile, driverxml = parse_options()
uri = "__virtinst_test__test://%s" % driverxml
uri += ",fakeuri=%s" % fakeuri
if capsfile:
uri += ",caps=%s" % capsfile
if domcapsfile:
uri += ",domcaps=%s" % domcapsfile
if driverxml and not os.path.exists(driverxml):
print("%s does not exist" % capsfile)
return 1
if capsfile and not os.path.exists(capsfile):
print("%s does not exist" % capsfile)
return 1
if domcapsfile and not os.path.exists(domcapsfile):
print("%s does not exist" % domcapsfile)
return 1
print(uri)
return 0
if __name__ == "__main__":
sys.exit(main())