lib/opsicle/commands/move_eip.rb in opsicle-2.12.2 vs lib/opsicle/commands/move_eip.rb in opsicle-2.12.3
- old
+ new
@@ -2,23 +2,39 @@
require "opsicle/user_profile"
require "opsicle/opsworks_adapter"
require "opsicle/manageable_layer"
require "opsicle/manageable_instance"
require "opsicle/manageable_stack"
+require "opsicle/questionnaire/eip_inquiry"
module Opsicle
class MoveEip
def initialize(environment)
@client = Client.new(environment)
- @opsworks_adpater = OpsworksAdapter.new(@client)
+ @opsworks_adapter = OpsworksAdapter.new(@client)
stack_id = @client.config.opsworks_config[:stack_id]
@cli = HighLine.new
- @stack = ManageableStack.new(stack_id, @opsworks_adpater.client, @cli)
+ @stack = ManageableStack.new(stack_id, @opsworks_adapter, @cli)
+
+ @eip_inquiry = Questionnaire::EipInquiry.new(
+ opsworks_adapter: @opsworks_adapter,
+ highline_client: @cli
+ )
end
def execute(options={})
puts "Stack ID = #{@stack.id}"
- @stack.move_eip
+ moved_values = move_eip
+ puts "\nEIP #{moved_values[:ip_address]} was moved to instance #{moved_values[:target_instance_id]}"
end
+
+ def move_eip
+ eip_information = @stack.eips
+ moveable_eip = @eip_inquiry.which_eip_should_move(eip_information)
+ target_instance_id = @eip_inquiry.which_instance_should_get_eip(moveable_eip)
+ @stack.transfer_eip(moveable_eip, target_instance_id)
+ { ip_address: moveable_eip[:ip_address], target_instance_id: target_instance_id }
+ end
+ private :move_eip
end
end