Bug 1101999

Summary: virt-xml-validate should pass when netfs pool xml with glusterfs backend
Product: Red Hat Enterprise Linux 7 Reporter: Shanzhi Yu <shyu>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.0CC: dyuan, mzhan, pkrempa, rbalakri, vivianzhang, xuzhang, yanyang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-1.2.7-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 07:36:39 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 Shanzhi Yu 2014-05-28 10:24:09 UTC
Description of problem:

virt-xml-validate should pass when netfs pool xml with glusterfs backend

Version-Release number of selected component (if applicable):

libvirt-client-1.1.1-29.el7.x86_64

How reproducible:

100%

Steps to Reproduce:

1. prepare an netfs type pool xml file

# cat netfs-gluster.xml
<pool type='netfs'>
  <name>netfs-gluster</name>
  <source>
    <host name='10.66.4.145'/>
        <dir path='gluster-vol1'/>
    <format type='glusterfs'/>
  </source>
  <target>
    <path>/var/lib/libvirt/images/netfs-gluster</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

2.
# virt-xml-validate netfs-gluster.xml
netfs-gluster.xml:5: element dir: Relax-NG validity error : Element dir failed to validate attributes
netfs-gluster.xml:3: element source: Relax-NG validity error : Invalid sequence in interleave
netfs-gluster.xml:3: element source: Relax-NG validity error : Element source failed to validate content
netfs-gluster.xml:1: element pool: Relax-NG validity error : Invalid sequence in interleave
netfs-gluster.xml:1: element pool: Relax-NG validity error : Element pool failed to validate content
netfs-gluster.xml fails to validate

3. create netfs pool with netfs-gluster.xml

# virsh pool-create netfs-gluster.xml
Pool netfs-gluster created from netfs-gluster.xml

4. check the pool
# virsh pool-list netfs

Name                 State      Autostart
-----------------------------------------
netfs-gluster        active     no  

# virsh pool-dumpxml netfs-gluster
<pool type='netfs'>
  <name>netfs-gluster</name>
  <uuid>f9df0383-821a-4c43-ad2f-97fa15d82d31</uuid>
  <capacity unit='bytes'>42928701440</capacity>
  <allocation unit='bytes'>6699630592</allocation>
  <available unit='bytes'>36229070848</available>
  <source>
    <host name='10.66.4.145'/>
    <dir path='gluster-vol1'/>
    <format type='glusterfs'/>
  </source>
  <target>
    <path>/var/lib/libvirt/images/netfs-gluster</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

Actual results:


Expected results:

virt-xml-validate should pass in step 2, since "dir path" here should be volume name
on glusterfs server


Additional info:

Comment 1 Peter Krempa 2014-07-21 16:35:54 UTC
Resolved in: v1.2.6-206-gb325be1

commit b325be128acf901d6966df097ceea2b8349f3ee5
Author: Peter Krempa <pkrempa>
Date:   Wed May 28 15:47:38 2014 +0200

    schema: pool: netfs: Don't enforce slash in glusterfs pool source
    
    Gluster volumes don't start with a leading slash. Our schema for netfs
    gluster pools enforces it though. Luckily mount.glusterfs skips it.
    Allow a slashless volume name for glusterfs netfs mounts in the schema.

Comment 3 vivian zhang 2014-11-27 10:01:25 UTC
I can produce this bug on build 
libvirt-1.1.1-29.el7.x86_64

verify it on build
libvirt-1.2.8-9.el7.x86_64
qemu-kvm-rhev-2.1.2-12.el7.x86_64

verify steps:

1. prepare an netfs type pool xml file

# cat /tmp/netfs-gluster.xml 
<pool type='netfs'>
  <name>netfs-gluster</name>
  <source>
    <host name='10.66.106.2'/>
        <dir path='gluster-vol1'/>
    <format type='glusterfs'/>
  </source>
  <target>
    <path>/var/lib/libvirt/images/netfs-gluster</path>
    <permissions>
      <mode>0755</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

2. virt-xml-validate success
# virt-xml-validate /tmp/netfs-gluster.xml 
/tmp/netfs-gluster.xml validates

3. define pool with xml, and build , start success

# virsh pool-undefine netfs-gluster
Pool netfs-gluster has been undefined

[root@server libvirt]# virsh pool-list --all
 Name                 State      Autostart 
-------------------------------------------
 default              active     yes       
 HostVG               inactive   no        
 mnt                  active     yes       
 pool1                active     no        
 root                 active     yes       
 test-iscsi           inactive   no        
 wzhang               active     yes       

# virsh pool-define /tmp/netfs-gluster.xml 
Pool netfs-gluster defined from /tmp/netfs-gluster.xml

# virsh pool-list --all
 Name                 State      Autostart 
-------------------------------------------
 default              active     yes              
 netfs-gluster        inactive   no        
     

# virsh pool-build netfs-gluster
Pool netfs-gluster built

# virsh pool-start netfs-gluster
Pool netfs-gluster started

[root@server libvirt]# virsh pool-list --all
 Name                 State      Autostart 
-------------------------------------------     
 default              active     yes 
netfs-gluster        active     no        
    
move to verified

Comment 5 errata-xmlrpc 2015-03-05 07:36:39 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://rhn.redhat.com/errata/RHSA-2015-0323.html