84 lines
2.5 KiB
Python
Executable File
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())
|