Bug 994141

Summary: $dev->get_parent() can't get undef if there is no parent
Product: Red Hat Enterprise Linux 7 Reporter: Daniel Berrangé <berrange>
Component: perl-Sys-VirtAssignee: Daniel Berrangé <berrange>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: cwei, dallan, dyuan, jherrman, mzhan, weizhan, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: perl-Sys-Virt-1.1.1-2.el7 Doc Type: Bug Fix
Doc Text:
Prior to this update, using the libvirt-tck utility to find the parent device of a node device with no parent incorrectly returned a "libvirt error code: 0" error message. Now, it is valid for the virNodeDeviceGetParent() function to return NULL if the parent device is nonexistent, and the error message is no longer displayed.
Story Points: ---
Clone Of: 908274 Environment:
Last Closed: 2014-06-13 12:39:32 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 Daniel Berrangé 2013-08-06 14:55:17 UTC
+++ This bug was initially created as a clone of Bug #908274 +++

Description of problem:
When try to get parent of nodedev if there is no parent,libvirt-tck get error.


Version-Release number of selected component (if applicable):
libvirt-0.10.2-17.el6.x86_64
perl-Sys-Virt-0.10.2-5.el6.x86_64
kernel-2.6.32-348.el6.x86_64
qemu-kvm-rhev-0.12.1.2-2.348.el6.x86_64


How reproducible:
100%

Steps to Reproduce:
1.in libvirt-tck script,added
.....
my @nodelist = $conn->list_all_node_devices();
  foreach my $dev (@nodelist){
  my $parent = $dev->get_parent();
  diag $parent;
}
.....

Actual results:

libvirt error code: 0, message: Unknown problem



Expected results:
should return "undef"

Additional info:
the first item in nodelist is "computer",no parent.
use python interface can return "None".

--- Additional comment from Daniel Berrange on 2013-08-06 14:29:00 BST ---

commit 04470fa5412cbd04386c5c2e785e4672cc6e0e0f
Author: Daniel P. Berrange <berrange>
Date:   Tue Aug 6 14:23:55 2013 +0100

    Fix error handling for virNodeDeviceGetParent()
    
    It is valid for virNodeDeviceGetParent() to return NULL in the
    case where there is no parent device present.
    
    Signed-off-by: Daniel P. Berrange <berrange>

Comment 2 zhe peng 2013-08-26 06:05:33 UTC
verify with perl-Sys-Virt-1.1.1-2.el7.x86_64

step:
.....
my @nodelist = $conn->list_all_node_devices();
  foreach my $dev (@nodelist){
  my $parent = $dev->get_parent();
  diag $parent;
}
.....

output msg:
# parent ===== 
# parent ===== computer
# parent ===== computer
# parent ===== computer

no libvirt error occured. move to verified.

Comment 3 Ludek Smid 2014-06-13 12:39:32 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.