librarian-puppet 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjU3NTQyOTU1MGVhOGM2YTllMWFkZjMyNTExNTQ4YmZjOTcyYzNhYQ==
5
- data.tar.gz: !binary |-
6
- ZmExNmU0MmZmYmMxMTkyNzY2ZTRiNjA1ODNkMWY4NGE3NWVhNjk2OQ==
2
+ SHA1:
3
+ metadata.gz: 1984f0b83258ba54c8f1d62a2d6804dd29d75065
4
+ data.tar.gz: e64114a525b0f92e74d4d09277b9f0dd5f76e0c6
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YTljOThjZDE3MDhiYWU5M2U1M2M1MTRiNjk2ZDFlYzcyYWZlM2ZmZmUwNDA3
10
- MTMxZDIzMWNlMjUxNjM2ZDRiNWM0MTRjZjljMDViZjZhMDMyNTI0MGE4YTYy
11
- MTNkZjBkOWFjMzA2ZjBmZmY0Yjk0OGZlY2RkMjk5OTcwY2QzYjE=
12
- data.tar.gz: !binary |-
13
- MTI3ZGVhM2ZhYjg2ZjYyMDI4OTM1OTQ1ODc5NjBhNDYzODhjNjRiYzBhNjU3
14
- NGNlOTQ5N2RiYmYzZGJiNGRmMmY5MTg5YTEyODVjMTAzMTFmZTMyY2E1ZTNh
15
- YjRjYzVlOTZhMGUxMzhmMmQwOGNhMWJlYTVjM2ZiNGM5MmVmMjI=
6
+ metadata.gz: c5a3794a4677ae67769338e469d2eb9c646b1497cdf4b6ef6ad81a11e525350e0e397f7bf8d9a81202e33aa24c311aa6e81f3d400e1eb1729725287aceafd289
7
+ data.tar.gz: afb5509325ef53d0d24334c9ddb3c2607ba35823024a96f1ce285b2306002ea0ba46fcb7a59cb937512c047b131ccd0813c71b0c4966f80819d762f7480e6f8c
data/README.md CHANGED
@@ -250,7 +250,7 @@ Bug reports to the github issue tracker please.
250
250
  Please include:
251
251
 
252
252
  * Relevant `Puppetfile` and `Puppetfile.lock` files
253
- * Version of ruby, librarian-puppet
253
+ * Version of ruby, librarian-puppet, and puppet
254
254
  * What distro
255
255
  * Please run the `librarian-puppet` commands in verbose mode by using the
256
256
  `--verbose` flag, and include the verbose output in the bug report as well.
@@ -1,21 +1,6 @@
1
1
  require 'librarian'
2
2
  require 'fileutils'
3
3
 
4
- out = nil
5
- begin
6
- out = Librarian::Posix.run!(%W{puppet --version})
7
- rescue Librarian::Posix::CommandFailure => error
8
-
9
- $stderr.puts <<-EOF
10
- Unable to load puppet. Please install it using native packages for your platform (eg .deb, .rpm, .dmg, etc).
11
- puppet --version returned #{status.exitstatus}
12
- #{error.message unless error.message.nil?}
13
- EOF
14
- exit 1
15
- end
16
-
17
- PUPPET_VERSION=out.split(' ').first.strip
18
-
19
4
  require 'librarian/puppet/extension'
20
5
  require 'librarian/puppet/version'
21
6
 
@@ -23,5 +8,29 @@ require 'librarian/action/install'
23
8
 
24
9
  module Librarian
25
10
  module Puppet
11
+ @@puppet_version = nil
12
+
13
+ # Output of puppet --version, typically x.y.z
14
+ # For Puppet Enterprise it contains the PE version too, ie. 3.4.3 (Puppet Enterprise 3.2.1)
15
+ def puppet_version
16
+ return @@puppet_version unless @@puppet_version.nil?
17
+
18
+ begin
19
+ @@puppet_version = Librarian::Posix.run!(%W{puppet --version})
20
+ rescue Librarian::Posix::CommandFailure => error
21
+ msg = "Unable to load puppet. Please install it using native packages for your platform (eg .deb, .rpm, .dmg, etc)."
22
+ msg += "\npuppet --version returned #{error.status}"
23
+ msg += "\n#{error.message}" unless error.message.nil?
24
+ $stderr.puts msg
25
+ exit 1
26
+ end
27
+ return @@puppet_version
28
+ end
29
+
30
+ # Puppet version x.y.z translated as a Gem version
31
+ def puppet_gem_version
32
+ Gem::Version.create(puppet_version.split(' ').first.strip.gsub('-', '.'))
33
+ end
34
+
26
35
  end
