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.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/lib/acirb/aaa.rb +1211 -92
  3. data/lib/acirb/ac.rb +167 -8
  4. data/lib/acirb/action.rb +309 -33
  5. data/lib/acirb/actrl.rb +1937 -79
  6. data/lib/acirb/actrlcap.rb +24 -2
  7. data/lib/acirb/adcom.rb +376 -26
  8. data/lib/acirb/aib.rb +47 -5
  9. data/lib/acirb/arp.rb +311 -19
  10. data/lib/acirb/bfd.rb +199 -15
  11. data/lib/acirb/bgp.rb +892 -69
  12. data/lib/acirb/callhome.rb +322 -23
  13. data/lib/acirb/cap.rb +45 -6
  14. data/lib/acirb/cdp.rb +235 -20
  15. data/lib/acirb/cnw.rb +122 -6
  16. data/lib/acirb/comm.rb +4565 -186
  17. data/lib/acirb/comp.rb +4882 -205
  18. data/lib/acirb/compat.rb +413 -38
  19. data/lib/acirb/condition.rb +176 -13
  20. data/lib/acirb/config.rb +235 -16
  21. data/lib/acirb/coop.rb +563 -44
  22. data/lib/acirb/copp.rb +1711 -40
  23. data/lib/acirb/ctrlr.rb +20 -2
  24. data/lib/acirb/ctx.rb +48 -6
  25. data/lib/acirb/datetime.rb +359 -24
  26. data/lib/acirb/dbg.rb +1902 -87
  27. data/lib/acirb/dbgac.rb +770 -47
  28. data/lib/acirb/dbgexp.rb +560 -41
  29. data/lib/acirb/dhcp.rb +898 -71
  30. data/lib/acirb/dhcptlv.rb +64 -8
  31. data/lib/acirb/dhcptlvpol.rb +72 -8
  32. data/lib/acirb/dlgt.rb +7 -1
  33. data/lib/acirb/dns.rb +203 -18
  34. data/lib/acirb/draw.rb +18 -2
  35. data/lib/acirb/edr.rb +52 -5
  36. data/lib/acirb/eigrp.rb +604 -49
  37. data/lib/acirb/ep.rb +43 -4
  38. data/lib/acirb/epm.rb +72 -8
  39. data/lib/acirb/eptrk.rb +147 -7
  40. data/lib/acirb/eqpt.rb +12467 -400
  41. data/lib/acirb/eqptcap.rb +131 -12
  42. data/lib/acirb/eqptcapacity.rb +6446 -254
  43. data/lib/acirb/eqptdiag.rb +171 -11
  44. data/lib/acirb/eqptdiagp.rb +956 -61
  45. data/lib/acirb/ethpm.rb +624 -19
  46. data/lib/acirb/event.rb +155 -12
  47. data/lib/acirb/extnw.rb +112 -11
  48. data/lib/acirb/fabric.rb +6199 -418
  49. data/lib/acirb/fault.rb +700 -51
  50. data/lib/acirb/file.rb +113 -9
  51. data/lib/acirb/firmware.rb +535 -40
  52. data/lib/acirb/fmcast.rb +63 -6
  53. data/lib/acirb/frmwrk.rb +201 -17
  54. data/lib/acirb/fsm.rb +26 -1
  55. data/lib/acirb/fv.rb +5653 -431
  56. data/lib/acirb/fvcap.rb +25 -2
  57. data/lib/acirb/fvns.rb +375 -33
  58. data/lib/acirb/fvtopo.rb +60 -5
  59. data/lib/acirb/geo.rb +86 -8
  60. data/lib/acirb/glean.rb +50 -5
  61. data/lib/acirb/ha.rb +6 -1
  62. data/lib/acirb/health.rb +258 -21
  63. data/lib/acirb/hvs.rb +312 -22
  64. data/lib/acirb/icmp.rb +34 -4
  65. data/lib/acirb/icmpv4.rb +42 -4
  66. data/lib/acirb/icmpv6.rb +78 -5
  67. data/lib/acirb/ident.rb +533 -43
  68. data/lib/acirb/igmp.rb +59 -4
  69. data/lib/acirb/igmpsnoop.rb +254 -18
  70. data/lib/acirb/im.rb +94 -7
  71. data/lib/acirb/imginstall.rb +18 -1
  72. data/lib/acirb/infra.rb +3909 -243
  73. data/lib/acirb/ip.rb +276 -24
  74. data/lib/acirb/ipmcsnoop.rb +217 -18
  75. data/lib/acirb/ipv4.rb +120 -8
  76. data/lib/acirb/ipv6.rb +121 -9
  77. data/lib/acirb/isis.rb +2885 -103
  78. data/lib/acirb/isistlv.rb +64 -8
  79. data/lib/acirb/l1.rb +616 -46
  80. data/lib/acirb/l1cap.rb +24 -2
  81. data/lib/acirb/l2.rb +5676 -152
  82. data/lib/acirb/l2cap.rb +25 -2
  83. data/lib/acirb/l2ext.rb +249 -19
  84. data/lib/acirb/l3.rb +562 -38
  85. data/lib/acirb/l3cap.rb +25 -2
  86. data/lib/acirb/l3ext.rb +758 -59
  87. data/lib/acirb/l3vm.rb +36 -3
  88. data/lib/acirb/l4.rb +35 -3
  89. data/lib/acirb/lacp.rb +226 -18
  90. data/lib/acirb/lbp.rb +24 -2
  91. data/lib/acirb/leqpt.rb +94 -7
  92. data/lib/acirb/lldp.rb +383 -29
  93. data/lib/acirb/lldptlv.rb +64 -8
  94. data/lib/acirb/lldptlvpol.rb +72 -8
  95. data/lib/acirb/maint.rb +464 -34
  96. data/lib/acirb/mcast.rb +19 -3
  97. data/lib/acirb/mcp.rb +168 -15
  98. data/lib/acirb/memory.rb +457 -18
  99. data/lib/acirb/mgmt.rb +708 -50
  100. data/lib/acirb/mldsnoop.rb +225 -16
  101. data/lib/acirb/mo.rb +27 -3
  102. data/lib/acirb/mock.rb +48 -4
  103. data/lib/acirb/mon.rb +378 -40
  104. data/lib/acirb/monitor.rb +124 -9
  105. data/lib/acirb/naming.rb +13 -2
  106. data/lib/acirb/nd.rb +304 -25
  107. data/lib/acirb/nw.rb +320 -39
  108. data/lib/acirb/nws.rb +71 -7
  109. data/lib/acirb/oam.rb +65 -3
  110. data/lib/acirb/observer.rb +56 -4
  111. data/lib/acirb/opflex.rb +5794 -168
  112. data/lib/acirb/os.rb +25 -2
  113. data/lib/acirb/ospf.rb +1185 -82
  114. data/lib/acirb/ospfv3.rb +477 -31
  115. data/lib/acirb/pc.rb +205 -11
  116. data/lib/acirb/pcons.rb +444 -42
  117. data/lib/acirb/phys.rb +22 -2
  118. data/lib/acirb/ping.rb +172 -6
  119. data/lib/acirb/pki.rb +194 -15
  120. data/lib/acirb/pol.rb +1063 -88
  121. data/lib/acirb/policer.rb +16 -2
  122. data/lib/acirb/pool.rb +49 -6
  123. data/lib/acirb/pres.rb +216 -19
  124. data/lib/acirb/proc.rb +4069 -130
  125. data/lib/acirb/psu.rb +40 -4
  126. data/lib/acirb/qos.rb +312 -28
  127. data/lib/acirb/qosm.rb +979 -40
  128. data/lib/acirb/qosp.rb +147 -11
  129. data/lib/acirb/rbqm.rb +113 -9
  130. data/lib/acirb/regress.rb +14 -1
  131. data/lib/acirb/reln.rb +304 -26
  132. data/lib/acirb/repl.rb +34 -4
  133. data/lib/acirb/res.rb +120 -12
  134. data/lib/acirb/rib.rb +85 -9
  135. data/lib/acirb/rmon.rb +150 -10
  136. data/lib/acirb/rpm.rb +11 -1
  137. data/lib/acirb/rtcom.rb +27 -3
  138. data/lib/acirb/rtctrl.rb +641 -59
  139. data/lib/acirb/rtextcom.rb +45 -4
  140. data/lib/acirb/rtflt.rb +23 -3
  141. data/lib/acirb/rtleak.rb +58 -6
  142. data/lib/acirb/rtmap.rb +354 -32
  143. data/lib/acirb/rtpfx.rb +54 -5
  144. data/lib/acirb/rtregcom.rb +43 -4
  145. data/lib/acirb/rtsum.rb +8 -1
  146. data/lib/acirb/rule.rb +27 -4
  147. data/lib/acirb/satm.rb +175 -6
  148. data/lib/acirb/snmp.rb +409 -34
  149. data/lib/acirb/span.rb +1263 -84
  150. data/lib/acirb/stats.rb +607 -31
  151. data/lib/acirb/statstore.rb +38 -4
  152. data/lib/acirb/stormctrl.rb +36 -3
  153. data/lib/acirb/stp.rb +315 -28
  154. data/lib/acirb/sts.rb +538 -45
  155. data/lib/acirb/svccore.rb +173 -8
  156. data/lib/acirb/svi.rb +61 -3
  157. data/lib/acirb/synthetic.rb +639 -44
  158. data/lib/acirb/sysdebug.rb +248 -18
  159. data/lib/acirb/sysfile.rb +31 -4
  160. data/lib/acirb/syshist.rb +39 -4
  161. data/lib/acirb/syslog.rb +180 -14
  162. data/lib/acirb/sysmgr.rb +38 -4
  163. data/lib/acirb/sysmgrp.rb +21 -2
  164. data/lib/acirb/tag.rb +159 -12
  165. data/lib/acirb/task.rb +48 -3
  166. data/lib/acirb/test.rb +40 -3
  167. data/lib/acirb/testinfralab.rb +97 -8
  168. data/lib/acirb/tlv.rb +68 -10
  169. data/lib/acirb/top.rb +212 -16
  170. data/lib/acirb/topoctrl.rb +100 -9
  171. data/lib/acirb/traceroute.rb +210 -11
  172. data/lib/acirb/traceroutep.rb +215 -12
  173. data/lib/acirb/trig.rb +344 -30
  174. data/lib/acirb/troubleshoot.rb +136 -8
  175. data/lib/acirb/tunnel.rb +148 -11
  176. data/lib/acirb/uribv4.rb +83 -8
  177. data/lib/acirb/uribv6.rb +63 -6
  178. data/lib/acirb/vlan.rb +88 -5
  179. data/lib/acirb/vlanmgr.rb +21 -2
  180. data/lib/acirb/vmm.rb +715 -50
  181. data/lib/acirb/vns.rb +6681 -428
  182. data/lib/acirb/vpc.rb +260 -14
  183. data/lib/acirb/vsvc.rb +48 -4
  184. data/lib/acirb/vtap.rb +20 -2
  185. data/lib/acirb/vxlan.rb +73 -4
  186. data/lib/acirb/vz.rb +1934 -145
  187. data/lib/acirb.rb +1 -1
  188. data/lib/events.rb +143 -6
  189. data/lib/loader.rb +5 -3
  190. data/lib/mo.rb +72 -15
  191. data/lib/naming.rb +1 -1
  192. data/lib/query.rb +3 -1
  193. data/lib/restclient.rb +172 -47
  194. data/lib/version.rb +1 -1
  195. 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, :refresh_time
