kennel 1.12.0 → 1.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/kennel/syncer.rb +16 -7
- data/lib/kennel/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de90e72ad4a031e9da3725ee093fadb0ab3e683cdcd2167e0d22560b992660d0
|
4
|
+
data.tar.gz: '06971c4f0bb06f8e662b1bd7742f054d3e6fc4a09cf52b040718f4a904ad8e73'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed56533779e791ec3fd21773c7788a1e961d2e05b34b9f9285baefb8ed3eba554d7020a102a856f64d2643d9f48a251a13e936f3aaf7176d9e0c379a3d17e730
|
7
|
+
data.tar.gz: 9d1b27677924dfe3d36f48f0017eceaaf619dbdd5881dd1cde49272df51324baf35793f30e1e98eb50819dc3a57a5629eecec5c7bb612f7b6d22fe219d375f66
|
data/lib/kennel/syncer.rb
CHANGED
@@ -29,19 +29,19 @@ module Kennel
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def update
|
32
|
-
block_irreversible_partial_changes
|
33
|
-
|
34
32
|
@create.each do |_, e|
|
35
33
|
reply = @api.create e.class.api_resource, e.as_json
|
36
34
|
reply = unnest(e.class.api_resource, reply)
|
37
35
|
puts "Created #{e.class.api_resource} #{tracking_id(e.as_json)} #{e.url(reply.fetch(:id))}"
|
38
36
|
end
|
39
37
|
|
38
|
+
block_irreversible_partial_updates
|
40
39
|
@update.each do |id, e|
|
41
40
|
@api.update e.class.api_resource, id, e.as_json
|
42
41
|
puts "Updated #{e.class.api_resource} #{tracking_id(e.as_json)} #{e.url(id)}"
|
43
42
|
end
|
44
43
|
|
44
|
+
block_irreversible_partial_deletes
|
45
45
|
@delete.each do |id, _, a|
|
46
46
|
@api.delete a.fetch(:api_resource), id
|
47
47
|
puts "Deleted #{a.fetch(:api_resource)} #{tracking_id(a)} #{id}"
|
@@ -169,13 +169,22 @@ module Kennel
|
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
172
|
-
def
|
172
|
+
def block_irreversible_partial_updates
|
173
173
|
return unless @project_filter
|
174
|
-
return if
|
175
|
-
|
176
|
-
|
174
|
+
return if @update.none? { |_, e, _, diff| e.id && diff.any? { |_, field| TRACKING_FIELDS.include?(field.to_sym) } }
|
175
|
+
raise <<~TEXT
|
176
|
+
Updates with PROJECT= filter should not update #{TRACKING_FIELDS.join("/")} of resources with a set `id:`, since this makes them get deleted by a full update.
|
177
|
+
Remove the `id:` to test them out, which will result in a copy being created and later deleted.
|
178
|
+
TEXT
|
179
|
+
end
|
177
180
|
|
178
|
-
|
181
|
+
def block_irreversible_partial_deletes
|
182
|
+
return unless @project_filter
|
183
|
+
return if @delete.empty?
|
184
|
+
raise <<~TEXT
|
185
|
+
Deletes with PROJECT= filter should not delete resources, since they could end up deleting things with a fixed `id:`.
|
186
|
+
Run a full update from an updated master branch to delete unwanted resources.
|
187
|
+
TEXT
|
179
188
|
end
|
180
189
|
|
181
190
|
def filter_by_project!(definitions)
|
data/lib/kennel/version.rb
CHANGED