batali 0.2.6 → 0.2.8
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/CHANGELOG.md +5 -0
- data/README.md +116 -0
- data/batali.gemspec +1 -1
- data/bin/batali +1 -0
- data/lib/batali/command/resolve.rb +3 -3
- data/lib/batali/command.rb +3 -1
- data/lib/batali/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e09935acfcbc04835f428e88c65c46d5effbc164
|
4
|
+
data.tar.gz: 5d9b81aacd71727b823947a744a050962908e197
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfa3f9193ac35a32b7d467d4f46dbc687c67e944f8ae0ffc95d5ca952d8613a93dde468af54a7310004677ed177cb78f44f581f6135c53899b64ad4e60af60c6
|
7
|
+
data.tar.gz: 05a5d1eff7e95a0b584a52f1a3e2ca38a17511a17dd5641f8256a8627027368e9db748df7be50b9078f6f43f2819ab0abcbc96a472b8fbe76915c095fe2b2565
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -202,6 +202,122 @@ $ batali resolve --infrastructure
|
|
202
202
|
|
203
203
|
_NOTE: Depending on constraints defined within the Batali file, this can be a very large manifest_
|
204
204
|
|
205
|
+
#### Uploading infrastructure cookbooks
|
206
|
+
|
207
|
+
When the infrastructure cookbooks are installed locally, the cookbook directories will have
|
208
|
+
the version number as a suffix. This can cause a problem when attempting to run:
|
209
|
+
|
210
|
+
```
|
211
|
+
$ knife cookbook upload --all
|
212
|
+
```
|
213
|
+
|
214
|
+
due to knife using the directory name as the actual cookbook name. To get around this problem
|
215
|
+
the `upload` command can be used directly with the correct options enabled. These options must
|
216
|
+
be defined within the config file as the options are not accessible via CLI flags. Assuming
|
217
|
+
a `.chef/knife.rb` file exists:
|
218
|
+
|
219
|
+
```ruby
|
220
|
+
# .chef/knife.rb
|
221
|
+
|
222
|
+
versioned_cookbooks true
|
223
|
+
```
|
224
|
+
|
225
|
+
```
|
226
|
+
$ knife upload cookbooks
|
227
|
+
```
|
228
|
+
|
229
|
+
### Display outdated cookbooks
|
230
|
+
|
231
|
+
Want to see what cookbooks have newer versions available within the defined constraints? Use
|
232
|
+
the dry run option to see what upgrades are available without actually changing the manifest:
|
233
|
+
|
234
|
+
```
|
235
|
+
$ batali resolve --no-least-impact --dry-run
|
236
|
+
```
|
237
|
+
|
238
|
+
## Configuration
|
239
|
+
|
240
|
+
Batali can be configured via the `.batali` file. The contents of the file can be in YAML,
|
241
|
+
JSON, XML, or Ruby. Every option displayed via the help call can be set within this file.
|
242
|
+
The configuration can hold items isolated within a command's name, or defined at the top
|
243
|
+
level of the configuration file. For example:
|
244
|
+
|
245
|
+
```ruby
|
246
|
+
Configuration.new do
|
247
|
+
debug true
|
248
|
+
resolve do
|
249
|
+
debug false
|
250
|
+
end
|
251
|
+
end
|
252
|
+
```
|
253
|
+
|
254
|
+
This configuration turns debug output on for all commands _except_ the resolve command.
|
255
|
+
This feature is handy in situations where multiple commands may have the same flag that
|
256
|
+
should always be enabled, like the `infrastructure` flag:
|
257
|
+
|
258
|
+
```ruby
|
259
|
+
Configuration.new do
|
260
|
+
infrastructure true
|
261
|
+
end
|
262
|
+
```
|
263
|
+
|
264
|
+
When flags on the CLI contain a dash, they are referenced within the configuration file
|
265
|
+
as an underscore. For example the least impact flag on the CLI looks like:
|
266
|
+
|
267
|
+
```
|
268
|
+
--least-impact
|
269
|
+
```
|
270
|
+
|
271
|
+
and the key in the configuration looks like:
|
272
|
+
|
273
|
+
```
|
274
|
+
least_impact
|
275
|
+
```
|
276
|
+
|
277
|
+
### Example configurations
|
278
|
+
|
279
|
+
#### Ruby
|
280
|
+
|
281
|
+
```ruby
|
282
|
+
Configuration.new do
|
283
|
+
infrastructure true
|
284
|
+
resolve do
|
285
|
+
least_impact false
|
286
|
+
end
|
287
|
+
end
|
288
|
+
```
|
289
|
+
|
290
|
+
#### JSON
|
291
|
+
|
292
|
+
```json
|
293
|
+
{
|
294
|
+
"infrastructure": true,
|
295
|
+
"resolve": {
|
296
|
+
"least_impact": false
|
297
|
+
}
|
298
|
+
}
|
299
|
+
```
|
300
|
+
|
301
|
+
#### YAML
|
302
|
+
|
303
|
+
```yaml
|
304
|
+
---
|
305
|
+
:infrastructure: true
|
306
|
+
:resolve:
|
307
|
+
:least_impact: false
|
308
|
+
```
|
309
|
+
|
310
|
+
#### XML
|
311
|
+
|
312
|
+
```xml
|
313
|
+
<configuration>
|
314
|
+
<infrastructure>true</infrastructure>
|
315
|
+
<resolve>
|
316
|
+
<least_impact>false</least_impact>
|
317
|
+
</resolve>
|
318
|
+
</configuration>
|
319
|
+
```
|
320
|
+
|
205
321
|
## Test Kitchen
|
206
322
|
|
207
323
|
Batali can be used with [Test Kitchen](https://github.com/test-kitchen/test-kitchen):
|
data/batali.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.add_runtime_dependency 'attribute_struct', '~> 0.2.14'
|
14
14
|
s.add_runtime_dependency 'grimoire', '~> 0.2.1'
|
15
15
|
s.add_runtime_dependency 'bogo', '~> 0.1.18'
|
16
|
-
s.add_runtime_dependency 'bogo-cli', '~> 0.1.
|
16
|
+
s.add_runtime_dependency 'bogo-cli', '~> 0.1.18'
|
17
17
|
s.add_runtime_dependency 'bogo-config', '~> 0.1.10'
|
18
18
|
s.add_runtime_dependency 'bogo-ui', '~> 0.1.6'
|
19
19
|
s.add_runtime_dependency 'http', '~> 0.8.2'
|
data/bin/batali
CHANGED
@@ -21,6 +21,7 @@ Bogo::Cli::Setup.define do
|
|
21
21
|
self.instance_exec(&global_opts)
|
22
22
|
on :d, 'dry-run', 'Print changes'
|
23
23
|
on :p, 'path', 'Cookbook install path'
|
24
|
+
on :I, 'infrastructure', 'Resolve infrastructure cookbooks'
|
24
25
|
run do |opts, args|
|
25
26
|
Batali::Command::Install.new({:install => opts.to_hash}, args).execute!
|
26
27
|
end
|
@@ -29,7 +29,7 @@ module Batali
|
|
29
29
|
:system => system,
|
30
30
|
:score_keeper => score_keeper
|
31
31
|
)
|
32
|
-
if(
|
32
|
+
if(config[:infrastructure])
|
33
33
|
infrastructure_resolution(solv)
|
34
34
|
else
|
35
35
|
single_path_resolution(solv)
|
@@ -40,7 +40,7 @@ module Batali
|
|
40
40
|
def score_keeper
|
41
41
|
memoize(:score_keeper) do
|
42
42
|
sk_manifest = Manifest.new(:cookbook => manifest.cookbook)
|
43
|
-
unless(
|
43
|
+
unless(config[:least_impact])
|
44
44
|
sk_manifest.cookbook.clear
|
45
45
|
end
|
46
46
|
sk_manifest.cookbook.delete_if do |unit|
|
@@ -62,7 +62,7 @@ module Batali
|
|
62
62
|
]
|
63
63
|
ui.info 'Performing single path resolution.'
|
64
64
|
if(manifest.infrastructure)
|
65
|
-
ui.
|
65
|
+
ui.confirm 'Current manifest is resolved for infrastucture. Convert to single path?'
|
66
66
|
end
|
67
67
|
results = []
|
68
68
|
run_action 'Resolving dependency constraints' do
|
data/lib/batali/command.rb
CHANGED
@@ -5,6 +5,8 @@ module Batali
|
|
5
5
|
# Customized command base for Batali
|
6
6
|
class Command < Bogo::Cli::Command
|
7
7
|
|
8
|
+
DEFAULT_CONFIGURATION_FILES = ['.batali']
|
9
|
+
|
8
10
|
include Bogo::Memoization
|
9
11
|
|
10
12
|
autoload :Configure, 'batali/command/configure'
|
@@ -44,7 +46,7 @@ module Batali
|
|
44
46
|
# @return [String] path to local cache
|
45
47
|
def cache_directory(*args)
|
46
48
|
memoize(['cache_directory', *args].join('_')) do
|
47
|
-
directory = config.fetch(:cache_directory, '/
|
49
|
+
directory = config.fetch(:cache_directory, File.expand_path('~/.batali/cache'))
|
48
50
|
ui.debug "Cache directory to persist cookbooks: #{directory}"
|
49
51
|
unless(args.empty?)
|
50
52
|
directory = File.join(directory, *args.map(&:to_s))
|
data/lib/batali/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: batali
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: attribute_struct
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.1.
|
61
|
+
version: 0.1.18
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.1.
|
68
|
+
version: 0.1.18
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bogo-config
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|