Bug 1366241

Summary: Install guest failed when "-c URI" was specified
Product: Red Hat Enterprise Linux 7 Reporter: Xiaodai Wang <xiaodwan>
Component: virt-managerAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: juzhou, phrdina
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-manager-1.4.1-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 21:02:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Xiaodai Wang 2016-08-11 11:10:18 UTC
Description of problem:
Install guest failed when "-c URI" was specified

Version-Release number of selected component (if applicable):
virt-install-1.4.0-1.el7.noarch

How reproducible:
100%

Steps to Reproduce:

1. Check man page of virt-install by "man virt-install" and find "-c URI" is supported.

CONNECTING TO LIBVIRT
       -c URI
       --connect URI
           Connect to a non-default hypervisor. If this isn't specified, libvirt will try and choose the most suitable default.

2. Install a guest with "-c URI" and "--cdrom" option.

# virt-install --name test --memory 1024 -c qemu:///system --disk /var/lib/libvirt/images/test.img,size=3 --cdrom /tmp/testdir/ubuntu-15.10-server-amd64.iso --debug
[Thu, 11 Aug 2016 18:05:04 virt-install 6221] DEBUG (cli:258) Launched with command line: /usr/share/virt-manager/virt-install --name test --memory 1024 -c qemu:///system --disk /var/lib/libvirt/images/test.img,size=3 --cdrom /tmp/testdir/ubuntu-15.10-server-amd64.iso --debug
[Thu, 11 Aug 2016 18:05:04 virt-install 6221] DEBUG (cli:307)   File "/usr/share/virt-manager/virt-install", line 996, in <module>
    sys.exit(main())
  File "/usr/share/virt-manager/virt-install", line 968, in main
    check_cdrom_option_error(options)
  File "/usr/share/virt-manager/virt-install", line 85, in check_cdrom_option_error
    fail("Cannot specify both -c and --cdrom")
  File "/usr/share/virt-manager/virtinst/cli.py", line 307, in fail
    logging.debug("".join(traceback.format_stack()))

[Thu, 11 Aug 2016 18:05:04 virt-install 6221] ERROR (cli:308) Cannot specify both -c and --cdrom

3. Install a guest with "-c URI" and "--location".
# virt-install --name test --memory 1024 -c qemu:///system --disk /var/lib/libvirt/images/test.img,size=3 -l http://download.eng.pek2.redhat.com/pub/rhel/rel-eng/RHEL-7.3-20160729.1/compose/Server/x86_64/os/ --debug

[Thu, 11 Aug 2016 19:01:01 virt-install 8092] ERROR (cli:308) -c specified with what looks like a URI. Did you mean to use --connect? If not, use --cdrom instead

Actual results:
as steps.

Expected results:
The guest should be installed successfully if "-c URI" supported and The doc should be updated if not supported.

Additional info:

Comment 2 Pavel Hrdina 2017-01-18 08:51:25 UTC
Upstream commit:

commit 888fcf7aec832a8421e00abe9392aa22a7782a80
Author: Pavel Hrdina <phrdina>
Date:   Wed Jan 18 09:42:25 2017 +0100

    man/virt-install: remove -c as short for --connect

Comment 4 zhoujunqin 2017-03-15 09:09:39 UTC
I can reproduce this bug with package:
virt-manager-1.4.0-2.el7.noarch
virt-install-1.4.0-2.el7.noarch
virt-manager-common-1.4.0-2.el7.noarch

Then try to verify this bug with new build:
virt-manager-1.4.1-1.el7.noarch
virt-install-1.4.1-1.el7.noarch
virt-manager-common-1.4.1-1.el7.noarch
libvirt-3.1.0-2.el7.x86_64

Steps:
1. Check virt-install manual page.
1.1 remove -c as short for --connect
CONNECTING TO LIBVIRT
       --connect URI
           Connect to a non-default hypervisor. If this isn't specified, libvirt will try and choose the most suitable default.


1.2 add -c as short for --cdrom
INSTALLATION OPTIONS
       -c OPTIONS
       --cdrom OPTIONS
           File or device used as a virtual CD-ROM device.  It can be path to an ISO image, or to a CDROM device. It can also be a
           URL from which to fetch/access a minimal boot ISO image. The URLs take the same format as described for the "--location"
           argument. If a cdrom has been specified via the "--disk" option, and neither "--cdrom" nor any other install option is
           specified, the "--disk" cdrom is used as the install media.

2. Check virt-install command line:
2.1 
# virt-install --name test --memory 1024 -c qemu:///system --disk /var/lib/libvirt/images/test.img,size=3 --cdrom /root/Downloads/RHEL-6.8-20160414.0-Server-x86_64-dvd1.iso  
ERROR    Cannot specify both -c and --cdrom

2.2 
# virt-install --name test --memory 1024 -c qemu:///system --disk /var/lib/libvirt/images/test.img,size=3 -l http://download.eng.pek2.redhat.com/pub/rhel/rel-eng/RHEL-7.3-20160729.1/compose/Server/x86_64/os/ 
ERROR    -c specified with what looks like a URI. Did you mean to use --connect? If not, use --cdrom instead

Hi Pavel, i used "-c qemu:///system" in above 2 command, but with different combination with "--cdrom" and "-l", i'm not sure why get such different error prompt to user, thanks.

