class Chef::Knife::OneandoneLoadbalancerCreate
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/oneandone_loadbalancer_create.rb, line 86 def run $stdout.sync = true validate(config[:name], '-n NAME') validate(config[:protocol], 'at least one value for --protocol [PROTOCOL]') protocols = split_delimited_input(config[:protocol]) ports_balancer = split_delimited_input(config[:port_balancer]) ports_server = split_delimited_input(config[:port_server]) sources = split_delimited_input(config[:source]) validate_rules(protocols, ports_balancer, ports_server) rules = [] for i in 0..(protocols.length - 1) rule = { 'protocol' => protocols[i].upcase, 'port_balancer' => ports_balancer[i].to_i, 'port_server' => ports_server[i].to_i, 'source' => sources[i] } rules << rule end init_client load_balancer = OneAndOne::LoadBalancer.new response = load_balancer.create( name: config[:name], description: config[:description], health_check_test: config[:health_check].to_s.upcase, health_check_interval: config[:health_int].to_i, persistence: config[:persistence], persistence_time: config[:persistence_int].to_i, method: config[:method].to_s.upcase, rules: rules, health_check_path: config[:health_path], health_check_parse: config[:health_regex], datacenter_id: config[:datacenter_id] ) if config[:wait] puts ui.color('Creating, wait for the operation to complete...', :cyan).to_s load_balancer.wait_for formated_output(load_balancer.get, true) puts "Load balancer #{response['id']} is #{ui.color('created', :bold)}" else formated_output(response, true) puts "Load balancer #{response['id']} is #{ui.color('being created', :bold)}" end end
validate_rules(protocols, ports_balancer, ports_server)
click to toggle source
# File lib/chef/knife/oneandone_loadbalancer_create.rb, line 139 def validate_rules(protocols, ports_balancer, ports_server) if (ports_balancer.length != ports_server.length) || (ports_balancer.length != protocols.length) ui.error('You must supply equal number of --protocol, --port-balancer and --port-server values!') exit 1 end end