class Knife::Clc::ServerLaunch::Validator
Attributes
config[R]
errors[R]
Public Class Methods
new(params)
click to toggle source
# File lib/knife-clc/server_launch/validator.rb, line 7 def initialize(params) @config = params.fetch(:config) @errors = params.fetch(:errors) end
Public Instance Methods
validate()
click to toggle source
# File lib/knife-clc/server_launch/validator.rb, line 12 def validate unless config[:clc_name] errors << 'Name is required' end unless config[:clc_group] errors << 'Group ID is required' end unless config[:clc_source_server] errors << 'Source server ID is required' end unless config[:clc_cpu] errors << 'Number of CPUs is required' end unless config[:clc_memory] errors << 'Number of memory GBs is required' end unless config[:clc_type] errors << 'Type is required' end custom_fields = config[:clc_custom_fields] if custom_fields && custom_fields.any? parse_custom_fields(custom_fields) end disks = config[:clc_disks] if disks && disks.any? parse_disks(disks) end packages = config[:clc_packages] if packages && packages.any? parse_packages(packages) end end
Private Instance Methods
parse_custom_fields(custom_fields)
click to toggle source
# File lib/knife-clc/server_launch/validator.rb, line 55 def parse_custom_fields(custom_fields) custom_fields.map! do |param| key, value = param.split('=', 2) unless key && value errors << "Custom field definition #{param} is malformed" next end { 'id' => key, 'value' => value } end end
parse_disks(disks)
click to toggle source
# File lib/knife-clc/server_launch/validator.rb, line 68 def parse_disks(disks) disks.map! do |param| path, size, type = param.split(',', 3) unless path && size && type errors << "Disk definition #{param} is malformed" end { 'path' => path, 'sizeGB' => size, 'type' => type } end end
parse_packages(packages)
click to toggle source
# File lib/knife-clc/server_launch/validator.rb, line 80 def parse_packages(packages) packages.map! do |param| begin id, raw_params = param.split(',', 2) parsed_params = {} raw_params.split(',').each do |raw_pair| key, value = raw_pair.split('=', 2) parsed_params[key] = value end { 'packageId' => id, 'parameters' => parsed_params } rescue Exception => e errors << "Package definition #{param} is malformed" end end end