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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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