elesai 0.9.3 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,648 +1,12 @@
1
- require 'workflow'
2
- require 'open3'
3
- require 'io/wait'
1
+ require 'elesai/megacli/megacli'
2
+ require 'elesai/megacli/_adpallinfo_aall'
3
+ require 'elesai/megacli/_pdlist_aall'
4
+ require 'elesai/megacli/_ldpdinfo_aall'
5
+ require 'elesai/megacli/_adpbbucmd_aall'
4
6
 
5
7
  module Elesai
6
8
 
7
- class Megacli
8
-
9
- include Workflow
10
-
11
- ADAPTER_RE = /^Adapter\s+#*(?<value>\d+)/
12
- VIRTUALDRIVE_RE = /^Virtual\s+Drive:\s+\d+\s+\((?<key>Target\s+Id):\s+(?<value>\d+)\)/
13
- SPAN_RE = /^Span:\s+(?<value>\d+)/
14
- PHYSICALDRIVE_RE = /^(?<key>Enclosure\s+Device\s+ID):\s+(?<value>\d+)/
15
- ATTRIBUTE_RE = /^(?<key>[A-Za-z0-9()\s#'-.&]+)[:|=](?<value>.*)/
16
- EXIT_RE = /^Exit Code: /
17
-
18
- BBU_RE = /^BBU status for Adapter:\s+(?<value>\d+)/
19
- BBU_FIRMWARESTATUS_RE = /^BBU Firmware Status:/
20
- BBU_DESIGNINFO_RE = /^BBU Design Info for Adapter:\s+(?<value>\d+)/
21
- BBU_PROPERTIES_RE = /^BBU Properties for Adapter:\s+(?<value>\d+)/
22
- BBU_GASGAUGESTATUS_RE = /^GasGuageStatus:/
23
- BBU_CAPACITYINFO_RE = /^BBU Capacity Info for Adapter:\s+(?<value>\d+)/
24
-
25
-
26
- ### Context
27
-
28
- class Context
29
-
30
- def initialize(current_state,lsi)
31
- current_state.meta[:context] = { :stack => [] }
32
- @context = current_state.meta[:context]
33
- @lsi = lsi
34
- @log = Elesai::Logger.instance.log
35
- end
36
-
37
- def open(component)
38
- @log.debug " * Open #{component.inspect}"
39
- @context[:stack].push(component)
40
- @context[component.class] = component
41
- @log.debug " + context: #{@context[:stack]}"
42
- end
43
-
44
- def flash!(new_state)
45
- new_state.meta[:context] = @context
46
- @context = nil
47
- @context = new_state.meta[:context]
48
- @log.debug " + Flash context: #{@context[:stack]}"
49
- end
50
-
51
- def close
52
- component = @context[:stack].pop
53
- @context[component.class] = nil
54
- @log.debug " * Close #{component.inspect}"
55
- case component
56
- when Elesai::LSIArray::PhysicalDrive
57
- pd = @lsi.add_physicaldrive(component)
58
- pd.add_adapter(adapter)
59
- pd.add_virtualdrive(virtualdrive) unless virtualdrive.nil?
60
- adapter.add_physicaldrive(pd)
61
- when Elesai::LSIArray::VirtualDrive
62
- vd = @lsi.add_virtualdrive(component)
63
- when Elesai::LSIArray::Adapter
64
- @lsi.add_adapter(component)
65
- when Elesai::LSIArray::BBU
66
- @lsi.add_bbu(component)
67
- end
68
- @log.debug " + context: #{@context[:stack]}"
69
- end
70
-
71
- def current
72
- @context[:stack][-1]
73
- end
74
-
75
- def adapter
76
- @context[Elesai::LSIArray::Adapter]
77
- end
78
-
79
- def virtualdrive
80
- @context[Elesai::LSIArray::VirtualDrive]
81
- end
82
-
83
- def physicaldrive
84
- @context[Elesai::LSIArray::PhysicalDrive]
85
- end
86
-
87
- def bbu
88
- @context[Elesai::LSIArray::BBU]
89
- end
90
-
91
- end
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
- ### State Machine Handlers
120
-
121
- # Start
122
-
123
- def on_start_exit(new_state, event, *args)
124
- @log.debug " [#{current_state}]: on_exit : #{event} -> #{new_state}; args: #{args}"
125
- @context = Context.new(current_state,@lsi)
126
- end
127
-
128
- # Adapter
129
-
130
- def adapter_line(adapter,key,value)
131
- @log.debug " [#{current_state}] event adapter_line: new #{adapter.inspect}"
132
- adapter[key.to_sym] = value.to_i
133
- end
134
-
135
- def on_adapter_entry(old_state, event, *args)
136
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
137
-
138
- @context.close unless @context.current.nil? or @context.current === Elesai::LSIArray::Adapter
139
- @context.open args[0]
140
- end
141
-
142
- def on_adapter_exit(new_state, event, *args)
143
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
144
- @context.flash!(new_state)
145
- end
146
-
147
- # Virtual Drive
148
-
149
- def virtualdrive_line(virtualdrive,key,value)
150
- @log.debug " [#{current_state}] event: virtualdrive_line: new #{virtualdrive.inspect}"
151
- virtualdrive[key.to_sym] = value.to_i
152
- end
153
-
154
- def on_virtualdrive_entry(old_state, event, *args)
155
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
156
-
157
- unless @context.current.nil?
158
- if @context.current === Elesai::LSIArray::VirtualDrive
159
- @context.close
160
- end
161
- end
162
- virtualdrive = args[0]
163
- @context.open virtualdrive
164
- end
165
-
166
- def on_virtualdrive_exit(new_state, event, *args)
167
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
168
- @context.flash!(new_state)
169
- end
170
-
171
- # Physical Drive
172
-
173
- def physicaldrive_line(physicaldrive,key,value)
174
- @log.debug " [#{current_state}] event: physicaldrive_line: new #{physicaldrive.inspect}"
175
- physicaldrive[key.to_sym] = value.to_i
176
- end
177
-
178
- def on_physicaldrive_entry(old_state, event, *args)
179
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
180
- @context.open args[0]
181
- end
182
-
183
- def on_physicaldrive_exit(new_state, event, *args)
184
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
185
- @context.flash!(new_state)
186
- end
187
-
188
- # Attribute
189
-
190
- def attribute_line(key,value)
191
- @log.debug " [#{current_state}] event: attribute_line: #{key} => #{value}"
192
- end
193
-
194
- def on_attribute_entry(old_state, event, *args)
195
- @log.debug " [#{current_state}] entry: leaving #{old_state}; args: #{args}; context: #{@context.current.class}"
196
-
197
-
198
- c = @context.current
199
- k = args[0].to_sym
200
- v = args[1]
201
-
202
- # Some attributes require special treatment for our purposes
203
-
204
- case k
205
- when :coercedsize, :noncoercedsize, :rawsize, :size
206
- m = /(?<number>[0-9\.]+)\s+(?<unit>[A-Z]+)/.match(v)
207
- v = LSIArray::PhysicalDrive::Size.new(m[:number],m[:unit])
208
- when :raidlevel
209
- m = /Primary-(?<primary>\d+),\s+Secondary-(?<secondary>\d+)/.match(v)
210
- v = LSIArray::VirtualDrive::RaidLevel.new(m[:primary],m[:secondary])
211
- when :firmwarestate
212
- st,sp = v.gsub(/\s/,'').split(/,/)
213
- state = st.gsub(/\s/,'_').downcase.to_sym
214
- spin = sp.gsub(/\s/,'_').downcase.to_sym unless sp.nil?
215
- v = LSIArray::PhysicalDrive::FirmwareState.new(state,spin)
216
- when :state
217
- v = v.gsub(/\s/,'_').downcase.to_sym
218
- when :mediatype
219
- v = v.scan(/[A-Z]/).join
220
- when :inquirydata
221
- v = v.gsub(/\s+/,' ')
222
- when :relativedtateofcharge, :absolutestateofcharge, :remainingcapacityalarm, :remainingcapacity
223
- m = /(?<number>[0-9\.]+)\s+(?<unit>[A-Za-z%]+)/.match(v)
224
- v = LSIArray::BBU::NumberUnit.new(m[:number].to_f,m[:unit])
225
- end
226
- c[k] = v
227
- end
228
-
229
- def on_attribute_exit(new_state, event, *args)
230
- @log.debug " [#{current_state}] exit: entering #{new_state} throught event #{event}; args: #{args}"
231
- @context.close if @context.current.class == Elesai::LSIArray::PhysicalDrive and event != :attribute_line
232
-
233
- @context.flash!(new_state)
234
- end
235
-
236
- # BBU
237
-
238
- def bbu_line(bbu,key,value)
239
- @log.debug " [#{current_state}] event: bbu_line: new #{bbu.inspect}"
240
- bbu[key.to_sym] = value.to_i
241
- end
242
-
243
- def on_bbu_entry(old_state, event, *args)
244
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
245
- @context.open args[0]
246
- end
247
-
248
- def on_bbu_exit(new_state, event, *args)
249
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
250
- @context.flash!(new_state)
251
- end
252
-
253
- # BBU Firmware Status
254
-
255
- def bbu_firmwarestatus_line
256
- @log.debug " [#{current_state}] event: bbu_firmware_line:"
257
- end
258
-
259
- def on_bbu_firmwarestatus_entry(old_state, event, *args)
260
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
261
- @context.open @context.current[:firmwarestatus]
262
- end
263
-
264
- def on_bbu_firmwarestatus_exit(new_state, event, *args)
265
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
266
- @context.flash!(new_state)
267
- end
268
-
269
- # BBU DesignInfo Status
270
-
271
- def bbu_designinfo_line
272
- @log.debug " [#{current_state}] event: bbu_designinfo_line:"
273
- end
274
-
275
- def on_bbu_designinfo_entry(old_state, event, *args)
276
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
277
- @context.close
278
- @context.open @context.current[:designinfo]
279
- end
280
-
281
- def on_bbu_designinfo_exit(new_state, event, *args)
282
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
283
- @context.flash!(new_state)
284
- end
285
-
286
- # BBU Properties Status
287
-
288
- def bbu_properties_line
289
- @log.debug " [#{current_state}] event: bbu_designinfo_line:"
290
- end
291
-
292
- def on_bbu_properties_entry(old_state, event, *args)
293
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
294
- @context.close
295
- @context.open @context.current[:properties]
296
- end
297
-
298
- def on_bbu_properties_exit(new_state, event, *args)
299
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
300
- @context.flash!(new_state)
301
- end
302
-
303
- # BBU GasGuage Status
304
-
305
- def bbu_gasgaugestatus_line
306
- @log.debug " [#{current_state}] event: bbu_gasgaugestatus_line:"
307
- end
308
-
309
- def on_bbu_gasgaugestatus_entry(old_state, event, *args)
310
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
311
- @context.close
312
- @context.open @context.current[:gasgaugestatus]
313
- end
314
-
315
- def on_bbu_gasgaugestatus_exit(new_state, event, *args)
316
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
317
- @context.flash!(new_state)
318
- end
319
-
320
- # BBU Capacity Info
321
-
322
- def bbu_capacityinfo_line
323
- @log.debug " [#{current_state}] event: bbu_capacityinfo_line:"
324
- end
325
-
326
- def on_bbu_capacityinfo_entry(old_state, event, *args)
327
- @log.debug " [#{current_state}] on_entry: leaving #{old_state}; args: #{args}"
328
- @context.close
329
- @context.open @context.current[:capacityinfo]
330
- end
331
-
332
- def on_bbu_capacityinfo_exit(new_state, event, *args)
333
- @log.debug " [#{current_state}] on_exit: entering #{new_state}; args: #{args}"
334
- @context.flash!(new_state)
335
- end
336
-
337
-
338
- # Exit
339
-
340
- def exit_line
341
- @log.debug " [#{current_state}] event: exit_line"
342
- end
343
-
344
- def on_exit_entry(new_state, event, *args)
345
- @log.debug " [#{current_state}] exit: entering #{new_state} throught event #{event}; args: #{args}"
346
- until @context.current.nil? do
347
- @context.close
348
- end
349
- end
350
-
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
-
362
- ### Regular Expression Match Handlers
363
-
364
- # Adapter
365
-
366
- def adapter_match(match)
367
- @log.debug "ADAPTER! #{match.string}"
368
- key = 'id'
369
- value = match[:value]
370
- adapter_line!(LSIArray::Adapter.new,key,value)
371
- end
372
-
373
- # Virtual Drive
374
-
375
- def virtualdrive_match(match)
376
- @log.debug "VIRTUALDRIVE! #{match.string}"
377
- key = match[:key].gsub(/\s+/,"").downcase
378
- value = match[:value]
379
- virtualdrive_line!(LSIArray::VirtualDrive.new,key,value)
380
- end
381
-
382
- # Physical Drive
383
-
384
- def physicaldrive_match(match)
385
- @log.debug "PHYSICALDRIVE! #{match.string}"
386
- key = match[:key].gsub(/\s+/,"").downcase
387
- value = match[:value]
388
- physicaldrive_line!(LSIArray::PhysicalDrive.new,key,value)
389
- end
390
-
391
- # Attribute
392
-
393
- def attribute_match(match)
394
- @log.debug "ATTRIBUTE! #{match.string}"
395
- key = match[:key].gsub(/\s+/,"").downcase
396
- value = match[:value].strip
397
- attribute_line!(key,value)
398
- end
399
-
400
- # BBU
401
- def bbu_match(match)
402
- @log.debug "BBU! #{match.string}"
403
- key = 'id'
404
- value = match[:value]
405
- adapter_line(LSIArray::Adapter.new,key,value)
406
- bbu_line!(LSIArray::BBU.new,key,value)
407
- end
408
-
409
- def bbu_firmwarestatus_match(match)
410
- @log.debug "BBU FIRMWARE! #{match.string}"
411
- bbu_firmwarestatus_line!
412
- end
413
-
414
- def bbu_designinfo_match(match)
415
- @log.debug "BBU DESIGN INFO! #{match.string}"
416
- bbu_designinfo_line!
417
- end
418
-
419
- def bbu_properties_match(match)
420
- @log.debug "BBU PROPERTIES! #{match.string}"
421
- bbu_properties_line!
422
- end
423
-
424
- def bbu_capacityinfo_match(match)
425
- @log.debug "BBU CAPACITY INFO! #{match.string}"
426
- bbu_capacityinfo_line!
427
- end
428
-
429
- def bbu_gasgaugestatus_match(match)
430
- @log.debug "BBU GAS GUAGE STATUS! #{match.string}"
431
- bbu_gasgaugestatus_line!
432
- end
433
-
434
- # Exit
435
-
436
- def exit_match(match)
437
- @log.debug "EXIT! #{match.string}"
438
- exit_line!
439
- end
440
-
441
- ### Parse!
442
-
443
- def parse!(lsi,opts)
444
-
445
- @lsi = lsi
446
- @log = Elesai::Logger.instance.log
447
- output = nil
448
-
449
- if STDIN.ready?
450
- output = $stdin.read
451
- else
452
- if opts[:fake].start_with? '-'
453
- megacli = opts[:megacli].nil? ? "Megacli" : opts[:megacli]
454
- command = "#{megacli} #{opts[:fake]} -nolog"
455
- command = Process.uid == 0 ? command : "sudo " << command
456
- output, stderr_str, status = Open3.capture3(command)
457
- raise RuntimeError, stderr_str unless status.exitstatus == 0
458
- else
459
- output = File.read(opts[:fake])
460
- end
461
- end
462
-
463
- output.each_line do |line|
464
- line.strip!
465
- next if line == ''
466
-
467
- begin
468
- case line
469
- when ADAPTER_RE then adapter_match(ADAPTER_RE.match(line))
470
- when BBU_RE then bbu_match(BBU_RE.match(line))
471
- when VIRTUALDRIVE_RE then virtualdrive_match(VIRTUALDRIVE_RE.match(line))
472
- when PHYSICALDRIVE_RE then physicaldrive_match(PHYSICALDRIVE_RE.match(line))
473
- when BBU_FIRMWARESTATUS_RE then bbu_firmwarestatus_match(BBU_FIRMWARESTATUS_RE.match(line))
474
- when BBU_DESIGNINFO_RE then bbu_designinfo_match(BBU_DESIGNINFO_RE.match(line))
475
- when BBU_PROPERTIES_RE then bbu_properties_match(BBU_PROPERTIES_RE.match(line))
476
- when BBU_CAPACITYINFO_RE then bbu_capacityinfo_match(BBU_CAPACITYINFO_RE.match(line))
477
- when BBU_GASGAUGESTATUS_RE then bbu_gasgaugestatus_match(BBU_GASGAUGESTATUS_RE.match(line))
478
- when EXIT_RE then exit_match(EXIT_RE.match(line))
479
- when ATTRIBUTE_RE then attribute_match(ATTRIBUTE_RE.match(line))
480
- else raise StandardError, "cannot parse '#{line}'"
481
- end
482
- rescue ArgumentError # ignore lines with invalid byte sequence in UTF-8
483
- next
484
- end
485
-
486
- @log.debug "\n\n"
487
- end
488
- end
489
-
490
- end
491
-
492
- class PDlist_aAll < Megacli
493
-
494
- def parse!(lsi,opts)
495
- fake = opts[:fake].nil? ? "-pdlist -aall" : File.join(opts[:fake],"pdlist_aall")
496
- super lsi, :fake => fake, :megacli => opts[:megacli]
497
- end
498
-
499
- workflow do
500
-
501
- state :start do
502
- event :adapter_line, :transitions_to => :adapter
503
- event :exit_line, :transitions_to => :exit
504
- end
505
-
506
- state :adapter do
507
- event :adapter_line, :transitions_to => :adapter # empty adapter
508
- event :physicaldrive_line, :transitions_to => :physicaldrive
509
- event :exit_line, :transitions_to => :exit
510
- end
511
-
512
- state :physicaldrive do
513
- event :attribute_line, :transitions_to => :physicaldrive
514
- event :exit_line, :transitions_to => :exit
515
- event :adapter_line, :transitions_to => :adapter
516
- event :physicaldrive_line, :transitions_to => :physicaldrive
517
- event :attribute_line, :transitions_to => :attribute
518
- end
519
-
520
- state :attribute do
521
- event :attribute_line, :transitions_to => :attribute
522
- event :physicaldrive_line, :transitions_to => :physicaldrive
523
- event :adapter_line, :transitions_to => :adapter
524
- event :exit_line, :transitions_to => :exit
525
- end
526
-
527
- state :exit
528
-
529
- on_transition do |from, to, triggering_event, *event_args|
530
- #puts self.spec.states[to].class
531
- # puts " transition: #{from} >> #{triggering_event}! >> #{to}: #{event_args.join(' ')}"
532
- #puts " #{current_state.meta}"
533
- end
534
- end
535
-
536
- end
537
-
538
- class LDPDinfo_aAll < Megacli
539
-
540
- def parse!(lsi,opts)
541
- fake = opts[:fake].nil? ? "-ldpdinfo -aall" : File.join(opts[:fake],"ldpdinfo_aall")
542
- super lsi, :fake => fake, :megacli => opts[:megacli]
543
- end
544
-
545
-
546
- workflow do
547
-
548
- state :start do
549
- event :adapter_line, :transitions_to => :adapter
550
- event :exit_line, :transitions_to => :exit
551
- end
552
-
553
- state :adapter do
554
- event :adapter_line, :transitions_to => :adapter
555
- event :attribute_line, :transitions_to => :attribute
556
- event :virtualdrive_line, :transitions_to => :virtualdrive
557
- event :exit_line, :transitions_to => :exit
558
- end
559
-
560
- state :physicaldrive do
561
- event :attribute_line, :transitions_to => :physicaldrive
562
- event :exit_line, :transitions_to => :exit
563
- event :adapter_line, :transitions_to => :adapter
564
- event :physicaldrive_line, :transitions_to => :physicaldrive
565
- event :attribute_line, :transitions_to => :attribute
566
- end
567
-
568
- state :virtualdrive do
569
- event :physicaldrive_line, :transitions_to => :physicaldrive
570
- event :attribute_line, :transitions_to => :attribute
571
- end
572
-
573
- state :attribute do
574
- event :attribute_line, :transitions_to => :attribute
575
- event :virtualdrive_line, :transitions_to => :virtualdrive
576
- event :physicaldrive_line, :transitions_to => :physicaldrive
577
- event :adapter_line, :transitions_to => :adapter
578
- event :exit_line, :transitions_to => :exit
579
- end
580
-
581
- state :exit
582
-
583
- on_transition do |from, to, triggering_event, *event_args|
584
- #puts self.spec.states[to].class
585
- # puts " transition: #{from} >> #{triggering_event}! >> #{to}: #{event_args.join(' ')}"
586
- #puts " #{current_state.meta}"
587
- end
588
- end
589
-
9
+ module Megacli
590
10
  end
591
11
 
592
- class AdpBbuCmd_aAll < Megacli
593
-
594
- def parse!(lsi,opts)
595
- fake = opts[:fake].nil? ? "-AdpBbuCmd -aAll" : File.join(opts[:fake],"adpbbucmd_aall")
596
- super lsi, :fake => fake, :megacli => opts[:megacli]
597
- end
598
-
599
- workflow do
600
-
601
- state :start do
602
- event :bbu_line, :transitions_to => :bbu
603
- event :exit_line, :transitions_to => :exit
604
- end
605
-
606
- state :bbu do
607
- event :attribute_line, :transitions_to => :attribute
608
- event :bbu_firmwarestatus_line, :transitions_to => :bbu_firmwarestatus
609
- end
610
-
611
- state :bbu_firmwarestatus do
612
- event :attribute_line, :transitions_to => :attribute
613
- end
614
-
615
- state :bbu_capacityinfo do
616
- event :attribute_line, :transitions_to => :attribute
617
- end
618
-
619
- state :bbu_designinfo do
620
- event :attribute_line, :transitions_to => :attribute
621
- end
622
-
623
- state :bbu_gasgaugestatus do
624
- event :attribute_line, :transitions_to => :attribute
625
- end
626
-
627
- state :bbu_properties do
628
- event :attribute_line, :transitions_to => :attribute
629
- event :exit_line, :transitions_to => :exit
630
- end
631
-
632
- state :attribute do
633
- event :attribute_line, :transitions_to => :attribute
634
- event :bbu_firmwarestatus_line, :transitions_to => :bbu_firmwarestatus
635
- event :bbu_designinfo_line, :transitions_to => :bbu_designinfo
636
- event :bbu_properties_line, :transitions_to => :bbu_properties
637
- event :bbu_gasgaugestatus_line, :transitions_to => :bbu_gasgaugestatus
638
- event :bbu_capacityinfo_line, :transitions_to => :bbu_capacityinfo
639
- event :exit_line, :transitions_to => :exit
640
- end
641
-
642
- state :exit
643
- end
644
-
645
- end
646
-
647
-
648
- end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Elesai
2
- VERSION = "0.9.3"
2
+ VERSION = "0.10.5"
3
3
  end
data/lib/elesai.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'elesai/logger'
2
2
  require 'elesai/lsi'
3
- require 'elesai/megacli'
4
3
 
5
4
  module Elesai
6
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elesai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.10.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-15 00:00:00.000000000 Z
12
+ date: 2012-11-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: workflow
@@ -70,9 +70,17 @@ extensions: []
70
70
  extra_rdoc_files: []
71
71
  files:
72
72
  - lib/elesai/about.rb
73
+ - lib/elesai/action/check.rb
74
+ - lib/elesai/action/show.rb
75
+ - lib/elesai/action.rb
73
76
  - lib/elesai/cli.rb
74
77
  - lib/elesai/logger.rb
75
78
  - lib/elesai/lsi.rb
79
+ - lib/elesai/megacli/_adpallinfo_aall.rb
80
+ - lib/elesai/megacli/_adpbbucmd_aall.rb
81
+ - lib/elesai/megacli/_ldpdinfo_aall.rb
82
+ - lib/elesai/megacli/_pdlist_aall.rb
83
+ - lib/elesai/megacli/megacli.rb
76
84
  - lib/elesai/megacli.rb
77
85
  - lib/elesai/version.rb
78
86
  - lib/elesai.rb