class DataValidators::LogstashDataValidator
Attributes
log[R]
Public Class Methods
new(log = Logger.new(STDOUT))
click to toggle source
# File lib/data_validators/logstash_data_validator.rb, line 14 def initialize(log = Logger.new(STDOUT)) @log = log end
Public Instance Methods
validate_data(data = nil)
click to toggle source
# File lib/data_validators/logstash_data_validator.rb, line 18 def validate_data(data = nil) unless data fail Errors::ValidationError, 'Skipping a malformed record. '\ 'No data available to validate' end valid_data = data.clone fail_validation 'start_time' unless non_zero_number?(data['start_time']) valid_data['start_time'] = data['start_time'].to_i fail_validation 'end_time' unless number?(data['end_time']) valid_data['end_time'] = data['end_time'].to_i fail_validation 'end_time' if valid_data['end_time'] != 0 && valid_data['start_time'] > valid_data['end_time'] fail_validation 'user_id' unless number?(data['user_id']) valid_data['user_id'] = data['user_id'].to_i fail_validation 'group_id' unless number?(data['group_id']) valid_data['group_id'] = data['group_id'].to_i fail_validation 'status_code' unless number?(data['status_code']) valid_data['status_code'] = data['status_code'].to_i fail_validation 'cpu_count' unless number?(data['cpu_count']) valid_data['cpu_count'] = data['cpu_count'].to_i fail_validation 'network_inbound' unless number?(data['network_inbound']) valid_data['network_inbound'] = data['network_inbound'].to_i fail_validation 'network_outbound' unless number?(data['network_outbound']) valid_data['network_outbound'] = data['network_outbound'].to_i fail_validation 'memory' unless number?(data['memory']) valid_data['memory'] = data['memory'].to_i fail_validation 'history' unless data['history'] history = [] data['history'].each do |h| history_record = h.clone fail_validation 'history record start_time' unless non_zero_number?(h['start_time']) history_record['start_time'] = h['start_time'].to_i fail_validation 'history record end_time' unless number?(h['end_time']) history_record['end_time'] = h['end_time'].to_i fail_validation 'history record rstart_time' unless non_zero_number?(h['rstart_time']) history_record['rstart_time'] = h['rstart_time'].to_i fail_validation 'history record rend_time' unless number?(h['rend_time']) history_record['rend_time'] = h['rend_time'].to_i fail_validation 'history record seq' unless number?(h['seq']) history_record['seq'] = h['seq'].to_i history << history_record end valid_data['history'] = history fail_validation 'disks' unless data['disks'] disks = [] data['disks'].each do |d| disk = d.clone disk['size'] = d['size'] disk['size'] = d['size'].to_i if number?(d['size']) disks << disk end valid_data['disks'] = disks valid_data end