dumbwaiter 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 037e1bc90c9a39f1a16951de02c0e95ea6fc0bcb
4
- data.tar.gz: 3cf2330286cabb2f654b92a43458ff1177d75eab
3
+ metadata.gz: b9a26e924bd8b00b73ec8cb0e324a0721c166944
4
+ data.tar.gz: c678a21527a23982a32d6131f2ed740e2705d188
5
5
  SHA512:
6
- metadata.gz: f3acb077db8d3514aff5babefb2e783f7fa0b92c70b2cd62240f518452821e4bfbcd8b4d9ef084ff0cba6a1b783ce1e3411b5dcd8587487c86f5e61b2d7e578e
7
- data.tar.gz: e4ac64be955b4545a0dc4430509dc2541d61bec1b2836da0df9af3f161ce9050c5f9057e5d8063f4cbc032c65cd37e9c7aea6f0ca58aa30a447446f05c1d48e0
6
+ metadata.gz: 7e589c89ce6429b82bee6c8e50a9c9ab6dd641818b7b14ddb3bc65d335ed17470291a81378ee6f49b24eada95c4291f3d1e61518ef5cc18f9aa1dcb4d1b47b44
7
+ data.tar.gz: 7f17bc639481d9b36c1a5da08246e4122a11038933ba6758228f5d183eccce37b1277830df12cd2ea243e0c85eb406d15d8c96edce3c340fa29bcf6b121c716d
@@ -1,14 +1,16 @@
1
1
  require "dumbwaiter/deployment_custom_json"
2
+ require "dumbwaiter/user_profile"
2
3
 
3
4
  class Dumbwaiter::Deployment
4
- attr_reader :opsworks_deployment
5
+ attr_reader :opsworks_deployment, :opsworks
5
6
 
6
7
  def self.all(stack, opsworks = Aws::OpsWorks.new(region: "us-east-1"))
7
- opsworks.describe_deployments(stack_id: stack.id).deployments.map { |d| new(d) }
8
+ opsworks.describe_deployments(stack_id: stack.id).deployments.map { |d| new(d, opsworks) }
8
9
  end
9
10
 
10
- def initialize(opsworks_deployment)
11
+ def initialize(opsworks_deployment, opsworks)
11
12
  @opsworks_deployment = opsworks_deployment
13
+ @opsworks = opsworks
12
14
  end
13
15
 
14
16
  def created_at
@@ -23,6 +25,10 @@ class Dumbwaiter::Deployment
23
25
  opsworks_deployment.status
24
26
  end
25
27
 
28
+ def user_name
29
+ user_profile.name
30
+ end
31
+
26
32
  def git_ref
27
33
  deployment_custom_json.git_ref
28
34
  end
@@ -33,6 +39,10 @@ class Dumbwaiter::Deployment
33
39
 
34
40
  protected
35
41
 
42
+ def user_profile
43
+ Dumbwaiter::UserProfile.find(opsworks_deployment.iam_user_arn, opsworks)
44
+ end
45
+
36
46
  def deployment_custom_json
37
47
  Dumbwaiter::DeploymentCustomJson.from_json(custom_json)
38
48
  end
@@ -30,6 +30,10 @@ class Dumbwaiter::Stack
30
30
  opsworks_stack.stack_id
31
31
  end
32
32
 
33
+ def color
34
+ opsworks_stack.attributes["Color"]
35
+ end
36
+
33
37
  def apps
34
38
  @apps ||= Dumbwaiter::App.all(self, opsworks)
35
39
  end
@@ -0,0 +1,21 @@
1
+ class Dumbwaiter::UserProfile
2
+ attr_reader :opsworks_user_profile, :opsworks
3
+
4
+ def self.find(iam_user_arn, opsworks = Aws::OpsWorks.new(region: "us-east-1"))
5
+ opsworks.describe_user_profiles(iam_user_arns: [iam_user_arn]).user_profiles.first
6
+
7
+ end
8
+
9
+ def initialize(opsworks_user_profile, opsworks)
10
+ @opsworks_user_profile = opsworks_user_profile
11
+ @opsworks = opsworks
12
+ end
13
+
14
+ def iam_user_arn
15
+ opsworks_user_profile.iam_user_arn
16
+ end
17
+
18
+ def name
19
+ opsworks_user_profile.name
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module Dumbwaiter
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -8,19 +8,23 @@ describe Dumbwaiter::Deployment do
8
8
  created_at: "last Tuesday",
9
9
  command: fake_command,
10
10
  status: "badical",
11
- custom_json: custom_json
11
+ custom_json: custom_json,
12
+ iam_user_arn: "ie"
12
13
  )
13
14
  end
