Skip to content

Commit

Permalink
Merge pull request #145 from origin/ec2-adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
emmahsax committed Aug 2, 2018
2 parents 4390348 + afdf891 commit 88b3212
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 6 deletions.
4 changes: 3 additions & 1 deletion lib/opsicle/commands/add_tags.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'gli'
require "opsicle/user_profile"
require "opsicle/opsworks_adapter"
require "opsicle/ec2_adapter"
require "opsicle/manageable_layer"
require "opsicle/manageable_instance"
require "opsicle/manageable_stack"
Expand All @@ -10,6 +11,7 @@ class AddTags

def initialize(environment)
@client = Client.new(environment)
@ec2_adapter = Ec2Adapter.new(@client)
@opsworks_adapter = OpsworksAdapter.new(@client)
stack_id = @client.config.opsworks_config[:stack_id]
@stack = ManageableStack.new(stack_id, @opsworks_adapter.client)
Expand All @@ -34,7 +36,7 @@ def select_layer

layers = []
ops_layers.each do |layer|
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @client.ec2, @cli)
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @ec2_adapter.client, @cli)
end

layers.each_with_index { |layer, index| puts "#{index.to_i + 1}) #{layer.name}" }
Expand Down
4 changes: 3 additions & 1 deletion lib/opsicle/commands/clone_instance.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'gli'
require "opsicle/user_profile"
require "opsicle/opsworks_adapter"
require "opsicle/ec2_adapter"
require "opsicle/manageable_layer"
require "opsicle/manageable_instance"
require "opsicle/manageable_stack"
Expand All @@ -10,6 +11,7 @@ class CloneInstance

def initialize(environment)
@client = Client.new(environment)
@ec2_adapter = Ec2Adapter.new(@client)
@opsworks_adapter = OpsworksAdapter.new(@client)
stack_id = @client.config.opsworks_config[:stack_id]
@stack = ManageableStack.new(stack_id, @opsworks_adapter.client)
Expand Down Expand Up @@ -40,7 +42,7 @@ def select_layer

layers = []
ops_layers.each do |layer|
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @client.ec2, @cli)
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @ec2_adapter.client, @cli)
end

layers.each_with_index { |layer, index| puts "#{index.to_i + 1}) #{layer.name}" }
Expand Down
6 changes: 4 additions & 2 deletions lib/opsicle/commands/create_instance.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'gli'
require "opsicle/user_profile"
require "opsicle/opsworks_adapter"
require "opsicle/ec2_adapter"
require "opsicle/manageable_layer"
require "opsicle/manageable_stack"
require "opsicle/creatable_instance"
Expand All @@ -10,6 +11,7 @@ class CreateInstance

def initialize(environment)
@client = Client.new(environment)
@ec2_adapter = Ec2Adapter.new(@client)
@opsworks_adapter = OpsworksAdapter.new(@client)
stack_id = @client.config.opsworks_config[:stack_id]
@stack = ManageableStack.new(stack_id, @opsworks_adapter.client)
Expand All @@ -26,7 +28,7 @@ def execute(options={})
end

def create_instance(layer, options)
CreatableInstance.new(layer, @stack, @opsworks_adapter.client, @client.ec2, @cli).create(options)
CreatableInstance.new(layer, @stack, @opsworks_adapter.client, @ec2_adapter.client, @cli).create(options)
end

def select_layer
Expand All @@ -35,7 +37,7 @@ def select_layer

layers = []
ops_layers.each do |layer|
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @client.ec2, @cli)
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @ec2_adapter.client, @cli)
end

layers.each_with_index { |layer, index| puts "#{index.to_i + 1}) #{layer.name}" }
Expand Down
4 changes: 3 additions & 1 deletion lib/opsicle/commands/delete_instance.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'gli'
require "opsicle/user_profile"
require "opsicle/opsworks_adapter"
require "opsicle/ec2_adapter"
require "opsicle/manageable_layer"
require "opsicle/manageable_instance"
require "opsicle/manageable_stack"
Expand All @@ -10,6 +11,7 @@ class DeleteInstance

def initialize(environment)
@client = Client.new(environment)
@ec2_adapter = Ec2Adapter.new(@client)
@opsworks_adapter = OpsworksAdapter.new(@client)
stack_id = @client.config.opsworks_config[:stack_id]
@stack = ManageableStack.new(stack_id, @opsworks_adapter.client)
Expand Down Expand Up @@ -40,7 +42,7 @@ def select_layer

layers = []
ops_layers.each do |layer|
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @client.ec2, @cli)
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @ec2_adapter.client, @cli)
end

layers.each_with_index { |layer, index| puts "#{index.to_i + 1}) #{layer.name}" }
Expand Down
4 changes: 3 additions & 1 deletion lib/opsicle/commands/stop_instance.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
require 'gli'
require "opsicle/user_profile"
require "opsicle/opsworks_adapter"
require "opsicle/ec2_adapter"
require "opsicle/manageable_layer"
require "opsicle/manageable_instance"
require "opsicle/manageable_stack"
Expand All @@ -10,6 +11,7 @@ class StopInstance

def initialize(environment)
@client = Client.new(environment)
@ec2_adapter = Ec2Adapter.new(@client)
@opsworks_adapter = OpsworksAdapter.new(@client)
stack_id = @client.config.opsworks_config[:stack_id]
@stack = ManageableStack.new(stack_id, @opsworks_adapter.client)
Expand Down Expand Up @@ -40,7 +42,7 @@ def select_layer

layers = []
ops_layers.each do |layer|
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @client.ec2, @cli)
layers << ManageableLayer.new(layer.name, layer.layer_id, @stack, @opsworks_adapter.client, @ec2_adapter.client, @cli)
end

layers.each_with_index { |layer, index| puts "#{index.to_i + 1}) #{layer.name}" }
Expand Down
15 changes: 15 additions & 0 deletions lib/opsicle/ec2_adapter.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
class Opsicle::Ec2Adapter
attr_reader :client

def initialize(client)
@client = client.ec2
end

def get_subnets
client.describe_subnets.subnets
end

def tag_instance(ec2_instance_id, tags)
client.create_tags(resources: [ ec2_instance_id ], tags: tags)
end
end
23 changes: 23 additions & 0 deletions spec/opsicle/ec2_adapter_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
describe Opsicle::Ec2Adapter do
let(:aws_ec2_client) do
double(:aws_ec2_client,
describe_subnets: double(:subnets, subnets: []),
create_tags: :tags_created
)
end
let(:client) { double(:client, ec2: aws_ec2_client) }

subject { described_class.new(client) }

describe "#get_subnets" do
it "should gather an array of subnets for this ec2 client" do
expect(subject.get_subnets).to be_empty
end
end

describe "#tag_instance" do
it "should call to create a tag on an instance" do
expect(subject.tag_instance(:instance_id, [1, 2, 3])).to eq(:tags_created)
end
end
end

0 comments on commit 88b3212

Please sign in to comment.