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 +8 -8
- data/README.md +17 -2
- data/lib/dpl/provider.rb +1 -0
- data/lib/dpl/provider/ops_works.rb +41 -0
- data/spec/provider/ops_works_spec.rb +53 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
OTQ3ZWZiMzZiNzkyZTgyZjIyYzJjN2Q5OGMyNjdmNDM4YzljOGVmMg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
OTExMmM4YTgzODk4NWRlYTc5YWE4NTNiOWFlYWZkMGVhNzZiZjJhMw==
|
|
7
7
|
!binary "U0hBNTEy":
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
MTIyZjE4ZThkNzE5ZTAzMGU5MDI5YmIwMjhhNzRkOWI1ZjU5YmI1YjBhZDUy
|
|
10
|
+
OGMxMGJjMGZhYzYyY2M0ZDhkYjM5YzYxNmVlYzZlMGYxZmQ4NzhhNWM5NTQ3
|
|
11
|
+
YTY4MmY3NTM2NTliN2M5ZWIzYjcwY2U4ZTNlOTA5Y2M1OTU3NGE=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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.
|
|
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-
|
|
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
|