13
- attr_reader :auth_cookie
14
- # Desc: initialize a rest client
15
- # Returns: does not return anything, but will raise an exception
16
- # if authentication fails
17
- # Parameters: accepts a hash of options:
18
- # url : string. URL of APIC
19
- # user : string. User ID for authentication
20
- # password : string. Password for authentication
21
- # debug : true or false. Flag for enabling verbose REST output
22
- # format : 'xml' or 'json'. Defaults to xml
23
- # verify : true or false. verify the SSL certificate. Defaults to disabled
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
- # Desc: authenticates the REST session with the APIC and receives an
45
- # auth_cookie/token
46
- # Returns: does not return anything, but will raise an exception if
47
- # authentication fails
48
- # Parameters: does not accept any parameters
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
- # Desc: Perform a Net::HTTP::Post to the REST interface with the
78
- # parameters provided
79
- # Returns: an array of managed object containing the parsed result
80
- # Parameters: a single hash array is accepted, with the following keys:
81
- # data : This is a string containing the data to be posted. This
82
- # should be well formed XML that the APIC REST interface can interpret.
83
- # No validation is done
84
- # url : this is the path to the REST interface method being
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
- # Desc: Perform a Net::HTTP::Get to the REST interface with the
106
- # parameters provided
107
- # Returns: an array of managed object containing the parsed result
108
- # Parameters: a single hash array is accepted, with the following keys:
109
- # url : this is the path to the REST interface method being utilized,
110
- # typicalliy /api/mo/.xml with some parameters
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
- def query(query)
167
- query_uri = query.uri(@format)
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
- # Desc: A helper function that will lookup a given DN via the
172
- # APIC REST interface
173
- # Returns: Returns Mo for match if one exists, otherwise nil
174
- # Parameters:
175
- # dn : string. the distinguished name to query
176
- # options : hash. set query parameters
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
@@ -1,3 +1,3 @@
1
1
  module ACIrb
2
- VERSION = '1.0.4h'
2
+ VERSION = '1.0.4.1'
3
3
  end
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.4h
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-06-09 00:00:00.000000000 Z
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: 1.3.1
322
+ version: '0'
295
323
  requirements: []
296
324
  rubyforge_project:
297
325
  rubygems_version: 2.0.14