dpl 1.5.3.travis.257.1 → 1.5.3.travis.259.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDE4YjE4NDljOGJiNDU5NTcyYmU4YTM0YmM4YTg3MjE2MmQ1NTNhNQ==
4
+ OTQ3ZWZiMzZiNzkyZTgyZjIyYzJjN2Q5OGMyNjdmNDM4YzljOGVmMg==
5
5
  data.tar.gz: !binary |-
6
- YTgxYTMwYTc0ZjEwYmNjMzM0MjNhYWRkOGQzZjg3ZDM5ZDAzYmM2NQ==
6
+ OTExMmM4YTgzODk4NWRlYTc5YWE4NTNiOWFlYWZkMGVhNzZiZjJhMw==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZWJiNTlhNGI2MDI0MDM5NTNiY2RlN2I0YzdjMjFlNWExZTdjZDcwY2VhYzY2
10
- NmRkMzliMDc1MjIyYjEzN2ZjOTNjMDU2MjcxMzJiZDk0MjYyODJjMTg1YTIz
11
- MDBmMzBlYmQ5YTIwODBjYWY4MzRkMzhlYzYzYWMyZDQ1OTdmYmY=
9
+ MTIyZjE4ZThkNzE5ZTAzMGU5MDI5YmIwMjhhNzRkOWI1ZjU5YmI1YjBhZDUy
10
+ OGMxMGJjMGZhYzYyY2M0ZDhkYjM5YzYxNmVlYzZlMGYxZmQ4NzhhNWM5NTQ3
11
+ YTY4MmY3NTM2NTliN2M5ZWIzYjcwY2U4ZTNlOTA5Y2M1OTU3NGE=
12
12
  data.tar.gz: !binary |-
