rezept 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|