rezept 0.3.1 → 0.4.0
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 +3 -0
- data/README.md +10 -9
- data/lib/rezept/actions.rb +47 -38
- data/lib/rezept/cli.rb +1 -0
- data/lib/rezept/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c8f3eb27e65563acbbbc617cbc141b5a19de137
|
4
|
+
data.tar.gz: e3c70945a590294ec954ea1f9eb4bea2246ee404
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f47d7fc0f2ddee9603e8e109b5a6aaf742efbb50a0419ca03409f3559d6095f2ecf3f6937931d2fb2c446b59ff6a03f3c38577080718f0468ae8b46f23c66cf
|
7
|
+
data.tar.gz: dc976d2d4c1403574e6b534fd452aa6e72a1ce83255d3f6479032d3b491d36649ab1341f4f1eee7272da8ff06f8cac307b3865d82772c8eb8287bfa0efbae4c1
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -22,7 +22,7 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
## Usage
|
24
24
|
|
25
|
-
|
25
|
+
### General
|
26
26
|
|
27
27
|
```
|
28
28
|
$ rezept
|
@@ -42,7 +42,7 @@ Options:
|
|
42
42
|
# Default: true
|
43
43
|
```
|
44
44
|
|
45
|
-
|
45
|
+
### apply
|
46
46
|
Apply the documents
|
47
47
|
|
48
48
|
```
|
@@ -51,6 +51,7 @@ Usage:
|
|
51
51
|
rezept apply
|
52
52
|
|
53
53
|
Options:
|
54
|
+
[--prefix=PREFIX] # The prefix of the documents (All documents are targeted by default)
|
54
55
|
[--dry-run], [--no-dry-run] # Dry run (Only output the difference)
|
55
56
|
-f, [--file=FILE] # Configuration file
|
56
57
|
# Default: Docfile
|
@@ -61,7 +62,7 @@ Options:
|
|
61
62
|
# Default: true
|
62
63
|
```
|
63
64
|
|
64
|
-
|
65
|
+
### convert
|
65
66
|
Convert the documents to the other format
|
66
67
|
|
67
68
|
```
|
@@ -83,7 +84,7 @@ Options:
|
|
83
84
|
# Default: true
|
84
85
|
```
|
85
86
|
|
86
|
-
|
87
|
+
### export
|
87
88
|
Export the documents
|
88
89
|
|
89
90
|
```
|
@@ -103,7 +104,7 @@ Options:
|
|
103
104
|
# Default: true
|
104
105
|
```
|
105
106
|
|
106
|
-
|
107
|
+
### run_command
|
107
108
|
Run the commands
|
108
109
|
|
109
110
|
```
|
@@ -133,7 +134,7 @@ Options:
|
|
133
134
|
- If you specify multiple values to `tags` and `parameters`, separate them with commas(`,`).
|
134
135
|
- When you use the `wait` option, the exit code will be `0` if the commands succeed on the all instances, else it will be `1`.
|
135
136
|
|
136
|
-
|
137
|
+
### put_inventory
|
137
138
|
Put the inventory
|
138
139
|
|
139
140
|
```
|
@@ -158,7 +159,7 @@ Options:
|
|
158
159
|
|
159
160
|
## Advanced methods
|
160
161
|
|
161
|
-
|
162
|
+
### Script styled commands (__script)
|
162
163
|
|
163
164
|
- Docfile
|
164
165
|
|
@@ -212,7 +213,7 @@ Document Type: 'Command'
|
|
212
213
|
}
|
213
214
|
```
|
214
215
|
|
215
|
-
|
216
|
+
### Commands from the other script file (__script_file)
|
216
217
|
|
217
218
|
- Docfile
|
218
219
|
|
@@ -270,7 +271,7 @@ Document Type: 'Command'
|
|
270
271
|
}
|
271
272
|
```
|
272
273
|
|
273
|
-
|
274
|
+
### Templating
|
274
275
|
|
275
276
|
- Docfile
|
276
277
|
|
data/lib/rezept/actions.rb
CHANGED
@@ -36,7 +36,53 @@ module Rezept
|
|
36
36
|
@converter.set_options(options)
|
37
37
|
@client.set_options(options)
|
38
38
|
dry_run = options['dry_run'] ? '[Dry run] ' : ''
|
39
|
-
|
39
|
+
local = @converter.dslfile_to_h(options['file'])
|
40
|
+
remote = @client.get_documents
|
41
|
+
|
42
|
+
unless options['prefix'].nil?
|
43
|
+
prefix = Regexp.new("^#{Regexp.escape(options['prefix'])}")
|
44
|
+
local.reject!{|d| not d['name'] =~ prefix }
|
45
|
+
remote.reject!{|d| not d['name'] =~ prefix }
|
46
|
+
end
|
47
|
+
|
48
|
+
_apply_docs(local, remote, dry_run)
|
49
|
+
end
|
50
|
+
|
51
|
+
def _apply_docs(local, remote, dry_run)
|
52
|
+
local.each do |l|
|
53
|
+
l_ids = l.delete('account_ids')
|
54
|
+
r_ids = []
|
55
|
+
r = _choice_by_name(remote, l['name'])
|
56
|
+
|
57
|
+
if r.nil?
|
58
|
+
info("#{dry_run}Create the new document #{l['name'].inspect}")
|
59
|
+
@client.create_document(l) if dry_run.empty?
|
60
|
+
else
|
61
|
+
r_ids = r.delete('account_ids')
|
62
|
+
diff = Rezept::Utils.diff(@converter, r, l)
|
63
|
+
|
64
|
+
if diff == "\n"
|
65
|
+
info("#{dry_run}No changes '#{l['name']}'")
|
66
|
+
else
|
67
|
+
warn("#{dry_run}Update the document #{l['name'].inspect}")
|
68
|
+
STDERR.puts diff
|
69
|
+
@client.version_up_document(l) if dry_run.empty?
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
add_ids = l_ids - r_ids
|
74
|
+
del_ids = r_ids - l_ids
|
75
|
+
info("#{dry_run}Add permission of #{l['name'].inspect} to #{add_ids.join(', ')}") if add_ids.length > 0
|
76
|
+
warn("#{dry_run}Remove permission of #{l['name'].inspect} from #{add_ids.join(', ')}") if del_ids.length > 0
|
77
|
+
@client.modify_document_permission(l, add_ids, del_ids) if dry_run.empty?
|
78
|
+
end
|
79
|
+
|
80
|
+
remote.each do |r|
|
81
|
+
if _choice_by_name(local, r['name']).nil?
|
82
|
+
warn("#{dry_run}Delete the document #{r['name'].inspect}")
|
83
|
+
@client.delete_document(r) if dry_run.empty?
|
84
|
+
end
|
85
|
+
end
|
40
86
|
end
|
41
87
|
|
42
88
|
def convert(options)
|
@@ -219,43 +265,6 @@ module Rezept
|
|
219
265
|
exit(1) if failure
|
220
266
|
end
|
221
267
|
|
222
|
-
def _apply_docs(local, remote, dry_run)
|
223
|
-
local.each do |l|
|
224
|
-
l_ids = l.delete('account_ids')
|
225
|
-
r_ids = []
|
226
|
-
r = _choice_by_name(remote, l['name'])
|
227
|
-
|
228
|
-
if r.nil?
|
229
|
-
info("#{dry_run}Create the new document #{l['name'].inspect}")
|
230
|
-
@client.create_document(l) if dry_run.empty?
|
231
|
-
else
|
232
|
-
r_ids = r.delete('account_ids')
|
233
|
-
diff = Rezept::Utils.diff(@converter, r, l)
|
234
|
-
|
235
|
-
if diff == "\n"
|
236
|
-
info("#{dry_run}No changes '#{l['name']}'")
|
237
|
-
else
|
238
|
-
warn("#{dry_run}Update the document #{l['name'].inspect}")
|
239
|
-
STDERR.puts diff
|
240
|
-
@client.version_up_document(l) if dry_run.empty?
|
241
|
-
end
|
242
|
-
end
|
243
|
-
|
244
|
-
add_ids = l_ids - r_ids
|
245
|
-
del_ids = r_ids - l_ids
|
246
|
-
info("#{dry_run}Add permission of #{l['name'].inspect} to #{add_ids.join(', ')}") if add_ids.length > 0
|
247
|
-
warn("#{dry_run}Remove permission of #{l['name'].inspect} from #{add_ids.join(', ')}") if del_ids.length > 0
|
248
|
-
@client.modify_document_permission(l, add_ids, del_ids) if dry_run.empty?
|
249
|
-
end
|
250
|
-
|
251
|
-
remote.each do |r|
|
252
|
-
if _choice_by_name(local, r['name']).nil?
|
253
|
-
warn("#{dry_run}Delete the document #{r['name'].inspect}")
|
254
|
-
@client.delete_document(r) if dry_run.empty?
|
255
|
-
end
|
256
|
-
end
|
257
|
-
end
|
258
|
-
|
259
268
|
def _choice_by_name(docs, name)
|
260
269
|
docs.each do |d|
|
261
270
|
return d if d['name'] == name
|
data/lib/rezept/cli.rb
CHANGED
@@ -23,6 +23,7 @@ module Rezept
|
|
23
23
|
end
|
24
24
|
|
25
25
|
desc "apply", "Apply the documents"
|
26
|
+
option :prefix, desc: 'The prefix of the documents (All documents are targeted by default)', type: :string
|
26
27
|
option :dry_run, desc: 'Dry run (Only output the difference)', type: :boolean, default: false
|
27
28
|
def apply
|
28
29
|
@actions.apply(options)
|
data/lib/rezept/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rezept
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Serverworks Co.,Ltd.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|