acirb 1.0.4h → 1.0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/acirb/aaa.rb +1211 -92
- data/lib/acirb/ac.rb +167 -8
- data/lib/acirb/action.rb +309 -33
- data/lib/acirb/actrl.rb +1937 -79
- data/lib/acirb/actrlcap.rb +24 -2
- data/lib/acirb/adcom.rb +376 -26
- data/lib/acirb/aib.rb +47 -5
- data/lib/acirb/arp.rb +311 -19
- data/lib/acirb/bfd.rb +199 -15
- data/lib/acirb/bgp.rb +892 -69
- data/lib/acirb/callhome.rb +322 -23
- data/lib/acirb/cap.rb +45 -6
- data/lib/acirb/cdp.rb +235 -20
- data/lib/acirb/cnw.rb +122 -6
- data/lib/acirb/comm.rb +4565 -186
- data/lib/acirb/comp.rb +4882 -205
- data/lib/acirb/compat.rb +413 -38
- data/lib/acirb/condition.rb +176 -13
- data/lib/acirb/config.rb +235 -16
- data/lib/acirb/coop.rb +563 -44
- data/lib/acirb/copp.rb +1711 -40
- data/lib/acirb/ctrlr.rb +20 -2
- data/lib/acirb/ctx.rb +48 -6
- data/lib/acirb/datetime.rb +359 -24
- data/lib/acirb/dbg.rb +1902 -87
- data/lib/acirb/dbgac.rb +770 -47
- data/lib/acirb/dbgexp.rb +560 -41
- data/lib/acirb/dhcp.rb +898 -71
- data/lib/acirb/dhcptlv.rb +64 -8
- data/lib/acirb/dhcptlvpol.rb +72 -8
- data/lib/acirb/dlgt.rb +7 -1
- data/lib/acirb/dns.rb +203 -18
- data/lib/acirb/draw.rb +18 -2
- data/lib/acirb/edr.rb +52 -5
- data/lib/acirb/eigrp.rb +604 -49
- data/lib/acirb/ep.rb +43 -4
- data/lib/acirb/epm.rb +72 -8
- data/lib/acirb/eptrk.rb +147 -7
- data/lib/acirb/eqpt.rb +12467 -400
- data/lib/acirb/eqptcap.rb +131 -12
- data/lib/acirb/eqptcapacity.rb +6446 -254
- data/lib/acirb/eqptdiag.rb +171 -11
- data/lib/acirb/eqptdiagp.rb +956 -61
- data/lib/acirb/ethpm.rb +624 -19
- data/lib/acirb/event.rb +155 -12
- data/lib/acirb/extnw.rb +112 -11
- data/lib/acirb/fabric.rb +6199 -418
- data/lib/acirb/fault.rb +700 -51
- data/lib/acirb/file.rb +113 -9
- data/lib/acirb/firmware.rb +535 -40
- data/lib/acirb/fmcast.rb +63 -6
- data/lib/acirb/frmwrk.rb +201 -17
- data/lib/acirb/fsm.rb +26 -1
- data/lib/acirb/fv.rb +5653 -431
- data/lib/acirb/fvcap.rb +25 -2
- data/lib/acirb/fvns.rb +375 -33
- data/lib/acirb/fvtopo.rb +60 -5
- data/lib/acirb/geo.rb +86 -8
- data/lib/acirb/glean.rb +50 -5
- data/lib/acirb/ha.rb +6 -1
- data/lib/acirb/health.rb +258 -21
- data/lib/acirb/hvs.rb +312 -22
- data/lib/acirb/icmp.rb +34 -4
- data/lib/acirb/icmpv4.rb +42 -4
- data/lib/acirb/icmpv6.rb +78 -5
- data/lib/acirb/ident.rb +533 -43
- data/lib/acirb/igmp.rb +59 -4
- data/lib/acirb/igmpsnoop.rb +254 -18
- data/lib/acirb/im.rb +94 -7
- data/lib/acirb/imginstall.rb +18 -1
- data/lib/acirb/infra.rb +3909 -243
- data/lib/acirb/ip.rb +276 -24
- data/lib/acirb/ipmcsnoop.rb +217 -18
- data/lib/acirb/ipv4.rb +120 -8
- data/lib/acirb/ipv6.rb +121 -9
- data/lib/acirb/isis.rb +2885 -103
- data/lib/acirb/isistlv.rb +64 -8
- data/lib/acirb/l1.rb +616 -46
- data/lib/acirb/l1cap.rb +24 -2
- data/lib/acirb/l2.rb +5676 -152
- data/lib/acirb/l2cap.rb +25 -2
- data/lib/acirb/l2ext.rb +249 -19
- data/lib/acirb/l3.rb +562 -38
- data/lib/acirb/l3cap.rb +25 -2
- data/lib/acirb/l3ext.rb +758 -59
- data/lib/acirb/l3vm.rb +36 -3
- data/lib/acirb/l4.rb +35 -3
- data/lib/acirb/lacp.rb +226 -18
- data/lib/acirb/lbp.rb +24 -2
- data/lib/acirb/leqpt.rb +94 -7
- data/lib/acirb/lldp.rb +383 -29
- data/lib/acirb/lldptlv.rb +64 -8
- data/lib/acirb/lldptlvpol.rb +72 -8
- data/lib/acirb/maint.rb +464 -34
- data/lib/acirb/mcast.rb +19 -3
- data/lib/acirb/mcp.rb +168 -15
- data/lib/acirb/memory.rb +457 -18
- data/lib/acirb/mgmt.rb +708 -50
- data/lib/acirb/mldsnoop.rb +225 -16
- data/lib/acirb/mo.rb +27 -3
- data/lib/acirb/mock.rb +48 -4
- data/lib/acirb/mon.rb +378 -40
- data/lib/acirb/monitor.rb +124 -9
- data/lib/acirb/naming.rb +13 -2
- data/lib/acirb/nd.rb +304 -25
- data/lib/acirb/nw.rb +320 -39
- data/lib/acirb/nws.rb +71 -7
- data/lib/acirb/oam.rb +65 -3
- data/lib/acirb/observer.rb +56 -4
- data/lib/acirb/opflex.rb +5794 -168
- data/lib/acirb/os.rb +25 -2
- data/lib/acirb/ospf.rb +1185 -82
- data/lib/acirb/ospfv3.rb +477 -31
- data/lib/acirb/pc.rb +205 -11
- data/lib/acirb/pcons.rb +444 -42
- data/lib/acirb/phys.rb +22 -2
- data/lib/acirb/ping.rb +172 -6
- data/lib/acirb/pki.rb +194 -15
- data/lib/acirb/pol.rb +1063 -88
- data/lib/acirb/policer.rb +16 -2
- data/lib/acirb/pool.rb +49 -6
- data/lib/acirb/pres.rb +216 -19
- data/lib/acirb/proc.rb +4069 -130
- data/lib/acirb/psu.rb +40 -4
- data/lib/acirb/qos.rb +312 -28
- data/lib/acirb/qosm.rb +979 -40
- data/lib/acirb/qosp.rb +147 -11
- data/lib/acirb/rbqm.rb +113 -9
- data/lib/acirb/regress.rb +14 -1
- data/lib/acirb/reln.rb +304 -26
- data/lib/acirb/repl.rb +34 -4
- data/lib/acirb/res.rb +120 -12
- data/lib/acirb/rib.rb +85 -9
- data/lib/acirb/rmon.rb +150 -10
- data/lib/acirb/rpm.rb +11 -1
- data/lib/acirb/rtcom.rb +27 -3
- data/lib/acirb/rtctrl.rb +641 -59
- data/lib/acirb/rtextcom.rb +45 -4
- data/lib/acirb/rtflt.rb +23 -3
- data/lib/acirb/rtleak.rb +58 -6
- data/lib/acirb/rtmap.rb +354 -32
- data/lib/acirb/rtpfx.rb +54 -5
- data/lib/acirb/rtregcom.rb +43 -4
- data/lib/acirb/rtsum.rb +8 -1
- data/lib/acirb/rule.rb +27 -4
- data/lib/acirb/satm.rb +175 -6
- data/lib/acirb/snmp.rb +409 -34
- data/lib/acirb/span.rb +1263 -84
- data/lib/acirb/stats.rb +607 -31
- data/lib/acirb/statstore.rb +38 -4
- data/lib/acirb/stormctrl.rb +36 -3
- data/lib/acirb/stp.rb +315 -28
- data/lib/acirb/sts.rb +538 -45
- data/lib/acirb/svccore.rb +173 -8
- data/lib/acirb/svi.rb +61 -3
- data/lib/acirb/synthetic.rb +639 -44
- data/lib/acirb/sysdebug.rb +248 -18
- data/lib/acirb/sysfile.rb +31 -4
- data/lib/acirb/syshist.rb +39 -4
- data/lib/acirb/syslog.rb +180 -14
- data/lib/acirb/sysmgr.rb +38 -4
- data/lib/acirb/sysmgrp.rb +21 -2
- data/lib/acirb/tag.rb +159 -12
- data/lib/acirb/task.rb +48 -3
- data/lib/acirb/test.rb +40 -3
- data/lib/acirb/testinfralab.rb +97 -8
- data/lib/acirb/tlv.rb +68 -10
- data/lib/acirb/top.rb +212 -16
- data/lib/acirb/topoctrl.rb +100 -9
- data/lib/acirb/traceroute.rb +210 -11
- data/lib/acirb/traceroutep.rb +215 -12
- data/lib/acirb/trig.rb +344 -30
- data/lib/acirb/troubleshoot.rb +136 -8
- data/lib/acirb/tunnel.rb +148 -11
- data/lib/acirb/uribv4.rb +83 -8
- data/lib/acirb/uribv6.rb +63 -6
- data/lib/acirb/vlan.rb +88 -5
- data/lib/acirb/vlanmgr.rb +21 -2
- data/lib/acirb/vmm.rb +715 -50
- data/lib/acirb/vns.rb +6681 -428
- data/lib/acirb/vpc.rb +260 -14
- data/lib/acirb/vsvc.rb +48 -4
- data/lib/acirb/vtap.rb +20 -2
- data/lib/acirb/vxlan.rb +73 -4
- data/lib/acirb/vz.rb +1934 -145
- data/lib/acirb.rb +1 -1
- data/lib/events.rb +143 -6
- data/lib/loader.rb +5 -3
- data/lib/mo.rb +72 -15
- data/lib/naming.rb +1 -1
- data/lib/query.rb +3 -1
- data/lib/restclient.rb +172 -47
- data/lib/version.rb +1 -1
- metadata +32 -4
data/lib/restclient.rb
CHANGED
@@ -9,26 +9,46 @@ module ACIrb
|
|
9
9
|
# REST client end point implementation
|
10
10
|
|
11
11
|
class RestClient
|
12
|
-
attr_accessor :format, :user, :password, :baseurl, :debug, :
|
13
|
-
attr_reader :auth_cookie
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
12
|
+
attr_accessor :format, :user, :password, :baseurl, :debug, :verify
|
13
|
+
attr_reader :auth_cookie, :refresh_time
|
14
|
+
|
15
|
+
class ApicAuthenticationError < StandardError
|
16
|
+
end
|
17
|
+
|
18
|
+
class ApicErrorResponse < StandardError
|
19
|
+
end
|
20
|
+
|
21
|
+
# Public: Initializes and establishes an authenticated session with APIC
|
22
|
+
# REST endpoint
|
23
|
+
#
|
24
|
+
# options - Hash options used to specify connectivity
|
25
|
+
# attributes (default: {}):
|
26
|
+
#
|
27
|
+
# :url - string URL of APIC, e.g., https://apic (required)
|
28
|
+
# :user - string containing User ID for authentication (required)
|
29
|
+
# :password - string containing Password for
|
30
|
+
# authentication (required)
|
31
|
+
# :debug - boolean true or false for including verbose REST output
|
32
|
+
# (default: false)
|
33
|
+
# :format - string 'xml' or 'json' specifying the format to use
|
34
|
+
# for messaging to APIC. (default: xml)
|
35
|
+
# :verify - boolean true or false for verifying the SSL
|
36
|
+
# certificate. (default: false)
|
37
|
+
#
|
38
|
+
# Examples:
|
39
|
+
# rest = ACIrb::RestClient.new(url: 'https://apic', user: 'admin',
|
40
|
+
# password: 'password', format: 'json',
|
41
|
+
# debug: false)
|
24
42
|
def initialize(options = {})
|
25
43
|
uri = URI.parse(options[:url])
|
26
|
-
@baseurl = '%s://%s' % [uri.scheme, uri.host]
|
44
|
+
@baseurl = '%s://%s:%s' % [uri.scheme, uri.host, uri.port]
|
27
45
|
@format = options[:format] ? options[:format] : 'xml'
|
28
46
|
|
29
47
|
@user = options[:user]
|
30
48
|
@password = options[:password]
|
31
49
|
|
50
|
+
@verify = options[:verify]
|
51
|
+
|
32
52
|
@client = HTTPClient.new
|
33
53
|
|
34
54
|
@client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE \
|
@@ -41,11 +61,13 @@ module ACIrb
|
|
41
61
|
authenticate if @user && @password
|
42
62
|
end
|
43
63
|
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
64
|
+
# Public: Authenticates the REST session with APIC
|
65
|
+
# Sends a aaaLogin message to APIC and updates the following instance
|
66
|
+
# variables:
|
67
|
+
# @auth_cookie - session cookie
|
68
|
+
# @refresh_time - session refresh timeout in seconds
|
69
|
+
#
|
70
|
+
# Returns nothing.
|
49
71
|
def authenticate
|
50
72
|
builder = Nokogiri::XML::Builder.new do |xml|
|
51
73
|
xml.aaaUser(name: @user, pwd: @password)
|
@@ -56,34 +78,39 @@ module ACIrb
|
|
56
78
|
response = @client.post(post_url, body: builder.to_xml)
|
57
79
|
puts 'POST RESPONSE: ', response.body if @debug
|
58
80
|
doc = Nokogiri::XML(response.body)
|
59
|
-
fail 'Authentication error(%s): %s' % [doc.at_css('error')['code'], doc.at_css('error')['text']] \
|
81
|
+
fail ApicAuthenticationError, 'Authentication error(%s): %s' % [doc.at_css('error')['code'], doc.at_css('error')['text']] \
|
60
82
|
if doc.at_css('error')
|
61
83
|
@auth_cookie = doc.at_css('aaaLogin')['token']
|
62
84
|
@refresh_time = doc.at_css('aaaLogin')['refreshTimeoutSeconds']
|
63
85
|
end
|
64
86
|
|
87
|
+
# Public: Refreshes an existing RestClient object session
|
88
|
+
# Sends a aaaRefresh message to APIC and updates the following instance
|
89
|
+
# variables:
|
90
|
+
# @auth_cookie - session cookie
|
91
|
+
# @refresh_time - session refresh timeout in seconds
|
92
|
+
#
|
93
|
+
# Returns nothing.
|
65
94
|
def refresh_session
|
66
95
|
get_url = URI.encode(@baseurl.to_s + '/api/mo/aaaRefresh.xml')
|
67
96
|
puts 'GET REQUEST', get_url if @debug
|
68
97
|
response = @client.get(get_url)
|
69
98
|
puts 'GET RESPONSE: ', response.body if @debug
|
70
99
|
doc = Nokogiri::XML(response.body)
|
71
|
-
fail 'Authentication error(%s): %s' % [doc.at_css('error')['code'], doc.at_css('error')['text']] \
|
100
|
+
fail ApicAuthenticationError, 'Authentication error(%s): %s' % [doc.at_css('error')['code'], doc.at_css('error')['text']] \
|
72
101
|
if doc.at_css('error')
|
73
102
|
@auth_cookie = doc.at_css('aaaLogin')['token']
|
74
103
|
@refresh_time = doc.at_css('aaaLogin')['refreshTimeoutSeconds']
|
75
104
|
end
|
76
105
|
|
77
|
-
#
|
78
|
-
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
# utilized, typicalliy /api/mo/.xml
|
86
|
-
|
106
|
+
# Internal: Posts data to the APIC REST interface
|
107
|
+
#
|
108
|
+
# options - Hash options for defining post parameters (default: {})
|
109
|
+
# :url - relative URL for request (required)
|
110
|
+
# :data - post payload to be included in the request (required)
|
111
|
+
#
|
112
|
+
# Returns results of parse_response, which will be the parsed results of
|
113
|
+
# the XML or JSON payload represented as ACIrb::MO objects
|
87
114
|
def post(options)
|
88
115
|
post_url = URI.encode(@baseurl.to_s + options[:url].to_s)
|
89
116
|
|
@@ -102,13 +129,13 @@ module ACIrb
|
|
102
129
|
parse_response(response)
|
103
130
|
end
|
104
131
|
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
108
|
-
#
|
109
|
-
#
|
110
|
-
#
|
111
|
-
|
132
|
+
# Internal: Queries the APIC REST API for data
|
133
|
+
#
|
134
|
+
# options - Hash options for defining get parameters (default: {})
|
135
|
+
# :url - relative URL for request (required)
|
136
|
+
#
|
137
|
+
# Returns results of parse_response, which will be the parsed results of
|
138
|
+
# the XML or JSON payload represented as ACIrb::MO objects
|
112
139
|
def get(options)
|
113
140
|
get_url = URI.encode(@baseurl.to_s + options[:url].to_s)
|
114
141
|
|
@@ -119,19 +146,28 @@ module ACIrb
|
|
119
146
|
parse_response(response)
|
120
147
|
end
|
121
148
|
|
149
|
+
# Internal: Parses for error responses in APIC response payload
|
150
|
+
#
|
151
|
+
# doc - Nokigiri XML document or Hash array containing well formed
|
152
|
+
# APIC response payload (required)
|
122
153
|
def parse_error(doc)
|
123
154
|
if format == 'xml'
|
124
|
-
fail 'Error response from APIC (%s): "%s"' % \
|
155
|
+
fail ApicErrorResponse, 'Error response from APIC (%s): "%s"' % \
|
125
156
|
[doc.at_css('error')['code'], doc.at_css('error')['text']] \
|
126
157
|
if doc.at_css('error')
|
127
158
|
elsif format == 'json'
|
128
|
-
fail 'Error response from APIC (%s): "%s"' % \
|
159
|
+
fail ApicErrorResponse, 'Error response from APIC (%s): "%s"' % \
|
129
160
|
[doc['imdata'][0]['error']['attributes']['code'].to_s, \
|
130
161
|
doc['imdata'][0]['error']['attributes']['text'].to_s] \
|
131
162
|
if doc['imdata'].length > 0 && doc['imdata'][0].include?('error')
|
132
163
|
end
|
133
164
|
end
|
134
165
|
|
166
|
+
# Internal: Parses APIC response payload into ACIrb::MO objects
|
167
|
+
#
|
168
|
+
# response - string containing the XML or JSON payload that will be
|
169
|
+
# parsed according to the format defined at instance creation
|
170
|
+
# (required)
|
135
171
|
def parse_response(response)
|
136
172
|
if format == 'xml'
|
137
173
|
xml_data = response.body
|
@@ -163,18 +199,96 @@ module ACIrb
|
|
163
199
|
end
|
164
200
|
end
|
165
201
|
|
166
|
-
|
167
|
-
|
202
|
+
# Public: Sends a query to APIC and returns the matching MO objects
|
203
|
+
#
|
204
|
+
# query_obj - ACIrb::Query object, typically either ACIrb::DnQuery or
|
205
|
+
# ACIrb::ClassQuery which contains the query that will be issued
|
206
|
+
# (required)
|
207
|
+
#
|
208
|
+
# Examples
|
209
|
+
# dn_query = ACIrb::DnQuery.new('uni/tn-common')
|
210
|
+
# dn_query.subtree = 'full'
|
211
|
+
# mos = rest.query(dn_query)
|
212
|
+
#
|
213
|
+
# Returns array of ACIrb::MO objects for the query
|
214
|
+
def query(query_obj)
|
215
|
+
query_uri = query_obj.uri(@format)
|
168
216
|
get(url: query_uri)
|
169
217
|
end
|
170
218
|
|
171
|
-
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
176
|
-
#
|
219
|
+
# Public: Sends an event subscription query to APIC
|
220
|
+
#
|
221
|
+
# query_obj - ACIrb::Query object, typically either ACIrb::DnQuery or
|
222
|
+
# ACIrb::ClassQuery which contains the query that will be
|
223
|
+
# issued. This query will have the .subscribe property set
|
224
|
+
# to "yes" as part of the subscription process (required)
|
225
|
+
#
|
226
|
+
# Examples
|
227
|
+
# # subscribe to all changes on fvCEp end points on fabric
|
228
|
+
# # but restrict the results of the query to only include 1
|
229
|
+
# # as to reduce the initial subscription time
|
230
|
+
# class_query = ACIrb::ClassQuery.new('fvCEp')
|
231
|
+
# class_query.page_size = '1'
|
232
|
+
# class_query.page = '0'
|
233
|
+
# subscription_id = rest.subscribe(class_query)
|
234
|
+
#
|
235
|
+
# Returns the subscription ID for the newly registered subscription
|
236
|
+
def subscribe(query_obj)
|
237
|
+
query_obj.subscribe = 'yes'
|
238
|
+
query_uri = query_obj.uri(@format)
|
239
|
+
|
240
|
+
get_url = URI.encode(@baseurl.to_s + query_uri.to_s)
|
241
|
+
|
242
|
+
puts 'GET REQUEST', get_url if @debug
|
243
|
+
response = @client.get(get_url)
|
244
|
+
puts 'GET RESPONSE: ', response.body if @debug
|
245
|
+
|
246
|
+
if format == 'xml'
|
247
|
+
xml_data = response.body
|
248
|
+
doc = Nokogiri::XML(xml_data)
|
249
|
+
parse_error(doc)
|
250
|
+
subscriptionId = doc.at_css('imdata')['subscriptionId']
|
251
|
+
elsif format == 'json'
|
252
|
+
json_data = response.body
|
253
|
+
doc = JSON.parse(json_data)
|
254
|
+
parse_error(doc)
|
255
|
+
subscriptionId = doc['subscriptionId']
|
256
|
+
end
|
257
|
+
|
258
|
+
subscriptionId
|
259
|
+
end
|
260
|
+
|
261
|
+
# Public: Refreshes an existing subscription query
|
262
|
+
#
|
263
|
+
# subscription_id - string containing the subscription ID for a previously
|
264
|
+
# subscribed to query
|
265
|
+
#
|
266
|
+
# Examples
|
267
|
+
# class_query = ACIrb::ClassQuery.new('fvCEp')
|
268
|
+
# class_query.page_size = '1'
|
269
|
+
# class_query.page = '0'
|
270
|
+
# subscription_id = rest.subscribe(class_query)
|
271
|
+
# sleep(50)
|
272
|
+
# rest.refresh_subscription(subcription_id)
|
273
|
+
#
|
274
|
+
# Returns nothing.
|
275
|
+
def refresh_subscription(subscription_id)
|
276
|
+
query_uri = '/api/subscriptionRefresh.%s?id=%s' % [@format, subscription_id]
|
277
|
+
get(url: query_uri)
|
278
|
+
end
|
177
279
|
|
280
|
+
# Public: Helper function that performs a simple lookup on a Dn
|
281
|
+
#
|
282
|
+
# dn - string containing distinguished name for the object to query
|
283
|
+
# (required)
|
284
|
+
# options - Hash options for defining query options (default: {})
|
285
|
+
# :subtree - specifies the subtree query options, which can be
|
286
|
+
# children, full or self
|
287
|
+
# Examples
|
288
|
+
# mo = rest.lookupByDn('uni/tn-common', subtree: 'full')
|
289
|
+
#
|
290
|
+
# Returns a single ACIrb::MO object or nil if no response for the query
|
291
|
+
# is received
|
178
292
|
def lookupByDn(dn, options = {})
|
179
293
|
subtree = options[:subtree]
|
180
294
|
dn_query = ACIrb::DnQuery.new(dn)
|
@@ -188,6 +302,17 @@ module ACIrb
|
|
188
302
|
end
|
189
303
|
end
|
190
304
|
|
305
|
+
# Public: Helper function that performs a simple lookup on a Class
|
306
|
+
#
|
307
|
+
# cls - string containing the class name to query (required)
|
308
|
+
# options - Hash options for defining query options (default: {})
|
309
|
+
# :subtree - specifies the subtree query options, which can be
|
310
|
+
# children, full or self
|
311
|
+
# Examples
|
312
|
+
# # return all L1 physical interfaces on the fabric with complete subtree
|
313
|
+
# mo = rest.lookupByClass('l1PhysIf', subtree: 'full')
|
314
|
+
#
|
315
|
+
# Returns an array of ACIrb::MO objects for the query
|
191
316
|
def lookupByClass(cls, options = {})
|
192
317
|
subtree = options[:subtree]
|
193
318
|
cls_query = ACIrb::ClassQuery.new(cls)
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acirb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Lesiak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -44,6 +44,34 @@ dependencies:
|
|
44
44
|
- - ">="
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: json
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: websocket
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.0'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.0'
|
47
75
|
- !ruby/object:Gem::Dependency
|
48
76
|
name: simplecov
|
49
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -289,9 +317,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
289
317
|
version: '0'
|
290
318
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
291
319
|
requirements:
|
292
|
-
- - "
|
320
|
+
- - ">="
|
293
321
|
- !ruby/object:Gem::Version
|
294
|
-
version:
|
322
|
+
version: '0'
|
295
323
|
requirements: []
|
296
324
|
rubyforge_project:
|
297
325
|
rubygems_version: 2.0.14
|