class RTDI::Getdata
Public Class Methods
sample()
click to toggle source
# File lib/rtdi/start.rb, line 19 def self.sample() labels = ["Server 1","Server 2","Server 3","Server 4","Server 5","Server 6","Server 7","Server 8","Server 9","WAN","LAN","WLAN","TK","Mail","Fax","Temp","Power Usage"] values = labels.length.times.map{Random.rand(0..6)} values[-2] = [Random.rand(14.0..22.0).round(2).to_s + " °C",0] values[-1] = [Random.rand(3000..14000).to_s + " W",0] tile1 = Status.prepare(labels[0,3],values[0,3]) tile2 = Status.prepare(labels[3,4],values[3,4]) tile3 = Status.prepare(labels[7,2],values[7,2]) tile4 = Status.prepare(labels[9,3],values[9,3]) tile5 = Status.prepare(labels[12,3],values[12,3]) tile6 = Status.raw([""],labels[15],values[15]) tile6 = Status.raw(tile6,labels[16],values[16]) val = [tile1,tile2,tile3,tile4,tile5,tile6] status = [] i = 0 val.each do |item| status << item[-1] val[i].delete(item[-1]) i += 1 end return val, status end
start(csv_file)
click to toggle source
# File lib/rtdi/start.rb, line 4 def self.start(csv_file) values = [] i = 0 CSV.foreach(csv_file) do |row| if row[0][0] != "#" values[i] = row values[i][0] = values[i][0].to_i values[i][4] = to_bool(values[i][4]) values[i][5] = to_bool(values[i][5]) i += 1 end end return obj_data(values) end
Private Instance Methods
kpoints(value)
click to toggle source
# File lib/rtdi/start.rb, line 111 def kpoints(value) if value.to_f >= 100000.0 value = value.to_s.insert(3, ".") elsif value.to_f >= 10000.0 value = value.to_s.insert(2, ".") elsif value.to_f >= 1000.0 value = value.to_s.insert(1, ".") end return value.to_s end
obj_data(objects)
click to toggle source
# File lib/rtdi/start.rb, line 53 def obj_data(objects) # Aufbau des Array # objects = [ ["Kachelnr","Realer Name","Objektname in Icinga","Typ (Service|Host)","Objekt ist eine Gruppe (Boolean)","Perfomancedaten (Boolean)","Suffix (String)" ], [ ], [ ] ] labels = [] # Aufbau des Array # labels = [ [ "a","b","c","d" ], [ ], [ ] ] values = [] # Aufbau des array # values = [ [ "werta","wertb","wertc","wertd" ], [ ], [ ] ] raw_val = [] obj_length = objects.length prev_nr = 0 y = 0 suffix = [] labels << [] values << [] raw_val << [] while y != obj_length if objects[y][0] != prev_nr labels << [] values << [] raw_val << [] end prev_nr = objects[y][0] y += 1 end objects.each do |item| position = item[0] labels[position] << item[1] obj_name = item[2] type = item[3] group = item[4] raw = item[5] suffix << item[6] if raw == false values[position] << Status.getstate(obj_name,type,group) raw_val[position] << false else values[position] << Status.getperfdata(obj_name) raw_val[position] << true end end newval = [] i = 0 values.each do |item| newval << prepare_data(item,labels[i],raw_val[i],suffix) i += 1 end status = [] i = 0 newval.each do |item| status << item[-1] newval[i].delete(item[-1]) i += 1 end return newval, status end
prepare_data(values,labels,raw_val,sfx)
click to toggle source
# File lib/rtdi/start.rb, line 122 def prepare_data(values,labels,raw_val,sfx) i = 0 tval = [] tlab = [] tmpval = [] tmplab = [] tstat = [] values.each do |x| z = "" if raw_val[i] == true if x.class.to_s == "Array" x.each do |c| if c.class.to_s == "String" tstat << kpoints(c) else z = z + c[0] + " " end end x = z end if sfx[i] != nil x = x + sfx[i] end tval << x tlab << labels[i] else tmpval << x tmplab << labels[i] end i += 1 end if tmpval.length > 0 values = tmpval labels = tmplab end values = Status.prepare(labels,values) i = 0 if tval.length > 1 tval.each do |z| values = Status.raw(values,tlab[i],[z,tstat[i]]) i += 1 end elsif tval.length == 1 values = Status.raw(values,tlab[i],[tval,tstat[i]]) end return values end
to_bool(str)
click to toggle source
# File lib/rtdi/start.rb, line 44 def to_bool(str) if str == "false" res = false elsif str == "true" res = true end return res end