13
- YTk0ODQyZDQ5MWVhNTU4ZTQ5NjJiMjBhYjhmMGNlMmQzOThiZmM5NGI5ZWZm
14
- OGYxMTg4OGI2MzY1MDhkMjBiNGE3OTQzMGJlNjMzNmMyZjUyMjhiY2ZmMTZk
15
- OTU0Njk2NzAyOTBiNTU3YjRiOTY5ZmJiNmVlNWQzMjYxMDYzYWQ=
13
+ MDgwOWE0NzQ0Mjk4NTQxNDAyNmMyYmJlYjg4NzAzZjMxZTA5Nzk4YzIwMDc2
14
+ OTEzNjU5ZDFlZjE3ZWIzNjg4MDJjZjQxN2FiMmI1ZWE2NTRhYjc3ZDBhNDc3
15
+ OGNmOGFmNDcwNjA3OWI4YTlmMjBmNzgzYjRjZjQxNmM5NGJjMzg=
data/README.md CHANGED
@@ -18,6 +18,7 @@ Dpl supports the following providers:
18
18
  * [S3](#s3)
19
19
  * [Divshot.io](#divshotio)
20
20
  * [Rackspace Cloud Files](#rackspace-cloud-files)
21
+ * [AWS OpsWorks](#opsworks)
21
22
 
22
23
  ## Installation:
23
24
 
@@ -154,8 +155,8 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
154
155
 
155
156
  * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
156
157
  * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
157
- * **bucket**: S3 Bucket.
158
- * **upload-dir**: S3 directory to upload to. Defaults to root directory.
158
+ * **bucket**: S3 Bucket.
159
+ * **upload-dir**: S3 directory to upload to. Defaults to root directory.
159
160
  * **local-dir**: Local directory to upload from. Can be set from a global perspective (~/travis/build) or relative perspective (build) Defaults to project root.
160
161
 
161
162
  #### Examples:
@@ -163,6 +164,20 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
163
164
  dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket>
164
165
  dpl --provider=s3 --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --bucket=<bucket> --local-dir= BUILD --upload-dir=BUILDS
165
166
 
167
+ ### OpsWorks:
168
+
169
+ #### Options:
170
+
171
+ * **access-key-id**: AWS Access Key ID. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
172
+ * **secret-access-key**: AWS Secret Key. Can be obtained from [here](https://console.aws.amazon.com/iam/home?#security_credential).
173
+ * **stack-id**: The stack ID.
174
+ * **app-id**: The app ID.
175
+
176
+ #### Examples:
177
+
178
+ dpl --provider=opsworks --access-key-id=<access-key-id> --secret-access-key=<secret-access-key> --stack-id=<stack-id> --app-id=<app-id>
179
+
180
+
166
181
  ### Appfog:
167
182
 
168
183
  #### Options:
data/lib/dpl/provider.rb CHANGED
@@ -19,6 +19,7 @@ module DPL
19
19
  autoload :PyPI, 'dpl/provider/pypi'
20
20
  autoload :Divshot, 'dpl/provider/divshot'
21
21
  autoload :CloudFiles, 'dpl/provider/cloud_files'
22
+ autoload :OpsWorks, 'dpl/provider/ops_works'
22
23
 
23
24
  def self.new(context, options)
24
25
  return super if self < Provider
@@ -0,0 +1,41 @@
1
+ module DPL
2
+ class Provider
3
+ class OpsWorks < Provider
4
+ requires 'aws-sdk'
5
+ experimental 'AWS OpsWorks'
6
+
7
+ def api
8
+ @api ||= AWS::OpsWorks.new
9
+ end
10
+
11
+ def needs_key?
12
+ false
13
+ end
14
+
15
+ def check_app
16
+
17
+ end
18
+
19
+ def setup_auth
20
+ AWS.config(access_key_id: option(:access_key_id), secret_access_key: option(:secret_access_key))
21
+ end
22
+
23
+ def check_auth
24
+ setup_auth
25
+ log "Logging in with Access Key: #{option(:access_key_id)[-4..-1].rjust(20, '*')}"
26
+ end
27
+
28
+ def push_app
29
+ api.client.create_deployment(stack_id: option(:stack_id), app_id: option(:app_id), command: {name: 'deploy'})
30
+ end
31
+
32
+ def deploy
33
+ super
34
+ rescue AWS::Errors::ClientError => error
35
+ raise Error, "Stopping Deploy, OpsWorks error: #{error.message}", error.backtrace
36
+ rescue AWS::Errors::ServerError => error
37
+ raise Error, "Stopping Deploy, OpsWorks server error: #{error.message}", error.backtrace
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+ require 'aws-sdk'
3
+ require 'dpl/provider'
4
+ require 'dpl/provider/ops_works'
5
+
6
+ describe DPL::Provider::OpsWorks do
7
+
8
+ before (:each) do
9
+ AWS.stub!
10
+ end
11
+
12
+ subject :provider do
13
+ described_class.new(DummyContext.new, :access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz', :bucket => 'my-bucket')
14
+ end
15
+
16
+ describe :check_auth do
17
+ example do
18
+ provider.should_receive(:setup_auth)
19
+ provider.should_receive(:log).with("Logging in with Access Key: ****************jklz")
20
+ provider.check_auth
21
+ end
22
+ end
23
+
24
+ describe :setup_auth do
25
+ example do
26
+ AWS.should_receive(:config).with(:access_key_id => 'qwertyuiopasdfghjklz', :secret_access_key => 'qwertyuiopasdfghjklzqwertyuiopasdfghjklz').once.and_call_original
27
+ provider.setup_auth
28
+ end
29
+ end
30
+
31
+ describe :needs_key? do
32
+ example do
33
+ provider.needs_key?.should == false
34
+ end
35
+ end
36
+
37
+ describe :push_app do
38
+ let(:client) { double(:ops_works_client) }
39
+ example do
40
+ provider.options.update(stack_id: 'stack-id', app_id: 'app-id')
41
+ provider.api.should_receive(:client).and_return(client)
42
+ client.should_receive(:create_deployment).with(stack_id: 'stack-id', app_id: 'app-id', command: {name: "deploy"})
43
+ provider.push_app
44
+ end
45
+ end
46
+
47
+ describe :api do
48
+ example do
49
+ AWS::OpsWorks.should_receive(:new)
50
+ provider.api
51
+ end
52
+ end
53
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3.travis.257.1
4
+ version: 1.5.3.travis.259.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-13 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -98,6 +98,7 @@ files:
98
98
  - lib/dpl/provider/nodejitsu.rb
99
99
  - lib/dpl/provider/npm.rb
100
100
  - lib/dpl/provider/openshift.rb
101
+ - lib/dpl/provider/ops_works.rb
101
102
  - lib/dpl/provider/pypi.rb
102
103
  - lib/dpl/provider/rubygems.rb
103
104
  - lib/dpl/provider/s3.rb
@@ -115,6 +116,7 @@ files:
115
116
  - spec/provider/heroku_git_spec.rb
116
117
  - spec/provider/npm.rb
117
118
  - spec/provider/openshift_spec.rb
119
+ - spec/provider/ops_works_spec.rb
118
120
  - spec/provider/pypi_spec.rb
119
121
  - spec/provider/rubygems_spec.rb
120
122
  - spec/provider/s3_spec.rb