Commit 9be20ca0 authored by Guido Günther's avatar Guido Günther

New upstream version 1.4.3

parent 194c3e4b
# Virtual Machine Manager News
## Release 1.4.3 (September 19, 2017)
- Improve install of debian/ubuntu non-x86 media (Viktor Mihajlovski, Andrew
Wong)
- New virt-install --graphics listen.* (Pavel Hrdina)
- New virt-install --disk snapshot_policy= (Pavel Hrdina)
- New virt-install --cpu cache.* (Lin Ma)
- Several bug fixes
## Release 1.4.2 (August 08, 2017)
- New VM wixard virt-bootstrap integration (Radostin Stoyanov)
......
Metadata-Version: 1.0
Name: virt-manager
Version: 1.4.2
Version: 1.4.3
Summary: UNKNOWN
Home-page: http://virt-manager.org
Author: Cole Robinson
......
......@@ -247,6 +247,10 @@ Example of specifying two NUMA cells. This will generate XML like:
</numa>
</cpu>
=item B<--cpu host-passthrough,cache.mode=passthrough>
Example of passing through the host cpu's cache information.
=back
Use --cpu=? to see a list of all available sub options. Complete details at L<http://libvirt.org/formatdomain.html#elementsCPU>
......@@ -722,6 +726,12 @@ WD-WMAP9A966149
It defines what to do with the disk if the source file is not accessible. See
possible values in L<http://www.libvirt.org/formatdomain.html#elementsDisks>
=item B<snapshot_policy>
Defines default behavior of the disk during disk snapshots. See possible
values in L<http://www.libvirt.org/formatdomain.html#elementsDisks>,
"snapshot" attribute of the <disk> element.
=back
See the examples section for some uses. This option deprecates -f/--file,
......@@ -1589,7 +1599,7 @@ Use --rng=? to see a list of all available sub options. Complete details at L<ht
=back
=item B<--panic> OPTS
=item B<--panic> MODEL[,OPTS]
Attach a panic notifier device to the guest. For the recommended settings, use:
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -563,13 +563,17 @@ class TestInitrdInject(TestBaseCommand):
class CheckPylint(distutils.core.Command):
user_options = []
user_options = [
("jobs=", "j", "use multiple processes to speed up Pylint"),
]
description = "Check code using pylint and pycodestyle"
def initialize_options(self):
pass
self.jobs = None
def finalize_options(self):
pass
if self.jobs:
self.jobs = int(self.jobs)
def run(self):
files = ["setup.py", "virt-install", "virt-clone",
......@@ -592,6 +596,8 @@ class CheckPylint(distutils.core.Command):
cmd = "pylint-2 "
else:
cmd = "pylint "
if self.jobs:
cmd += "--jobs=%d " % self.jobs
cmd += "--rcfile tests/pylint.cfg "
cmd += "--output-format=%s " % output_format
cmd += "--ignore %s " % ",".join(
......@@ -673,8 +679,8 @@ distutils.core.setup(
'rpm': my_rpm,
'test': TestCommand,
'test_ui': TestUI,
'test_urls' : TestURLFetch,
'test_initrd_inject' : TestInitrdInject,
'test_urls': TestURLFetch,
'test_initrd_inject': TestInitrdInject,
},
distclass=VMMDistribution,
......
......@@ -234,7 +234,7 @@
<mouse mode="client"/>
<filetransfer enable="yes"/>
</graphics>
<graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
<graphics type="spice">
<gl enable="yes"/>
<image compression="off"/>
<listen type="socket"/>
......@@ -249,6 +249,18 @@
<image compression="off"/>
<listen type="none"/>
</graphics>
<graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
<image compression="off"/>
<listen type="address" address="1.2.3.4"/>
</graphics>
<graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
<image compression="off"/>
<listen type="network" network="default"/>
</graphics>
<graphics type="spice">
<image compression="off"/>
<listen type="socket" socket="/tmp/foobar"/>
</graphics>
<serial type="tcp">
<source mode="bind" host="127.0.0.1" service="2222"/>
<protocol type="telnet"/>
......@@ -369,7 +381,7 @@
<source mode="connect" host="127.0.0.1" service="8000"/>
</backend>
</rng>
<panic>
<panic model="isa">
<address iobase="507" type="isa"/>
</panic>
</devices>
......
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="x86_64">hvm</type>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode="custom" match="exact">
<model>Opteron_G4</model>
</cpu>
<clock offset="utc">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
</clock>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<controller type="usb" index="0" model="none"/>
<console type="pty"/>
<panic model="isa"/>
</devices>
</domain>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="x86_64">hvm</type>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode="custom" match="exact">
<model>Opteron_G4</model>
</cpu>
<clock offset="utc">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
</clock>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<controller type="usb" index="0" model="none"/>
<console type="pty"/>
<panic model="isa">
<address iobase="0x505" type="isa"/>
</panic>
</devices>
</domain>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="x86_64">hvm</type>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode="custom" match="exact">
<model>Opteron_G4</model>
</cpu>
<clock offset="utc">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
</clock>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<controller type="usb" index="0" model="none"/>
<console type="pty"/>
<panic model="isa"/>
</devices>
</domain>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="ppc64le" machine="pseries">hvm</type>
<boot dev="hd"/>
</os>
<clock offset="utc"/>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<controller type="usb" index="0" model="none"/>
<console type="pty"/>
<panic model="pseries"/>
</devices>
</domain>
<domain type="kvm">
<name>foobar</name>
<uuid>00000000-1111-2222-3333-444444444444</uuid>
<memory>65536</memory>
<currentMemory>65536</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="s390x" machine="s390-ccw-virtio">hvm</type>
<boot dev="hd"/>
</os>
<clock offset="utc"/>
<devices>
<emulator>/usr/bin/qemu-system-s390x</emulator>
<controller type="usb" index="0" model="none"/>
<console type="pty">
<target type="sclp"/>
</console>
<panic model="s390"/>
</devices>
</domain>
......@@ -63,9 +63,7 @@
<rng model="virtio">
<backend model="random">/dev/random</backend>
</rng>
<panic>
<address type="isa" iobase="0x505"/>
</panic>
<panic model="isa"/>
</devices>
<seclabel type="dynamic" model="selinux"/>
<seclabel type="none" model="dac"/>
......
......@@ -95,6 +95,7 @@
<cell id="0" cpus="1,2,3" memory="1024"/>
<cell id="1" cpus="5-8" memory="256"/>
</numa>
<cache mode="emulate" level="3"/>
</cpu>
<clock offset="utc">
<timer name="rtc" tickpolicy="merge"/>
......@@ -140,7 +141,7 @@
<source mode="connect" host="foo" service="708"/>
</backend>
</rng>
<panic>
<panic model="isa">
<address iobase="0x506" type="isa"/>
</panic>
</devices>
......@@ -249,6 +250,7 @@
<cell id="0" cpus="1,2,3" memory="1024"/>
<cell id="1" cpus="5-8" memory="256"/>
</numa>
<cache mode="emulate" level="3"/>
</cpu>
<clock offset="utc">
<timer name="rtc" tickpolicy="merge"/>
......@@ -294,7 +296,7 @@
<source mode="connect" host="foo" service="708"/>
</backend>
</rng>
<panic>
<panic model="isa">
<address iobase="0x506" type="isa"/>
</panic>
</devices>
......
......@@ -36,8 +36,6 @@ os.environ["LANG"] = "en_US.UTF-8"
os.environ["HOME"] = "/tmp"
os.environ["DISPLAY"] = ":3.4"
_defaultconn = utils.open_testdefault()
# Location
image_prefix = "/tmp/__virtinst_cli_"
xmldir = "tests/cli-test-xml"
......@@ -75,43 +73,43 @@ test_files = {
'URI-KVM-SESSION': utils.uri_kvm_session,
'URI-KVM-REMOTE': utils.uri_kvm + ",remote",
'URI-KVM-NODOMCAPS': utils.uri_kvm_nodomcaps,
'URI-KVM-ARMV7L' : utils.uri_kvm_armv7l,
'URI-KVM-AARCH64' : utils.uri_kvm_aarch64,
'URI-KVM-PPC64LE' : utils.uri_kvm_ppc64le,
'URI-KVM-S390X' : utils.uri_kvm_s390x,
'URI-KVM-S390X-KVMIBM' : utils.uri_kvm_s390x_KVMIBM,
'URI-KVM-ARMV7L': utils.uri_kvm_armv7l,
'URI-KVM-AARCH64': utils.uri_kvm_aarch64,
'URI-KVM-PPC64LE': utils.uri_kvm_ppc64le,
'URI-KVM-S390X': utils.uri_kvm_s390x,
'URI-KVM-S390X-KVMIBM': utils.uri_kvm_s390x_KVMIBM,
'URI-XEN': utils.uri_xen,
'URI-LXC': utils.uri_lxc,
'URI-VZ': utils.uri_vz,
'CLONE_DISK_XML' : "%s/clone-disk.xml" % xmldir,
'CLONE_STORAGE_XML' : "%s/clone-disk-managed.xml" % xmldir,
'CLONE_NOEXIST_XML' : "%s/clone-disk-noexist.xml" % xmldir,
'IMAGE_XML' : "%s/image.xml" % xmldir,
'IMAGE_NOGFX_XML' : "%s/image-nogfx.xml" % xmldir,
'OVF_IMG1' : "%s/tests/virtconv-files/ovf_input/test1.ovf" % os.getcwd(),
'VMX_IMG1' : "%s/tests/virtconv-files/vmx_input/test1.vmx" % os.getcwd(),
'NEWIMG1' : "/dev/default-pool/new1.img",
'NEWIMG2' : "/dev/default-pool/new2.img",
'NEWCLONEIMG1' : new_images[0],
'NEWCLONEIMG2' : new_images[1],
'NEWCLONEIMG3' : new_images[2],
'AUTOMANAGEIMG' : "/some/new/pool/dir/new",
'BLOCKVOL' : '/iscsi-pool/diskvol1',
'EXISTIMG1' : "/dev/default-pool/testvol1.img",
'EXISTIMG2' : "/dev/default-pool/testvol2.img",
'EXISTIMG3' : exist_images[0],
'EXISTIMG4' : exist_images[1],
'EXISTUPPER' : "/dev/default-pool/UPPER",
'POOL' : "default-pool",
'VOL' : "testvol1.img",
'DIR' : "/var",
'TREEDIR' : treedir,
'MANAGEDNEW1' : "/dev/default-pool/clonevol",
'MANAGEDDISKNEW1' : "/dev/disk-pool/newvol1.img",
'COLLIDE' : "/dev/default-pool/collidevol1.img",
'SHARE' : "/dev/default-pool/sharevol.img",
'CLONE_DISK_XML': "%s/clone-disk.xml" % xmldir,
'CLONE_STORAGE_XML': "%s/clone-disk-managed.xml" % xmldir,
'CLONE_NOEXIST_XML': "%s/clone-disk-noexist.xml" % xmldir,
'IMAGE_XML': "%s/image.xml" % xmldir,
'IMAGE_NOGFX_XML': "%s/image-nogfx.xml" % xmldir,
'OVF_IMG1': "%s/tests/virtconv-files/ovf_input/test1.ovf" % os.getcwd(),
'VMX_IMG1': "%s/tests/virtconv-files/vmx_input/test1.vmx" % os.getcwd(),
'NEWIMG1': "/dev/default-pool/new1.img",
'NEWIMG2': "/dev/default-pool/new2.img",
'NEWCLONEIMG1': new_images[0],
'NEWCLONEIMG2': new_images[1],
'NEWCLONEIMG3': new_images[2],
'AUTOMANAGEIMG': "/some/new/pool/dir/new",
'BLOCKVOL': '/iscsi-pool/diskvol1',
'EXISTIMG1': "/dev/default-pool/testvol1.img",
'EXISTIMG2': "/dev/default-pool/testvol2.img",
'EXISTIMG3': exist_images[0],
'EXISTIMG4': exist_images[1],
'EXISTUPPER': "/dev/default-pool/UPPER",
'POOL': "default-pool",
'VOL': "testvol1.img",
'DIR': "/var",
'TREEDIR': treedir,
'MANAGEDNEW1': "/dev/default-pool/clonevol",
'MANAGEDDISKNEW1': "/dev/disk-pool/newvol1.img",
'COLLIDE': "/dev/default-pool/collidevol1.img",
'SHARE': "/dev/default-pool/sharevol.img",
}
......@@ -238,9 +236,9 @@ class Command(object):
raise AssertionError(
("Expected command to %s, but it didn't.\n" %
(self.check_success and "pass" or "fail")) +
("Command was: %s\n" % self.cmdstr) +
("Error code : %d\n" % code) +
("Output was:\n%s" % output))
("Command was: %s\n" % self.cmdstr) +
("Error code : %d\n" % code) +
("Output was:\n%s" % output))
if self.compare_file:
if self._check_support(tests, conn, self.compare_check,
......@@ -418,7 +416,7 @@ c.add_compare(""" \
c.add_compare("""--pxe \
--memory 512,maxmemory=1024 \
--vcpus 4,cores=2,threads=2,sockets=2 \
--cpu foobar,+x2apic,+x2apicagain,-distest,forbid=foo,forbid=bar,disable=distest2,optional=opttest,require=reqtest,match=strict,vendor=meee,cell.id=0,cell.cpus=1,2,3,cell.memory=1024,cell1.id=1,cell1.memory=256,cell1.cpus=5-8 \
--cpu foobar,+x2apic,+x2apicagain,-distest,forbid=foo,forbid=bar,disable=distest2,optional=opttest,require=reqtest,match=strict,vendor=meee,cell.id=0,cell.cpus=1,2,3,cell.memory=1024,cell1.id=1,cell1.memory=256,cell1.cpus=5-8,cache.mode=emulate,cache.level=3 \
--metadata title=my-title,description=my-description,uuid=00000000-1111-2222-3333-444444444444 \
--boot cdrom,fd,hd,network,menu=off,loader=/foo/bar \
--idmap uid_start=0,uid_target=1000,uid_count=10,gid_start=0,gid_target=1000,gid_count=10 \
......@@ -488,6 +486,9 @@ c.add_compare(""" \
--graphics spice,gl=yes,listen=socket \
--graphics spice,gl=yes,listen=none \
--graphics spice,gl=yes,listen=none,rendernode=/dev/dri/foo \
--graphics spice,listens0.type=address,listens0.address=1.2.3.4 \
--graphics spice,listens0.type=network,listens0.network=default \
--graphics spice,listens0.type=socket,listens0.socket=/tmp/foobar \
\
--controller usb,model=ich9-ehci1,address=0:0:4.7,index=0 \
--controller usb,model=ich9-uhci1,address=0:0:4.0,index=0,master=0 \
......@@ -625,6 +626,7 @@ c.add_valid("--disk /dev/zero") # Referencing a local unmanaged /dev node
c.add_valid("--disk pool=default,size=.00001") # Building 'default' pool
c.add_valid("--disk %(AUTOMANAGEIMG)s,size=.1") # autocreate the pool
c.add_valid("--disk %(NEWIMG1)s,sparse=true,size=100000000 --check disk_size=off") # Don't warn about fully allocated file exceeding disk space
c.add_valid("--disk %(EXISTIMG1)s,snapshot_policy=no") # Disable snasphot for disk
c.add_invalid("--file %(NEWIMG1)s --file-size 100000 --nonsparse") # Nonexisting file, size too big
c.add_invalid("--file %(NEWIMG1)s --file-size 100000") # Huge file, sparse, but no prompting
c.add_invalid("--file %(NEWIMG1)s") # Nonexisting file, no size
......@@ -647,6 +649,21 @@ c.add_invalid("--disk source_pool=default-pool,source_volume=idontexist") # try
c.add_invalid("--disk size=1 --security model=foo,type=bar") # Libvirt will error on the invalid security params, which should trigger the code path to clean up the disk images we created.
################
# Panic device #
################
c = vinst.add_category("panic", "--connect %(URI-KVM)s --noautoconsole --import --disk none --graphics none --controller usb,model=none --network none")
c.add_compare("--panic default", "panic-default")
c.add_compare("--panic isa", "panic-isa")
c.add_compare("--panic isa,iobase=0x505", "panic-isa-iobase")
c = vinst.add_category("panic", "--connect %(URI-KVM-PPC64LE)s --noautoconsole --import --disk none --graphics none --controller usb,model=none --network none")
c.add_compare("--panic default", "panic-pseries-default")
c = vinst.add_category("panic", "--connect %(URI-KVM-S390X)s --noautoconsole --import --disk none --graphics none --controller usb,model=none --network none")
c.add_compare("--panic default", "panic-s390x-default")
################################################
# Invalid devices that hit virtinst code paths #
......@@ -840,6 +857,7 @@ c.add_valid("--bridge mybr0 --mac 22:22:33:44:55:AF") # Old bridge w/ mac
c.add_valid("--network bridge:mybr0,model=e1000") # --network bridge:
c.add_valid("--network network:default --mac RANDOM") # VirtualNetwork with a random macaddr
c.add_valid("--vnc --keymap=local") # --keymap local
c.add_valid("--panic 0x505") # ISA panic with iobase specified
c.add_invalid("--nonetworks") # no networks
c.add_invalid("--graphics vnc --vnclisten 1.2.3.4") # mixing old and new
c.add_invalid("--network=FOO") # Nonexistent network
......
<domain type='kvm'>
<name>clone-orig</name>
<uuid>aaa3ae22-fed2-bfbd-ac02-3bea3bcfad82</uuid>
<memory>262144</memory>
<currentMemory>262144</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686' machine='pc'>hvm</type>
<boot dev='cdrom'/>
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' passwd='foo'/>
</devices>
</domain>
<domain type="kvm">
<name>clone-new</name>
<uuid>12345678-1234-1234-1234-123456789012</uuid>
<memory>262144</memory>
<currentMemory>262144</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="i686" machine="pc">hvm</type>
<boot dev="cdrom"/>
</os>
<features>
<acpi/>
</features>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<input type="mouse" bus="ps2"/>
<graphics type="vnc" port="-1" autoport="yes" listen="127.0.0.1" passwd="foo"/>
</devices>
</domain>
......@@ -119,7 +119,7 @@ class TestClone(unittest.TestCase):
def testRemoteNoStorage(self):
"""Test remote clone where VM has no storage that needs cloning"""
conn = utils.open_test_remote()
for base in ["nostorage", "noclone-storage"] :
for base in ["nostorage", "noclone-storage"]:
self._clone_helper(base, disks=[], conn=conn)
def testRemoteWithStorage(self):
......@@ -128,7 +128,7 @@ class TestClone(unittest.TestCase):
since libvirt has no storage clone api.
"""
conn = utils.open_test_remote()
for base in ["general-cfg"] :
for base in ["general-cfg"]:
try:
self._clone_helper(base,
disks=["%s/1.img" % POOL1,
......@@ -187,3 +187,7 @@ class TestClone(unittest.TestCase):
def testCloneNvramNewpool(self):
base = "nvram-newpool"
self._clone_helper(base)
def testCloneGraphicsPassword(self):
base = "graphics-password"
self._clone_helper(base)
......@@ -224,7 +224,7 @@ class TestNodeDev(unittest.TestCase):
devname = "pci_10df_fe00_0_scsi_host"
vals = {"name": "pci_10df_fe00_0_scsi_host",
"device_type": NodeDevice.CAPABILITY_TYPE_SCSIBUS,
"host": "4", "fc_host": True, "vport_ops" : True,
"host": "4", "fc_host": True, "vport_ops": True,
"wwnn": "20000000c9848141", "wwpn": "10000000c9848141"}
self._testCompare(devname, vals)
......
......@@ -10,14 +10,11 @@ format = pylint
# E122: Continuation line missing indentation or outdented
# E123: Closing bracket does not match indentation of opening
# bracket's line
# E124: Closing bracket does not match visual indentation
# E125: Continuation line with same indent as next logical line
# E126: Continuation line over-indented for hanging indent
# E127: Continuation line over-indented for visual indent
# E128: Continuation line under-indented for visual indent
# E129: Visually indented line with same indent as next logical line
# E131: Continuation line unaligned for hanging indent
# E203: White-space before ':'
# E221: Multiple spaces before operator
# E241: Multiple spaces after ‘,’
# E301: Expected 1 blank line, found 0
......@@ -30,4 +27,4 @@ format = pylint
# E741: Do not use variables named ‘l’, ‘O’, or ‘I’
ignore = E122, E123, E124, E125, E126, E127, E128, E129, E131, E203, E221, E241, E301, E303, E305, E306, E402, E501, E741
ignore = E122, E123, E125, E126, E127, E128, E129, E221, E241, E301, E303, E305, E306, E402, E501, E741
......@@ -18,7 +18,6 @@
import unittest
import time
import logging
import platform
import traceback
from tests import URLTEST_LOCAL_MEDIA
......@@ -58,7 +57,7 @@ UBUNTU_URL = "http://us.archive.ubuntu.com:80/ubuntu/dists/%s/main/installer-%s"
OLD_DEBIAN_URL = "http://archive.debian.org/debian/dists/%s/main/installer-%s/"
DAILY_DEBIAN_URL = "http://d-i.debian.org/daily-images/%s/"
DEBIAN_URL = "ftp://ftp.us.debian.org/debian/dists/%s/main/installer-%s/"
DEBIAN_URL = "http://ftp.us.debian.org/debian/dists/%s/main/installer-%s/"
MAGEIA_URL = "http://distro.ibiblio.org/mageia/distrib/%s/%s"
......@@ -68,15 +67,20 @@ _distro = None
class _DistroURL(object):
def __init__(self, x86_64, detectdistro=None, i686=None,
def __init__(self, url, detectdistro=None,
hasxen=True, hasbootiso=True, name=None,
testshortcircuit=False):
self.x86_64 = x86_64
self.i686 = i686
testshortcircuit=False, arch="x86_64"):
self.url = url
self.arch = arch
self.detectdistro = detectdistro
self.hasxen = hasxen
self.hasbootiso = hasbootiso
self.name = name or self.detectdistro
if name:
self.name = name
else:
self.name = self.detectdistro
if