Skip to content

Instantly share code, notes, and snippets.

@fatmcgav
Created July 16, 2013 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fatmcgav/6007620 to your computer and use it in GitHub Desktop.
Save fatmcgav/6007620 to your computer and use it in GitHub Desktop.
before and after output when patching NaServer SDK
$ ruby delete_export.rb 192.168.168.10 root netapp1234 /vol/v_puppet_test1007131448.
Pathname_info looks like:
#<NaElement:0x7f6dfd6e2798
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f6dfd6e2680
@attrkeys=[],
@attrvals=[],
@children=[],
@content="/vol/v_puppet_test1007131448.",
@name="name">],
@content="",
@name="pathname-info">
Executing command.
Got to NaServer.invoke...
Num_parms = 4.
Key = persistent. Value = true.
Value class = String.
Got a normal key=value pair.
Key = pathnames. Value = #<NaElement:0x7f6dfd6e2798>.
Value class = NaElement.
Got a NaElement.
xi Request looks like:
#<NaElement:0x7f6dfd6d1c68
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f6dfd6d1b00
@attrkeys=[],
@attrvals=[],
@children=[],
@content="true",
@name="persistent">,
#<NaElement:0x7f6dfd6d1998
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f6dfd6e2798
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f6dfd6e2680
@attrkeys=[],
@attrvals=[],
@children=[],
@content="/vol/v_puppet_test1007131448.",
@name="name">],
@content="",
@name="pathname-info">],
@content="",
@name="pathnames">],
@content="",
@name="nfs-exportfs-delete-rules">
INPUT
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE netapp SYSTEM 'file:/etc/netapp_filer.dtd'>
<netapp version='1.13' xmlns='http://www.netapp.com/filer/admin'><nfs-exportfs-delete-rules><persistent>true</persistent><pathnames><pathname-info><name>/vol/v_puppet_test1007131448.</name></pathname-info></pathnames></nfs-exportfs-delete-rules></netapp>Export Deletion succeded.
$ ruby delete_export.rb 192.168.168.10 root netapp1234 /vol/v_puppet_test1007131448.
Pathname_info looks like:
#<NaElement:0x7f9039195638
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f9039195520
@attrkeys=[],
@attrvals=[],
@children=[],
@content="/vol/v_puppet_test1007131448.",
@name="name">],
@content="",
@name="pathname-info">
Executing command.
Got to NaServer.invoke...
Num_parms = 4.
Key = persistent. Value = true.
Value class = String.
Got a normal key=value pair.
Key = pathnames. Value = #<NaElement:0x7f9039195638>.
Value class = NaElement.
Got a normal key=value pair.
xi Request looks like:
#<NaElement:0x7f9039184b08
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f9039184978
@attrkeys=[],
@attrvals=[],
@children=[],
@content="true",
@name="persistent">,
#<NaElement:0x7f90391847e8
@attrkeys=[],
@attrvals=[],
@children=[],
@content=
#<NaElement:0x7f9039195638
@attrkeys=[],
@attrvals=[],
@children=
[#<NaElement:0x7f9039195520
@attrkeys=[],
@attrvals=[],
@children=[],
@content="/vol/v_puppet_test1007131448.",
@name="pathname">],
@content="",
@name="pathname-info">,
@name="pathnames">],
@content="",
@name="nfs-exportfs-delete-rules">
INPUT
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE netapp SYSTEM 'file:/etc/netapp_filer.dtd'>
<netapp version='1.13' xmlns='http://www.netapp.com/filer/admin'><nfs-exportfs-delete-rules><persistent>true</persistent><pathnames>#&lt;NaElement:0x7f9039195638&gt;</pathnames></nfs-exportfs-delete-rules></netapp>Invalid number of pathnames
#A convenience routine which wraps invoke_elem().
#It constructs an NaElement with name $api, and for
#each argument name/value pair, adds a child element
#to it. It's an error to have an even number of
#arguments to this function.
#Example: myserver->invoke('snapshot-create',
# 'snapshot', 'mysnapshot',
# 'volume', 'vol0');
#
def invoke(api, *args)
print "Got to NaServer.invoke...\n"
num_parms = args.length
if ((num_parms & 1) != 0)
return self.fail_response(13001, "in Zapi::invoke, invalid number of parameters")
end
print "Num_parms = #{num_parms}.\n"
xi = NaElement.new(api)
i = 0
while(i < num_parms)
key = args[i]
i = i + 1
value = args[i]
print "Key = #{key}. Value = #{value}.\n"
print "Value class = #{value.class}.\n"
i = i + 1
if value.class == NaElement
print "Got a NaElement. \n"
x = NaElement.new(key)
x.child_add(value)
xi.child_add(x)
else
print "Got a normal key=value pair.\n"
xi.child_add(NaElement.new(key, value))
end
end
print "xi Request looks like: \n"
pp xi
return invoke_elem(xi)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment