dpl 1.7.1.travis.575.1 → 1.7.1.travis.577.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/Gemfile +5 -0
- data/README.md +12 -0
- data/lib/dpl/provider.rb +1 -0
- data/lib/dpl/provider/puppet_forge.rb +42 -0
- data/spec/provider/puppet_forge_spec.rb +60 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTkwNTdjYmJkMGVlZDdmMTFhOTMxOGI2YWM5MGQ5MjhjZWQzMzRhOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTIwYTNjYWVjMzU5YmI4NWQ1YTdlOWUwMzZlNWEyM2Q2ODM3MzgxNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
N2U2NjdmZDY3ZTNlN2EzYjgwZjZmM2I1OGIzYzM1M2VmNDVkMDMzNDZjYzdm
|
10
|
+
MmUzNTk3OTc4NDU5YzI2NjNhMWQwNmQ2YjNlZTFiNmMzZGFlMmRmYWYwNjc3
|
11
|
+
YTBlNTMzM2I0ZDc1MjBjODhjMmJiNGZiMGM2MTBiNTA0NmFhNTk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YzBiNTcwZDRiNzcwOGFhNjg3OTUyMWE4OTQ1MjRmMDRmYWE2YTQ4MWU5ZDk0
|
14
|
+
NDY1MGI5MmQ2ODA1YzI3NmE3ZmRmOWY4ODJlM2RiOTBmNjM0N2NkYjczN2Ex
|
15
|
+
MmFmNjJiMmNhNTQ0YTIzNThkNWUzNjk2NzY4MGQzMjQ5NDA0Yjc=
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -28,6 +28,7 @@ Dpl supports the following providers:
|
|
28
28
|
* [Deis](#deis)
|
29
29
|
* [Google Cloud Storage](#google-cloud-storage)
|
30
30
|
* [Elastic Beanstalk](#elastic-beanstalk)
|
31
|
+
* [Puppet Forge](#puppet-forge)
|
31
32
|
|
32
33
|
## Installation:
|
33
34
|
|
@@ -390,3 +391,14 @@ For accounts using two factor authentication, you have to use an oauth token as
|
|
390
391
|
dpl --access-token=<access-token> --site-id=3f932c1e-708b-4573-938a-a07d9728c22e
|
391
392
|
dpl --access-token=<access-token> --site-id=3f932c1e-708b-4573-938a-a07d9728c22e --local-dir=build
|
392
393
|
|
394
|
+
### Puppet Forge:
|
395
|
+
|
396
|
+
#### Options:
|
397
|
+
|
398
|
+
* **user**: Required. The user name at Puppet forge.
|
399
|
+
* **password**: Required. The Puppet forge password.
|
400
|
+
* **url**: Optional. The forge URL to deploy to. Defaults to https://forgeapi.puppetlabs.com/
|
401
|
+
|
402
|
+
#### Examples:
|
403
|
+
|
404
|
+
dpl --provider=puppetforge --user=puppetlabs --password=s3cr3t
|
data/lib/dpl/provider.rb
CHANGED
@@ -30,6 +30,7 @@ module DPL
|
|
30
30
|
autoload :GAE, 'dpl/provider/gae'
|
31
31
|
autoload :BitBalloon, 'dpl/provider/bitballoon'
|
32
32
|
autoload :ElasticBeanstalk, 'dpl/provider/elastic_beanstalk'
|
33
|
+
autoload :PuppetForge, 'dpl/provider/puppet_forge'
|
33
34
|
|
34
35
|
def self.new(context, options)
|
35
36
|
return super if self < Provider
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module DPL
|
2
|
+
class Provider
|
3
|
+
class PuppetForge < Provider
|
4
|
+
require 'pathname'
|
5
|
+
|
6
|
+
requires 'puppet', :load => 'puppet/face'
|
7
|
+
requires 'puppet-blacksmith', :load => 'puppet_blacksmith'
|
8
|
+
|
9
|
+
def modulefile
|
10
|
+
@modulefile ||= Blacksmith::Modulefile.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def forge
|
14
|
+
@forge ||= Blacksmith::Forge.new(options[:user], options[:password], options[:url])
|
15
|
+
end
|
16
|
+
|
17
|
+
def build
|
18
|
+
pmod = Puppet::Face['module', :current]
|
19
|
+
pmod.build('./')
|
20
|
+
end
|
21
|
+
|
22
|
+
def needs_key?
|
23
|
+
false
|
24
|
+
end
|
25
|
+
|
26
|
+
def check_app
|
27
|
+
modulefile.metadata
|
28
|
+
end
|
29
|
+
|
30
|
+
def check_auth
|
31
|
+
raise Error, "must supply a user" unless option(:user)
|
32
|
+
raise Error, "must supply a password" unless option(:password)
|
33
|
+
end
|
34
|
+
|
35
|
+
def push_app
|
36
|
+
build
|
37
|
+
log "Uploading to Puppet Forge #{forge.username}/#{modulefile.name}"
|
38
|
+
forge.push!(modulefile.name)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'dpl/provider/puppet_forge'
|
3
|
+
require 'puppet/face'
|
4
|
+
require 'puppet_blacksmith'
|
5
|
+
|
6
|
+
describe DPL::Provider::PuppetForge do
|
7
|
+
subject :provider do
|
8
|
+
described_class.new(DummyContext.new, :user => 'puppetlabs', :password => 's3cr3t')
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "forge" do
|
12
|
+
it 'should include the user and password specified' do
|
13
|
+
expect(provider.forge.username).to eq(provider.options[:user])
|
14
|
+
expect(provider.forge.password).to eq(provider.options[:password])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "build" do
|
19
|
+
it 'should use Puppet module tool to build the module' do
|
20
|
+
pmt = double('pmt')
|
21
|
+
expect(::Puppet::Face).to receive(:[]).and_return(pmt)
|
22
|
+
expect(pmt).to receive(:build).with('./')
|
23
|
+
provider.build
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#check_auth" do
|
28
|
+
it 'should require a user' do
|
29
|
+
provider.options.update(:user => nil)
|
30
|
+
expect{ provider.check_auth }.to raise_error("must supply a user")
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should require a password' do
|
34
|
+
provider.options.update(:password => nil)
|
35
|
+
expect{ provider.check_auth }.to raise_error("must supply a password")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "#check_app" do
|
40
|
+
it 'should load module metadata using Blacksmith' do
|
41
|
+
modulefile = double('modulefile')
|
42
|
+
expect(::Blacksmith::Modulefile).to receive(:new).and_return(modulefile)
|
43
|
+
expect(modulefile).to receive(:metadata) { true }
|
44
|
+
provider.check_app
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#push_app" do
|
49
|
+
it 'should use Blacksmith to push to the Forge' do
|
50
|
+
forge = double('forge')
|
51
|
+
expect(provider).to receive(:build).and_return(true)
|
52
|
+
expect(provider).to receive(:modulefile).at_least(:once).and_return(double('modulefile', :name => 'test'))
|
53
|
+
expect(provider).to receive(:log).and_return(true)
|
54
|
+
expect(::Blacksmith::Forge).to receive(:new).and_return(forge)
|
55
|
+
expect(forge).to receive(:push!) { true }
|
56
|
+
expect(forge).to receive(:username) { provider.options[:user] }
|
57
|
+
provider.push_app
|
58
|
+
end
|
59
|
+
end
|
60
|
+
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.7.1.travis.
|
4
|
+
version: 1.7.1.travis.577.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: 2014-10-
|
11
|
+
date: 2014-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- lib/dpl/provider/npm.rb
|
125
125
|
- lib/dpl/provider/openshift.rb
|
126
126
|
- lib/dpl/provider/ops_works.rb
|
127
|
+
- lib/dpl/provider/puppet_forge.rb
|
127
128
|
- lib/dpl/provider/pypi.rb
|
128
129
|
- lib/dpl/provider/releases.rb
|
129
130
|
- lib/dpl/provider/rubygems.rb
|
@@ -155,6 +156,7 @@ files:
|
|
155
156
|
- spec/provider/npm.rb
|
156
157
|
- spec/provider/openshift_spec.rb
|
157
158
|
- spec/provider/ops_works_spec.rb
|
159
|
+
- spec/provider/puppet_forge_spec.rb
|
158
160
|
- spec/provider/pypi_spec.rb
|
159
161
|
- spec/provider/releases_spec.rb
|
160
162
|
- spec/provider/rubygems_spec.rb
|