Software Development Kit (SDK) and API Discussions
Software Development Kit (SDK) and API Discussions
Using netapp-manageability-sdk-5.7 with Perl to access a simulated cdot cluster with 9.1, I get undefined values with child_get_string in net_ipspace-get-iter.
It occurs not everywhere, only in <ports>, <vservers> or <broadcast-domains> and I'm using the same construct to get the values I use in igroup-get-iter to get <initiator-name>, which is similar and works fine there.
Code snippet:
				my $List=$xo->child_get("attributes-list");
				my @Attributes=$List->children_get();
				my $Count=0;
				foreach my $Attr (@Attributes) {
					print "\n".$Attr->sprintf();
					my $UUID=$Attr->child_get_string("uuid"); # works as expected
					my $Vservers=$Attr->child_get("vservers");
					my @VserverList=$Vservers->children_get();
					foreach my $Vserver (@VserverList) {
						print "\n".$Vserver->sprintf(); # shows the value I want
						my $VserverName=$Vserver->child_get_string("vserver-name"); # returns undef
                                                print "$VserverName\n";
					}output:
<net-ipspaces-info>
        <broadcast-domains>
                <broadcast-domain-name>prod_smc</broadcast-domain-name>
        </broadcast-domains>
        <id>23</id>
        <ipspace>ips_smc</ipspace>
        <ports>
                <net-qualified-port-name>smc-na010-01:a0a</net-qualified-port-name>
        </ports>
        <uuid>3c213daa-4b97-11e7-bef5-005056be73f9</uuid>
        <vservers>
                <vserver-name>ips_smc</vserver-name>
        </vservers>
</net-ipspaces-info>
<vserver-name>ips_smc</vserver-name>
Use of uninitialized value $VserverName in concatenation (.) or string at ./na_cdot.pl line 1311.It's not a show stopper, since I'm able to get the data I want with a workaround. But I'm really curious if this is an error in the API or if I have overlooked something.
Solved! See The Solution
Hi asulliva,
thanks for the hint. I'm not familliar with Python and the functions in the Perl API are different too, but I found a solution using get_content instead of child_get_string.
					my $Ports=$Attr->child_get("ports");
					my @PortList=$Ports->children_get();
					foreach my $Port (@PortList) {
						my $Name=$Port->get_content("net-qualified-port-name");
						print "$Name\n";
					}This gets the values I want.
Hello @arminwiesel_fts,
There was a similar post to this recently, I believe the behavior you're seeing is expected.
Andrew
Hi asulliva,
thanks for the hint. I'm not familliar with Python and the functions in the Perl API are different too, but I found a solution using get_content instead of child_get_string.
					my $Ports=$Attr->child_get("ports");
					my @PortList=$Ports->children_get();
					foreach my $Port (@PortList) {
						my $Name=$Port->get_content("net-qualified-port-name");
						print "$Name\n";
					}This gets the values I want.