dpl 1.5.2.travis.244.2 → 1.5.2.travis.245.2
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/Gemfile +4 -0
- data/README.md +14 -0
- data/lib/dpl/provider.rb +1 -0
- data/lib/dpl/provider/cloud_files.rb +32 -0
- data/spec/provider/cloud_files_spec.rb +77 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NGIxZDFmOGUzM2IxOGZjY2ExZTIzM2I3NWQzNDM4NDY2MzFlYTU2NQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NGE1YTZmZTQ3MjYzNTVmY2M5NjNiYjExOWUzMjVlMmVkM2IzNzIxNQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MjljYjU0NzJkMmU5ZjM4YTlmNDU1NjQ2N2UyZGViNjcwZjg3NzYxYTU4ZjA3
|
10
|
+
YzlmODhhZmE3MmI3ZjdlYmIxY2VlOTIwMWI1NzE4MjQwZTY4MDhmYjA4Njcy
|
11
|
+
Y2ExOGI0OGU0MTM1YzRiOGI4M2I3M2QzYTNjZDQ3MGE3YTcyYzU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YmQ5OTEzZWZjNmMxY2QwYjNhODQzMzQ3ODQ5YTRkYzMzY2U3N2I2MDZmOTU1
|
14
|
+
MmRmYjQwZmI1YjRkMWI3MDUyYjgxMzE3ZTc4YTE1ZjE5NzBmYmE1NTI4ZTIw
|
15
|
+
N2FiZjJkNTdjODcxZjc5N2EyYzYzMWQ0N2I2OWE3NGQ4MzZjZTQ=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -17,6 +17,7 @@ Dpl supports the following providers:
|
|
17
17
|
* [RubyGems](#rubygems)
|
18
18
|
* [S3](#s3)
|
19
19
|
* [Divshot.io](#divshotio)
|
20
|
+
* [Rackspace Cloud Files](#rackspace-cloud-files)
|
20
21
|
|
21
22
|
## Installation:
|
22
23
|
|
@@ -209,3 +210,16 @@ As a rule of thumb, you should switch to the Git strategy if you run into issues
|
|
209
210
|
|
210
211
|
dpl --provider=dotcloud --api_key=<api_key> --app=<app>
|
211
212
|
dpl --provider=dotcloud --api_key=<api_key> --app=<app> --service=<service>
|
213
|
+
|
214
|
+
### Rackspace Cloud Files:
|
215
|
+
|
216
|
+
#### Options:
|
217
|
+
|
218
|
+
* **username**: Rackspace Username.
|
219
|
+
* **api-key**: Rackspace API Key.
|
220
|
+
* **region**: Cloud Files Region. The region in which your Cloud Files container exists.
|
221
|
+
* **container**: Container Name. The container where you would like your files to be uploaded.
|
222
|
+
|
223
|
+
#### Examples:
|
224
|
+
|
225
|
+
dpl --provider=cloudfiles --username=<username> --api-key=<api-key> --region=<region> --container=<container>
|
data/lib/dpl/provider.rb
CHANGED
@@ -18,6 +18,7 @@ module DPL
|
|
18
18
|
autoload :CloudFoundry, 'dpl/provider/cloud_foundry'
|
19
19
|
autoload :PyPI, 'dpl/provider/pypi'
|
20
20
|
autoload :Divshot, 'dpl/provider/divshot'
|
21
|
+
autoload :CloudFiles, 'dpl/provider/cloud_files'
|
21
22
|
|
22
23
|
def self.new(context, options)
|
23
24
|
return super if self < Provider
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'dpl/provider'
|
2
|
+
|
3
|
+
module DPL
|
4
|
+
class Provider
|
5
|
+
class CloudFiles < Provider
|
6
|
+
requires 'fog'
|
7
|
+
experimental 'Rackspace Cloud Files'
|
8
|
+
|
9
|
+
def needs_key?
|
10
|
+
false
|
11
|
+
end
|
12
|
+
|
13
|
+
def api
|
14
|
+
@api ||= Fog::Storage.new(:provider => 'Rackspace', :rackspace_username => option(:username), :rackspace_api_key => option(:api_key), :rackspace_region => option(:region))
|
15
|
+
end
|
16
|
+
|
17
|
+
def check_auth
|
18
|
+
log "Authenticated as #{option(:username)}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def push_app
|
22
|
+
container = api.directories.get(option(:container))
|
23
|
+
|
24
|
+
raise Error, 'The specified container does not exist.' if container.nil?
|
25
|
+
|
26
|
+
Dir.glob('**/*').each do |name|
|
27
|
+
container.files.create(:key => name, :body => File.open(name)) unless File.directory?(name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'dpl/provider/cloud_files'
|
3
|
+
require 'fog'
|
4
|
+
|
5
|
+
describe DPL::Provider::CloudFiles do
|
6
|
+
before :each do
|
7
|
+
Fog.mock!
|
8
|
+
end
|
9
|
+
|
10
|
+
subject :provider do
|
11
|
+
described_class.new(DummyContext.new, :username => 'username', :api_key => 'api key', :container => 'travis', :region => 'dfw')
|
12
|
+
end
|
13
|
+
|
14
|
+
describe :needs_key? do
|
15
|
+
example do
|
16
|
+
provider.needs_key?.should == false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe :api do
|
21
|
+
example do
|
22
|
+
Fog::Storage.should_receive(:new).with(:provider => 'Rackspace', :rackspace_username => 'username', :rackspace_api_key => 'api key', :rackspace_region => 'dfw')
|
23
|
+
|
24
|
+
provider.api
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe :check_auth do
|
29
|
+
example do
|
30
|
+
provider.should_receive(:log).with('Authenticated as username')
|
31
|
+
|
32
|
+
provider.check_auth
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe :push_app do
|
37
|
+
let :files do
|
38
|
+
files = double
|
39
|
+
|
40
|
+
directory = double
|
41
|
+
directory.stub(:files) { files }
|
42
|
+
|
43
|
+
directories = double
|
44
|
+
directories.should_receive(:get).with('travis').and_return(directory)
|
45
|
+
|
46
|
+
service = double(:service)
|
47
|
+
service.stub(:directories) { directories }
|
48
|
+
provider.stub(:api) { service }
|
49
|
+
|
50
|
+
files
|
51
|
+
end
|
52
|
+
|
53
|
+
example do
|
54
|
+
files.should_receive(:create).with(:key => 'a', :body => 'a body')
|
55
|
+
files.should_receive(:create).with(:key => 'b', :body => 'b body')
|
56
|
+
files.should_receive(:create).with(:key => 'c', :body => 'c body')
|
57
|
+
|
58
|
+
Dir.should_receive(:glob).with('**/*').and_return(['a', 'b', 'c'])
|
59
|
+
File.stub(:open) { |name| "#{name} body" }
|
60
|
+
|
61
|
+
provider.push_app
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe :deploy do
|
66
|
+
example 'Not Found' do
|
67
|
+
directories = double
|
68
|
+
directories.stub(:get) { nil }
|
69
|
+
|
70
|
+
service = double(:service)
|
71
|
+
service.stub(:directories) { directories }
|
72
|
+
provider.stub(:api) { service }
|
73
|
+
|
74
|
+
expect { provider.deploy }.to raise_error(DPL::Error, 'The specified container does not exist.')
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dpl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.2.travis.
|
4
|
+
version: 1.5.2.travis.245.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Konstantin Haase
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- lib/dpl/error.rb
|
87
87
|
- lib/dpl/provider.rb
|
88
88
|
- lib/dpl/provider/appfog.rb
|
89
|
+
- lib/dpl/provider/cloud_files.rb
|
89
90
|
- lib/dpl/provider/cloud_foundry.rb
|
90
91
|
- lib/dpl/provider/cloudcontrol.rb
|
91
92
|
- lib/dpl/provider/divshot.rb
|
@@ -106,6 +107,7 @@ files:
|
|
106
107
|
- notes/heroku.md
|
107
108
|
- spec/cli_spec.rb
|
108
109
|
- spec/provider/appfog_spec.rb
|
110
|
+
- spec/provider/cloud_files_spec.rb
|
109
111
|
- spec/provider/cloudcontrol_spec.rb
|
110
112
|
- spec/provider/divshot_spec.rb
|
111
113
|
- spec/provider/dotcloud_spec.rb
|