Description of problem: Version-Release number of selected component (if applicable): $ virt-manager --version 1.3.2 How reproducible: virt-install with a net-install of RHEL 7.2 (but looks to be any netboot style install). ISO pull off the web server. Steps to Reproduce: 1. Run virt-install where my install is a net install (pulling down images/pxeboot/vmlinuz 2. Python error below Actual results: [Mon, 11 Jan 2016 22:44:00 virt-install 12769] ERROR (cli:306) Couldn't acquire file http://URL/images/pxeboot/vmlinuz: 'int' object has no attribute 'isdigit' [Mon, 11 Jan 2016 22:44:00 virt-install 12769] DEBUG (cli:308) Traceback (most recent call last): File "/usr/share/virt-manager/virt-install", line 741, in start_install dom = guest.start_install(meter=meter, noboot=options.noreboot) File "/usr/share/virt-manager/virtinst/guest.py", line 482, in start_install self._prepare_install(meter, dry) File "/usr/share/virt-manager/virtinst/guest.py", line 303, in _prepare_install self.installer.prepare(self, meter) File "/usr/share/virt-manager/virtinst/installer.py", line 200, in prepare self._prepare(guest, meter) File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 451, in _prepare self._prepare_kernel_url(guest, fetcher) File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 360, in _prepare_kernel_url kernel, initrd, args = store.acquireKernel(guest) File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 586, in acquireKernel return self._kernelFetchHelper(guest, kernelpath, initrdpath) File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 645, in _kernelFetchHelper kernel = self.fetcher.acquireFile(kernelpath) File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 156, in acquireFile self._grabURL(filename, fileobj) File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 87, in _grabURL (url, str(e))) ValueError: Couldn't acquire file http://URL/images/pxeboot/vmlinuz: 'int' object has no attribute 'isdigit' Expected results: [Mon, 11 Jan 2016 22:44:25 virt-install 12857] DEBUG (urlfetcher:89) Fetching URI: http://qnap01.csdt.sjm.com/kickstart/RHEL7.2_ISO/images/pxeboot/vmlinuz ... [Mon, 11 Jan 2016 22:44:25 virt-install 12857] DEBUG (urlfetcher:89) Fetching URI: http://qnap01.csdt.sjm.com/kickstart/RHEL7.2_ISO/images/pxeboot/initrd.img These expected results I get with the patch below. Additional info: $ diff -Nur /usr/share/virt-manager/virtinst/urlfetcher.py.orig /usr/share/virt-manager/virtinst/urlfetcher.py --- /usr/share/virt-manager/virtinst/urlfetcher.py.orig 2016-01-11 23:26:59.147009928 +0000 +++ /usr/share/virt-manager/virtinst/urlfetcher.py 2016-01-11 22:44:46.476132803 +0000 @@ -187,6 +187,8 @@ response = requests.get(url, stream=True) response.raise_for_status() size = response.headers.get('content-length') + if size == None: + size = "0" return response, size.isdigit() and int(size) or None def _write(self, urlobj, fileobj): //end snip This fixes the problem for me. Since Transfer-Encoding "chunked" header is set, there is no Content-Length header, therefore you get None back. Since this is only for a progress bar I don't care if the size is incorrect.
Thanks for the report, and the patch! It's better to default to size=None instead, since that gives better progressbar behavior. I pushed a fix: commit eae7dc061968a83fef8ebb632c8f939621ff22b1 Author: Cole Robinson <crobinso> Date: Tue Jan 12 12:45:02 2016 -0500 urlfetcher: Fix URL installs when content-length header missing Suggested-by: bduff