class DataValidators::ApelDataValidator
Data validator class for apel output type
Constants
- B_IN_GB
- DEFAULT_VALUE
- STATES
Attributes
log[R]
Public Class Methods
new(log = Logger.new(STDOUT))
click to toggle source
# File lib/data_validators/apel_data_validator.rb, line 20 def initialize(log = Logger.new(STDOUT)) @log = log end
Public Instance Methods
validate_data(data = nil)
click to toggle source
All possible output fields and their default values:
valid_data - required valid_data - required valid_data - required valid_data - required valid_data - required valid_data - defaults to NULL, has to be bigger than valid_data if number valid_data - defaults to “one-#{valid_data}” valid_data - defaults to NULL valid_data - defaults to NULL valid_data - defaults to NULL valid_data - defaults to nil valid_data - defaults to NULL valid_data - required valid_data - defaults to NULL valid_data - defaults to 1 valid_data - defaults to 0 valid_data - defaults to 0 valid_data - defaults to 0 valid_data - defaults to NULL valid_data - defaults to NULL valid_data - defaults to NULL
# File lib/data_validators/apel_data_validator.rb, line 47 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 'Endpoint' unless string?(data['endpoint']) fail_validation 'SiteName' unless string?(data['site_name']) fail_validation 'CloudType' unless string?(data['cloud_type']) fail_validation 'VMUUID' unless string?(data['vm_uuid']) fail_validation 'StartTime' unless non_zero_number?(data['start_time']) start_time = data['start_time'].to_i valid_data['start_time'] = Time.at(start_time) fail_validation 'EndTime' unless number?(data['end_time']) end_time = data['end_time'].to_i valid_data['end_time'] = end_time == 0 ? DEFAULT_VALUE : Time.at(end_time) fail_validation 'EndTime' if end_time != 0 && valid_data['start_time'] > valid_data['end_time'] valid_data['machine_name'] = default(data['machine_name'], :string, "one-#{valid_data['vm_uuid']}") valid_data['user_id'] = default(data['user_id'], :string, DEFAULT_VALUE) valid_data['group_id'] = default(data['group_id'], :string, DEFAULT_VALUE) valid_data['user_dn'] = default(data['user_dn'], :string, DEFAULT_VALUE) valid_data['user_name'] = default(data['user_name'], :string, DEFAULT_VALUE) valid_data['group_name'] = default(data['group_name'], :string, nil) status = default(data['status_code'], :number, nil) if status status = status.to_i fail_validation 'Status' unless status.to_s == data['status_code'] && status < STATES.size && status >= 0 end valid_data['status'] = status ? STATES[status] : DEFAULT_VALUE fail_validation 'HISTORY_RECORDS' if (!data['history']) || data['history'].empty? duration = sum_rstime(data['history'], valid_data['status'] == 'completed', valid_data['vm_uuid']) valid_data['duration'] = Time.at(duration) valid_data['suspend'] = end_time == 0 ? DEFAULT_VALUE : (end_time - start_time) - duration valid_data['cpu_count'] = default(data['cpu_count'], :nzn, '1') valid_data['network_inbound'] = (default(data['network_inbound'], :number, 0).to_i / B_IN_GB).round valid_data['network_outbound'] = (default(data['network_outbound'], :number, 0).to_i / B_IN_GB).round valid_data['memory'] = default(data['memory'], :number, '0') valid_data['image_name'] = default(data['image_name'], :string, DEFAULT_VALUE) disk_size_sum = sum_disk_size(data['disks'], valid_data['vm_uuid']) valid_data['disk_size'] = disk_size_sum ? disk_size_sum : DEFAULT_VALUE valid_data['cloud_compute_service'] = default(data['cloud_compute_service'], :string, DEFAULT_VALUE) valid_data['number_of_public_ips'] = default(data['number_of_public_ips'], :number, 0) valid_data['benchmark_type'] = default(data['benchmark_type'], :string, DEFAULT_VALUE) valid_data['benchmark_value'] = default(data['benchmark_value'], :decimal, DEFAULT_VALUE) if valid_data['benchmark_type'] == DEFAULT_VALUE || valid_data['benchmark_value'] == DEFAULT_VALUE valid_data['benchmark_type'] = DEFAULT_VALUE valid_data['benchmark_value'] = DEFAULT_VALUE end valid_data end