26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/puppet/provider/ce/api/interface/interface_api.rb', line 26
def get_interface
interface_array = []
session = Puppet::NetDev::CE::Device.session
get_interface_xml = '<rpc><get><filter type="subtree"><ifm xmlns="http://www.huawei.com/netconf/vrp" content-version="1.0" format-version="1.0"><interfaces><interface><ifName></ifName><ifDescr></ifDescr><ifAdminStatus></ifAdminStatus></interface></interfaces></ifm></filter></get></rpc>'
interface_all = session.rpc.do_config(get_interface_xml)
interface_elements = interface_all.first_element_child.first_element_child
interface_elements.element_children.each do |interface_elem|
interface_doc = Nokogiri::XML(interface_elem.to_s)
interface_name = interface_doc.xpath('/interface/ifName').text
interface_des = interface_doc.xpath('/interface/ifDescr').text
interface_enable = interface_doc.xpath('/interface/ifAdminStatus').text
property_hash = {}
property_hash[:name] = interface_name
property_hash[:description] = interface_des if interface_des
if interface_enable == 'up'
property_hash[:enable] = :true
elsif interface_enable == 'down'
property_hash[:enable] = :false
end
interface_array << property_hash
end
interface_array
end
|