14
15
  let(:fake_deployments) { double(:deployments, deployments: [fake_deployment]) }
15
- let(:fake_opsworks) { double(:opsworks, describe_deployments: fake_deployments) }
16
+ let(:fake_user_profile) { double(:user_profile, name: "goose") }
17
+ let(:fake_user_profiles) { double(:user_profiles, user_profiles: [fake_user_profile]) }
18
+ let(:fake_opsworks) { double(:opsworks, describe_deployments: fake_deployments, describe_user_profiles: fake_user_profiles) }
16
19
 
17
- subject(:deployment) { Dumbwaiter::Deployment.new(fake_deployment) }
20
+ subject(:deployment) { Dumbwaiter::Deployment.new(fake_deployment, fake_opsworks) }
18
21
 
19
22
  its(:opsworks_deployment) { should == fake_deployment }
20
23
  its(:created_at) { should == DateTime.parse("last Tuesday") }
21
24
  its(:command_name) { should == "deplode" }
22
25
  its(:status) { should == "badical" }
23
26
  its(:git_ref) { should == "eh-buddy" }
27
+ its(:user_name) { should == "goose" }
24
28
  its(:to_log) { should == "#{DateTime.parse("last Tuesday")} - deplode - badical - eh-buddy" }
25
29
 
26
30
  context "when custom_json is nil" do
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Dumbwaiter::Stack do
4
- let(:fake_stack) { double(:stack, name: "ducks", stack_id: "cool") }
4
+ let(:fake_stack) { double(:stack, name: "ducks", stack_id: "cool", attributes: {"Color" => "hot pink"}) }
5
5
  let(:fake_stacks) { double(:stacks, stacks: [fake_stack]) }
6
6
  let(:fake_opsworks) { double(:opsworks, describe_stacks: fake_stacks) }
7
7
  let(:fake_app) { double(:app) }
@@ -19,6 +19,7 @@ describe Dumbwaiter::Stack do
19
19
  its(:opsworks_stack) { should == fake_stack }
20
20
  its(:id) { should == "cool" }
21
21
  its(:name) { should == "ducks" }
22
+ its(:color) { should == "hot pink" }
22
23
 
23
24
  its(:apps) { should == [fake_app] }
24
25
  its(:deployments) { should == [fake_deployment] }
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ describe Dumbwaiter::UserProfile do
4
+ let(:fake_user_profile) { double(:user_profile, iam_user_arn: "schwarz", name: "conan") }
5
+ let(:fake_user_profiles) { double(:user_profiles, user_profiles: [fake_user_profile])}
6
+ let(:fake_opsworks) { double(:opsworks, describe_user_profiles: fake_user_profiles) }
7
+
8
+ subject(:user_profile) { Dumbwaiter::UserProfile.new(fake_user_profile, fake_opsworks) }
9
+
10
+ its(:opsworks_user_profile) { should == fake_user_profile }
11
+ its(:iam_user_arn) { should == "schwarz" }
12
+ its(:name) { should == "conan" }
13
+
14
+ describe ".find" do
15
+ it "finds a user profile for the given iam user arn" do
16
+ fake_opsworks.should_receive(:describe_user_profiles).with(iam_user_arns: ["schwarz"])
17
+ Dumbwaiter::UserProfile.find("schwarz", fake_opsworks).should == fake_user_profile
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dumbwaiter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Doc Ritezel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-11 00:00:00.000000000 Z
11
+ date: 2013-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -121,6 +121,7 @@ files:
121
121
  - lib/dumbwaiter/instance.rb
122
122
  - lib/dumbwaiter/layer.rb
123
123
  - lib/dumbwaiter/stack.rb
124
+ - lib/dumbwaiter/user_profile.rb
124
125
  - lib/dumbwaiter/version.rb
125
126
  - script/ci.sh
126
127
  - spec/lib/dumbwaiter/app_spec.rb
@@ -130,6 +131,7 @@ files:
130
131
  - spec/lib/dumbwaiter/instance_spec.rb
131
132
  - spec/lib/dumbwaiter/layer_spec.rb
132
133
  - spec/lib/dumbwaiter/stack_spec.rb
134
+ - spec/lib/dumbwaiter/user_profile_spec.rb
133
135
  - spec/spec_helper.rb
134
136
  homepage: https://github.com/minifast/dumbwaiter
135
137
  licenses:
@@ -163,4 +165,5 @@ test_files:
163
165
  - spec/lib/dumbwaiter/instance_spec.rb
164
166
  - spec/lib/dumbwaiter/layer_spec.rb
165
167
  - spec/lib/dumbwaiter/stack_spec.rb
168
+ - spec/lib/dumbwaiter/user_profile_spec.rb
166
169
  - spec/spec_helper.rb