提交 5df6992e 编写于 作者: P Peter Krempa

storage: Fix XPath for looking up gluster volume name

Use the relative lookup specifier rather than the global one. Otherwise
only the first name would be looked up. Add a test case to cover the
scenario.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1436574
上级 69cc4986
......@@ -2862,7 +2862,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host,
if (!(src = virStoragePoolSourceListNewSource(list)))
goto cleanup;
if (!(src->dir = virXPathString("string(//name)", ctxt))) {
if (!(src->dir = virXPathString("string(./name)", ctxt))) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("failed to extract gluster volume name"));
goto cleanup;
......
<sources>
<source>
<host name='testhost'/>
<dir path='aaa'/>
</source>
<source>
<host name='testhost'/>
<dir path='test'/>
</source>
<source>
<host name='testhost'/>
<dir path='test1'/>
</source>
</sources>
<sources>
<source>
<host name='testhost'/>
<dir path='aaa'/>
<format type='glusterfs'/>
</source>
<source>
<host name='testhost'/>
<dir path='test'/>
<format type='glusterfs'/>
</source>
<source>
<host name='testhost'/>
<dir path='test1'/>
<format type='glusterfs'/>
</source>
</sources>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--- note that the XML file is truncated -->
<cliOutput>
<opRet>0</opRet>
<opErrno>0</opErrno>
<opErrstr/>
<volInfo>
<volumes>
<volume>
<name>aaa</name>
<id>d0b219d4-4169-4907-8994-d2e2434854ed</id>
<status>0</status>
<statusStr>Created</statusStr>
<snapshotCount>0</snapshotCount>
</volume>
<volume>
<name>test</name>
<id>32826068-2320-4b62-a825-2554edb7f020</id>
<status>1</status>
<statusStr>Started</statusStr>
<snapshotCount>0</snapshotCount>
</volume>
<volume>
<name>test1</name>
<id>dfa070f4-b12f-4166-8d68-041b73127abc</id>
<status>0</status>
<statusStr>Created</statusStr>
</volume>
<count>3</count>
</volumes>
</volInfo>
</cliOutput>
......@@ -101,6 +101,8 @@ mymain(void)
DO_TEST_GLUSTER_EXTRACT_POOL_SOURCES_NATIVE("basic");
DO_TEST_GLUSTER_EXTRACT_POOL_SOURCES_NETFS("basic");
DO_TEST_GLUSTER_EXTRACT_POOL_SOURCES_NATIVE("multivol");
DO_TEST_GLUSTER_EXTRACT_POOL_SOURCES_NETFS("multivol");
#undef DO_TEST_GLUSTER_EXTRACT_POOL_SOURCES_NATIVE
#undef DO_TEST_GLUSTER_EXTRACT_POOL_SOURCES_NETFS
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册