class KnifePlugins::RackspaceLoadBalancerCreate
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/rackspace_load_balancer_create.rb, line 72 def run if @name_args.first.nil? ui.fatal("Must provide name") show_usage exit 1 end unless [:add_nodes_by_search, :add_nodes_by_name, :add_nodes_by_private_ip].any? {|addition| not config[addition].nil?} ui.fatal("Must provide nodes via --add-nodes-by-search, --add-nodes-by-node-name, or --add-nodes-by-private-ip") show_usage exit 2 end node_ips = resolve_node_ips_from_config({ :by_search => config[:add_nodes_by_search], :by_name => config[:add_nodes_by_name], :by_private_ip => config[:add_nodes_by_private_ip] }) nodes = node_ips.map do |ip| { :address => ip, :port => config[:node_port], :condition => config[:node_condition], :weight => config[:node_weight] } end load_balancer_configuration = { :name => @name_args.first, :protocol => config[:protocol], :port => config[:port], :algorithm => config[:algorithm], :nodes => nodes, :virtual_ip_type => config[:virtual_ip_type] } unless config[:virtual_ip_ids].nil? load_balancer_configuration[:virtual_ip_ids] = config[:virtual_ip_ids].split(",") end ui.output format_for_display(load_balancer_configuration) unless config[:force] ui.confirm("Do you really want to create this load balancer") end load_balancer_id = lb_connection.create_load_balancer(load_balancer_configuration) ui.output(ui.color("Created load balancer #{@name_args.first}", :green)) end