kennel 1.12.0 → 1.12.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/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