27
36
  end
@@ -1,4 +1,3 @@
1
- require 'librarian/puppet/util'
2
1
  require 'librarian/puppet/requirement'
3
2
  require 'librarian/puppet/source/path'
4
3
  require 'librarian/puppet/source/git'
@@ -1,5 +1,6 @@
1
1
  require 'json'
2
2
  require 'open-uri'
3
+ require 'librarian/puppet/util'
3
4
 
4
5
  module Librarian
5
6
  module Puppet
@@ -103,9 +104,15 @@ module Librarian
103
104
 
104
105
  target = vendored?(name, version) ? vendored_path(name, version).to_s : name
105
106
 
107
+ # TODO can't pass the default forge url (http://forge.puppetlabs.com) to clients that use the v3 API (https://forgeapi.puppetlabs.com)
108
+ module_repository = source.to_s
109
+ if Forge.client_api_version() > 1 and source =~ %r{^http(s)?://forge\.puppetlabs\.com}
110
+ module_repository = "https://forgeapi.puppetlabs.com"
111
+ warn("Your Puppet client uses the Forge API v3, you should use this Forge URL: #{module_repository}")
112
+ end
106
113
 
107
114
  command = %W{puppet module install --version #{version} --target-dir}
108
- command.push(*[path.to_s, "--module_repository", source.to_s, "--modulepath", path.to_s, "--module_working_dir", path.to_s, "--ignore-dependencies", target])
115
+ command.push(*[path.to_s, "--module_repository", module_repository, "--modulepath", path.to_s, "--module_working_dir", path.to_s, "--ignore-dependencies", target])
109
116
  debug { "Executing puppet module install for #{name} #{version}" }
110
117
 
111
118
  begin
@@ -130,9 +137,8 @@ module Librarian
130
137
 
131
138
  def check_puppet_module_options
132
139
  min_version = Gem::Version.create('2.7.13')
133
- puppet_version = Gem::Version.create(PUPPET_VERSION.gsub('-', '.'))
134
140
 
135
- if puppet_version < min_version
141
+ if Librarian::Puppet.puppet_gem_version < min_version
136
142
  raise Error, "To get modules from the forge, we use the puppet faces module command. For this you need at least puppet version 2.7.13 and you have #{puppet_version}"
137
143
  end
138
144
  end
@@ -220,6 +226,18 @@ module Librarian
220
226
 
221
227
  new(environment, uri, options)
222
228
  end
229
+
230
+ def client_api_version()
231
+ version = 1
232
+ pe_version = Librarian::Puppet.puppet_version.match(/\(Puppet Enterprise (.+)\)/)
233
+
234
+ # Puppet enterprise 3.2.0+ uses api v3
235
+ if pe_version and Gem::Version.create(pe_version[1].strip) >= Gem::Version.create('3.2.0')
236
+ version = 3
237
+ end
238
+ return version
239
+ end
240
+
223
241
  end
224
242
 
225
243
  attr_accessor :environment
@@ -1,3 +1,5 @@
1
+ require 'librarian/puppet/util'
2
+
1
3
  begin
2
4
  require 'puppet'
3
5
  require 'puppet/module_tool'
@@ -1,5 +1,5 @@
1
1
  module Librarian
2
2
  module Puppet
3
- VERSION = "1.0.0"
3
+ VERSION = "1.0.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: librarian-puppet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Sharpe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-08 00:00:00.000000000 Z
11
+ date: 2014-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: librarian
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.1.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.1.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cucumber
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: aruba
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: puppet
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
@@ -126,18 +126,20 @@ dependencies:
126
126
  name: mocha
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ! '>='
136
+ - - '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
- description: ! "Simplify deployment of your Puppet infrastructure by\n automatically
140
- pulling in modules from the forge and git repositories with\n a single command."
139
+ description: |-
140
+ Simplify deployment of your Puppet infrastructure by
141
+ automatically pulling in modules from the forge and git repositories with
142
+ a single command.
141
143
  email:
142
144
  - tim@sharpe.id.au
143
145
  executables:
@@ -175,12 +177,12 @@ require_paths:
175
177
  - lib
176
178
  required_ruby_version: !ruby/object:Gem::Requirement
177
179
  requirements:
178
- - - ! '>='
180
+ - - '>='
179
181
  - !ruby/object:Gem::Version
180
182
  version: '0'
181
183
  required_rubygems_version: !ruby/object:Gem::Requirement
182
184
  requirements:
183
- - - ! '>='
185
+ - - '>='
184
186
  - !ruby/object:Gem::Version
185
187
  version: '0'
186
188
  requirements: []