Comment 5 Pavel Hrdina 2017-03-21 14:30:04 UTC
(In reply to zhoujunqin from comment #4)
> I can reproduce this bug with package:
> virt-manager-1.4.0-2.el7.noarch
> virt-install-1.4.0-2.el7.noarch
> virt-manager-common-1.4.0-2.el7.noarch
> 
> Then try to verify this bug with new build:
> virt-manager-1.4.1-1.el7.noarch
> virt-install-1.4.1-1.el7.noarch
> virt-manager-common-1.4.1-1.el7.noarch
> libvirt-3.1.0-2.el7.x86_64
> 
> Steps:
> 1. Check virt-install manual page.
> 1.1 remove -c as short for --connect
> CONNECTING TO LIBVIRT
>        --connect URI
>            Connect to a non-default hypervisor. If this isn't specified,
> libvirt will try and choose the most suitable default.
> 
> 
> 1.2 add -c as short for --cdrom
> INSTALLATION OPTIONS
>        -c OPTIONS
>        --cdrom OPTIONS
>            File or device used as a virtual CD-ROM device.  It can be path
> to an ISO image, or to a CDROM device. It can also be a
>            URL from which to fetch/access a minimal boot ISO image. The URLs
> take the same format as described for the "--location"
>            argument. If a cdrom has been specified via the "--disk" option,
> and neither "--cdrom" nor any other install option is
>            specified, the "--disk" cdrom is used as the install media.
> 
> 2. Check virt-install command line:
> 2.1 
> # virt-install --name test --memory 1024 -c qemu:///system --disk
> /var/lib/libvirt/images/test.img,size=3 --cdrom
> /root/Downloads/RHEL-6.8-20160414.0-Server-x86_64-dvd1.iso  
> ERROR    Cannot specify both -c and --cdrom
> 
> 2.2 
> # virt-install --name test --memory 1024 -c qemu:///system --disk
> /var/lib/libvirt/images/test.img,size=3 -l
> http://download.eng.pek2.redhat.com/pub/rhel/rel-eng/RHEL-7.3-20160729.1/
> compose/Server/x86_64/os/ 
> ERROR    -c specified with what looks like a URI. Did you mean to use
> --connect? If not, use --cdrom instead
> 
> Hi Pavel, i used "-c qemu:///system" in above 2 command, but with different
> combination with "--cdrom" and "-l", i'm not sure why get such different
> error prompt to user, thanks.

I my opinion the error messages are correct.  If you specify -c and --cdrom you should use only one of them.  If you use -c instead of --connect it will suggest you to use --connect instead.  The error message is clear and explains the error perfectly so I don't see any issue with those error messages.

Comment 6 zhoujunqin 2017-03-22 02:56:26 UTC
(In reply to Pavel Hrdina from comment #5)
> (In reply to zhoujunqin from comment #4)
> > I can reproduce this bug with package:
> > virt-manager-1.4.0-2.el7.noarch
> > virt-install-1.4.0-2.el7.noarch
> > virt-manager-common-1.4.0-2.el7.noarch
> > 
> > Then try to verify this bug with new build:
> > virt-manager-1.4.1-1.el7.noarch
> > virt-install-1.4.1-1.el7.noarch
> > virt-manager-common-1.4.1-1.el7.noarch
> > libvirt-3.1.0-2.el7.x86_64
> > 
> > Steps:
> > 1. Check virt-install manual page.
> > 1.1 remove -c as short for --connect
> > CONNECTING TO LIBVIRT
> >        --connect URI
> >            Connect to a non-default hypervisor. If this isn't specified,
> > libvirt will try and choose the most suitable default.
> > 
> > 
> > 1.2 add -c as short for --cdrom
> > INSTALLATION OPTIONS
> >        -c OPTIONS
> >        --cdrom OPTIONS
> >            File or device used as a virtual CD-ROM device.  It can be path
> > to an ISO image, or to a CDROM device. It can also be a
> >            URL from which to fetch/access a minimal boot ISO image. The URLs
> > take the same format as described for the "--location"
> >            argument. If a cdrom has been specified via the "--disk" option,
> > and neither "--cdrom" nor any other install option is
> >            specified, the "--disk" cdrom is used as the install media.
> > 
> > 2. Check virt-install command line:
> > 2.1 
> > # virt-install --name test --memory 1024 -c qemu:///system --disk
> > /var/lib/libvirt/images/test.img,size=3 --cdrom
> > /root/Downloads/RHEL-6.8-20160414.0-Server-x86_64-dvd1.iso  
> > ERROR    Cannot specify both -c and --cdrom
> > 
> > 2.2 
> > # virt-install --name test --memory 1024 -c qemu:///system --disk
> > /var/lib/libvirt/images/test.img,size=3 -l
> > http://download.eng.pek2.redhat.com/pub/rhel/rel-eng/RHEL-7.3-20160729.1/
> > compose/Server/x86_64/os/ 
> > ERROR    -c specified with what looks like a URI. Did you mean to use
> > --connect? If not, use --cdrom instead
> > 
> > Hi Pavel, i used "-c qemu:///system" in above 2 command, but with different
> > combination with "--cdrom" and "-l", i'm not sure why get such different
> > error prompt to user, thanks.
> 
> I my opinion the error messages are correct.  If you specify -c and --cdrom
> you should use only one of them.  If you use -c instead of --connect it will
> suggest you to use --connect instead.  The error message is clear and
> explains the error perfectly so I don't see any issue with those error
> messages.

Hi pavel, thanks for your detail explanation, it makes more clear for me.
Since "-c" is short for "--cdrom" only, move this bug from ON_QA to VERIFIED.

Comment 7 errata-xmlrpc 2017-08-01 21:02:03 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2072