mixlib-install 0.8.0.alpha.0 → 0.8.0.alpha.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 +4 -4
- data/PRODUCT_MATRIX.md +20 -0
- data/Rakefile +19 -0
- data/acceptance/Gemfile.lock +5 -3
- data/acceptance/current/.acceptance/acceptance-cookbook/.gitignore +2 -0
- data/acceptance/current/.acceptance/acceptance-cookbook/recipes/destroy.rb +1 -1
- data/acceptance/current/.acceptance/acceptance-cookbook/recipes/verify.rb +1 -1
- data/lib/mixlib/install/product.rb +264 -0
- data/lib/mixlib/install/version.rb +1 -1
- metadata +5 -4
- data/acceptance/.gitignore +0 -2
- data/acceptance/current/.acceptance/acceptance-cookbook/.chef/config.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fabcb72fdaa90f9d22728c896b821671af560e3
|
4
|
+
data.tar.gz: 6f21894be53ccb12f66ff61c9df76c772c479683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97ace41631a3b9707d825e9b046f561f00a55c625f77f91775aa2db82e91c7f535c265254ef8f528a8fbcc09a77f3f1f59e986170fc40bf99e9e3fbe9d894cc7
|
7
|
+
data.tar.gz: f3effede4eebd11083b94dc884eb0e7995e75fb6f06a1517cefc9416fe6f2036cd3340dc9e8c30c0ce5cd8c32cdd700169d0152186288358d089c75536308b34
|
data/PRODUCT_MATRIX.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
| Product | Product Key |
|
2
|
+
| ------- | ------------ |
|
3
|
+
| Analytics Platform | analytics |
|
4
|
+
| Chef Client | chef |
|
5
|
+
| Chef Server High Availability addon | chef-ha |
|
6
|
+
| Chef Cloud Marketplace addon | chef-marketplace |
|
7
|
+
| Chef Server | chef-server |
|
8
|
+
| Chef Server Replication addon | chef-sync |
|
9
|
+
| Chef Development Kit | chefdk |
|
10
|
+
| Chef Compliance | compliance |
|
11
|
+
| Delivery | delivery |
|
12
|
+
| Delivery CLI | delivery-cli |
|
13
|
+
| Management Console | manage |
|
14
|
+
| Enterprise Chef (legacy) | private-chef |
|
15
|
+
| Chef Push Server | push-client |
|
16
|
+
| Chef Push Server | push-server |
|
17
|
+
| Chef Server Reporting addon | reporting |
|
18
|
+
| Supermarket | supermarket |
|
19
|
+
|
20
|
+
Do not modify this file manually. It is automatically rendered via a rake task.
|
data/Rakefile
CHANGED
@@ -17,3 +17,22 @@ end
|
|
17
17
|
|
18
18
|
desc "Run all tests"
|
19
19
|
task test: [:rubocop, :spec]
|
20
|
+
|
21
|
+
desc "Render product matrix documentation"
|
22
|
+
task "matrix" do
|
23
|
+
require "mixlib/install/product"
|
24
|
+
|
25
|
+
doc_file = File.join(File.dirname(__FILE__), "PRODUCT_MATRIX.md")
|
26
|
+
puts "Updating doc file at: #{doc_file}"
|
27
|
+
|
28
|
+
File.open(doc_file, "w+") do |f|
|
29
|
+
f.puts("| Product | Product Key |")
|
30
|
+
f.puts("| ------- | ------------ |")
|
31
|
+
PRODUCT_MATRIX.products.sort.each do |p_key|
|
32
|
+
product = PRODUCT_MATRIX.lookup(p_key)
|
33
|
+
f.puts("| #{product.product_name} | #{p_key} |")
|
34
|
+
end
|
35
|
+
f.puts("")
|
36
|
+
f.puts("Do not modify this file manually. It is automatically rendered via a rake task.")
|
37
|
+
end
|
38
|
+
end
|
data/acceptance/Gemfile.lock
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/chef/chef-acceptance.git
|
3
|
-
revision:
|
3
|
+
revision: e28d67891b0359af83836ec55c91eb07e8b062d1
|
4
4
|
specs:
|
5
5
|
chef-acceptance (0.2.0)
|
6
6
|
thor (~> 0.19)
|
@@ -20,18 +20,20 @@ GIT
|
|
20
20
|
PATH
|
21
21
|
remote: ../
|
22
22
|
specs:
|
23
|
-
mixlib-install (0.8.0)
|
23
|
+
mixlib-install (0.8.0.alpha.0)
|
24
24
|
artifactory (~> 2.3.0)
|
25
|
+
mixlib-versioning (~> 1.1.0)
|
25
26
|
|
26
27
|
GEM
|
27
28
|
remote: https://rubygems.org/
|
28
29
|
specs:
|
29
|
-
artifactory (2.3.
|
30
|
+
artifactory (2.3.2)
|
30
31
|
coderay (1.1.0)
|
31
32
|
kitchen-vagrant (0.19.0)
|
32
33
|
test-kitchen (~> 1.4)
|
33
34
|
method_source (0.8.2)
|
34
35
|
mixlib-shellout (2.2.3)
|
36
|
+
mixlib-versioning (1.1.0)
|
35
37
|
net-scp (1.2.1)
|
36
38
|
net-ssh (>= 2.6.5)
|
37
39
|
net-ssh (2.9.2)
|
@@ -0,0 +1,264 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright (c) 2015 Chef, Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require "mixlib/versioning"
|
19
|
+
|
20
|
+
module Mixlib
|
21
|
+
class Install
|
22
|
+
class Product
|
23
|
+
def initialize(&block)
|
24
|
+
instance_eval(&block)
|
25
|
+
end
|
26
|
+
|
27
|
+
DSL_PROPERTIES = [
|
28
|
+
:config_file,
|
29
|
+
:ctl_command,
|
30
|
+
:package_name,
|
31
|
+
:product_name
|
32
|
+
]
|
33
|
+
|
34
|
+
#
|
35
|
+
# DSL methods can receive either a String or a Proc to calculate the
|
36
|
+
# value of the property later on based on the version.
|
37
|
+
# We error out if we get both the String and Proc, and we return the value
|
38
|
+
# of the property if we do not receive anything.
|
39
|
+
#
|
40
|
+
# @param [String] prop_string
|
41
|
+
# value to be set in String form
|
42
|
+
# @param [Proc] block
|
43
|
+
# value to be set in Proc form
|
44
|
+
#
|
45
|
+
# @return [String] value of the property
|
46
|
+
#
|
47
|
+
DSL_PROPERTIES.each do |prop|
|
48
|
+
define_method prop do |prop_string = nil, &block|
|
49
|
+
if block.nil?
|
50
|
+
if prop_string.nil?
|
51
|
+
value = instance_variable_get("@#{prop}".to_sym)
|
52
|
+
return nil if value.nil?
|
53
|
+
|
54
|
+
if value.is_a? String
|
55
|
+
value
|
56
|
+
else
|
57
|
+
value.call(version_for(version))
|
58
|
+
end
|
59
|
+
else
|
60
|
+
instance_variable_set("@#{prop}".to_sym, prop_string)
|
61
|
+
end
|
62
|
+
else
|
63
|
+
raise "Can not use String and Proc at the same time for #{prop}." if !prop_string.nil?
|
64
|
+
instance_variable_set("@#{prop}".to_sym, block)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
#
|
70
|
+
# Sets or retrieves the version for the product. This is used later
|
71
|
+
# when we are reading the value of a property if a Proc is specified
|
72
|
+
#
|
73
|
+
def version(value = nil)
|
74
|
+
if value.nil?
|
75
|
+
@version
|
76
|
+
else
|
77
|
+
@version = value
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
#
|
82
|
+
# Helper method to convert versions from String to Mixlib::Version
|
83
|
+
#
|
84
|
+
# @param [String] version_string
|
85
|
+
# value to be set in String form
|
86
|
+
#
|
87
|
+
# @return [Mixlib::Version]
|
88
|
+
def version_for(version_string)
|
89
|
+
Mixlib::Versioning.parse(version_string)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
class ProductMatrix
|
94
|
+
def initialize(&block)
|
95
|
+
@product_map = {}
|
96
|
+
instance_eval(&block)
|
97
|
+
end
|
98
|
+
|
99
|
+
#
|
100
|
+
# The only DSL method of this class. It creates a Product with given
|
101
|
+
# `key` and stores it.
|
102
|
+
#
|
103
|
+
def product(key, &block)
|
104
|
+
@product_map[key] = Product.new(&block)
|
105
|
+
end
|
106
|
+
|
107
|
+
#
|
108
|
+
# Fetches the keys of available products.
|
109
|
+
#
|
110
|
+
# @return Array[String] of keys
|
111
|
+
def products
|
112
|
+
@product_map.keys
|
113
|
+
end
|
114
|
+
|
115
|
+
#
|
116
|
+
# Looks up a product and sets version on it to be used later by the
|
117
|
+
# Product.
|
118
|
+
#
|
119
|
+
# @param [String] key
|
120
|
+
# Lookup key of the product.
|
121
|
+
# @param [String] version
|
122
|
+
# Version to be set for the product. By default version is set to :latest
|
123
|
+
#
|
124
|
+
# @return [Product]
|
125
|
+
def lookup(key, version = :latest)
|
126
|
+
product = @product_map[key]
|
127
|
+
# We set the lookup version for the product to a very high number in
|
128
|
+
# order to mimic :latest so that one does not need to handle this
|
129
|
+
# symbol explicitly when constructing logic based on version numbers.
|
130
|
+
version = "1000.1000.1000" if version.to_sym == :latest
|
131
|
+
product.version(version)
|
132
|
+
product
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
#
|
139
|
+
# If you are making a change to PRODUCT_MATRIX, please make sure
|
140
|
+
# you run `bundle exec rake matrix` at the home of this repository
|
141
|
+
# to update PRODUCT_MATRIX.md.
|
142
|
+
#
|
143
|
+
PRODUCT_MATRIX = Mixlib::Install::ProductMatrix.new do
|
144
|
+
# Products in alphabetical order
|
145
|
+
|
146
|
+
product "analytics" do
|
147
|
+
product_name "Analytics Platform"
|
148
|
+
package_name "opscode-analytics"
|
149
|
+
ctl_command "opscode-analytics-ctl"
|
150
|
+
config_file "/etc/opscode-analytics/opscode-analytics.rb"
|
151
|
+
end
|
152
|
+
|
153
|
+
product "chef" do
|
154
|
+
product_name "Chef Client"
|
155
|
+
package_name "chef"
|
156
|
+
end
|
157
|
+
|
158
|
+
product "chef-ha" do
|
159
|
+
product_name "Chef Server High Availability addon"
|
160
|
+
package_name "chef-ha"
|
161
|
+
config_file "/etc/opscode/chef-server.rb"
|
162
|
+
end
|
163
|
+
|
164
|
+
product "chef-marketplace" do
|
165
|
+
product_name "Chef Cloud Marketplace addon"
|
166
|
+
package_name "chef-marketplace"
|
167
|
+
ctl_command "chef-marketplace-ctl"
|
168
|
+
config_file "/etc/chef-marketplace/marketplace.rb"
|
169
|
+
end
|
170
|
+
|
171
|
+
product "chef-server" do
|
172
|
+
product_name "Chef Server"
|
173
|
+
package_name do |v|
|
174
|
+
if (v < version_for("12.0.0")) && (v > version_for("11.0.0"))
|
175
|
+
"chef-server"
|
176
|
+
else
|
177
|
+
"chef-server-core"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
ctl_command "chef-server-ctl"
|
181
|
+
config_file "/etc/opscode/chef-server.rb"
|
182
|
+
end
|
183
|
+
|
184
|
+
product "chef-sync" do
|
185
|
+
product_name "Chef Server Replication addon"
|
186
|
+
package_name "chef-sync"
|
187
|
+
ctl_command "chef-sync-ctl"
|
188
|
+
config_file "/etc/chef-sync/chef-sync.rb"
|
189
|
+
end
|
190
|
+
|
191
|
+
product "chefdk" do
|
192
|
+
product_name "Chef Development Kit"
|
193
|
+
package_name "chefdk"
|
194
|
+
end
|
195
|
+
|
196
|
+
product "compliance" do
|
197
|
+
product_name "Chef Compliance"
|
198
|
+
package_name "chef-compliance"
|
199
|
+
ctl_command "chef-compliance-ctl"
|
200
|
+
config_file "/etc/chef-compliance/chef-compliance.rb"
|
201
|
+
end
|
202
|
+
|
203
|
+
product "delivery" do
|
204
|
+
product_name "Delivery"
|
205
|
+
package_name "delivery"
|
206
|
+
ctl_command "delivery-ctl"
|
207
|
+
config_file "/etc/delivery/delivery.rb"
|
208
|
+
end
|
209
|
+
|
210
|
+
product "delivery-cli" do
|
211
|
+
product_name "Delivery CLI"
|
212
|
+
package_name "delivery-cli"
|
213
|
+
end
|
214
|
+
|
215
|
+
product "manage" do
|
216
|
+
product_name "Management Console"
|
217
|
+
package_name do |v|
|
218
|
+
v < version_for("2.0.0") ? "opscode-manage" : "chef-manage"
|
219
|
+
end
|
220
|
+
ctl_command do |v|
|
221
|
+
v < version_for("2.0.0") ? "opscode-manage-ctl" : "chef-manage-ctl"
|
222
|
+
end
|
223
|
+
config_file "/etc/opscode-manage/manage.rb"
|
224
|
+
end
|
225
|
+
|
226
|
+
product "private-chef" do
|
227
|
+
product_name "Enterprise Chef (legacy)"
|
228
|
+
package_name "private-chef"
|
229
|
+
ctl_command "private-chef-ctl"
|
230
|
+
config_file "/etc/opscode/private-chef.rb"
|
231
|
+
end
|
232
|
+
|
233
|
+
product "push-client" do
|
234
|
+
product_name "Chef Push Server"
|
235
|
+
package_name do |v|
|
236
|
+
v < version_for("1.3.0") ? "opscode-push-jobs-client" : "push-jobs-client"
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
product "push-server" do
|
241
|
+
product_name "Chef Push Server"
|
242
|
+
package_name do |v|
|
243
|
+
v < version_for("2.0.0") ? "opscode-push-jobs-server" : "push-jobs-server"
|
244
|
+
end
|
245
|
+
ctl_command do |v|
|
246
|
+
v < version_for("2.0.0") ? "opscode-push-jobs-server-ctl" : "push-jobs-server-ctl"
|
247
|
+
end
|
248
|
+
config_file "/etc/opscode-push-jobs-server/opscode-push-jobs-server.rb"
|
249
|
+
end
|
250
|
+
|
251
|
+
product "reporting" do
|
252
|
+
product_name "Chef Server Reporting addon"
|
253
|
+
package_name "opscode-reporting"
|
254
|
+
ctl_command "opscode-reporting-ctl"
|
255
|
+
config_file "/etc/opscode-reporting/opscode-reporting.rb"
|
256
|
+
end
|
257
|
+
|
258
|
+
product "supermarket" do
|
259
|
+
product_name "Supermarket"
|
260
|
+
package_name "supermarket"
|
261
|
+
ctl_command "supermarket-ctl"
|
262
|
+
config_file "/etc/supermarket/supermarket.json"
|
263
|
+
end
|
264
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mixlib-install
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.0.alpha.
|
4
|
+
version: 0.8.0.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thom May
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-12-
|
12
|
+
date: 2015-12-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: artifactory
|
@@ -110,12 +110,12 @@ files:
|
|
110
110
|
- CONTRIBUTING.md
|
111
111
|
- Gemfile
|
112
112
|
- LICENSE
|
113
|
+
- PRODUCT_MATRIX.md
|
113
114
|
- README.md
|
114
115
|
- Rakefile
|
115
|
-
- acceptance/.gitignore
|
116
116
|
- acceptance/Gemfile
|
117
117
|
- acceptance/Gemfile.lock
|
118
|
-
- acceptance/current/.acceptance/acceptance-cookbook/.
|
118
|
+
- acceptance/current/.acceptance/acceptance-cookbook/.gitignore
|
119
119
|
- acceptance/current/.acceptance/acceptance-cookbook/metadata.rb
|
120
120
|
- acceptance/current/.acceptance/acceptance-cookbook/recipes/destroy.rb
|
121
121
|
- acceptance/current/.acceptance/acceptance-cookbook/recipes/provision.rb
|
@@ -134,6 +134,7 @@ files:
|
|
134
134
|
- lib/mixlib/install/generator/bourne/scripts/install_package.sh
|
135
135
|
- lib/mixlib/install/generator/bourne/scripts/platform_detection.sh
|
136
136
|
- lib/mixlib/install/options.rb
|
137
|
+
- lib/mixlib/install/product.rb
|
137
138
|
- lib/mixlib/install/script_generator.rb
|
138
139
|
- lib/mixlib/install/util.rb
|
139
140
|
- lib/mixlib/install/version.rb
|
data/acceptance/.gitignore
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
cookbook_path File.join(File.dirname(__FILE__), '..', '..')
|