kennel 1.28.3 → 1.29.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/lib/kennel/importer.rb +1 -0
- data/lib/kennel/syncer.rb +12 -3
- data/lib/kennel/tasks.rb +2 -1
- data/lib/kennel/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51c93416ef68f2df5993139565a6a2e1ff6c160e0af38ccb57c0928466ba985f
|
4
|
+
data.tar.gz: 252bd1d0fc890a1ca09fe53c7b2b5164dbc70f9632c88e35c26d33029c21dbac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9ec881520f6a8dc3198350c36de13a279514241def49f971a58c75ac2bd15bd5e61d9cbb7a24ef54795550ae0b80dcae95f9b49d8ac1ef704ef9c206ab2ff15
|
7
|
+
data.tar.gz: d00d5e206320f24cb7d5dc4e4410186b0d9d09940b98b587488b1b669bef8e4b059a41a23a7f50765d5649721fdb4067e92fa4e5e6501419216c4da9f4d9d900
|
data/lib/kennel/importer.rb
CHANGED
@@ -18,6 +18,7 @@ module Kennel
|
|
18
18
|
|
19
19
|
data = @api.show(model.api_resource, id)
|
20
20
|
data = data[resource.to_sym] || data
|
21
|
+
id = data.fetch(:id) # store numerical id returned from the api
|
21
22
|
model.normalize({}, data)
|
22
23
|
data[:id] = id
|
23
24
|
data[:kennel_id] = "pick_something_descriptive"
|
data/lib/kennel/syncer.rb
CHANGED
@@ -180,9 +180,14 @@ module Kennel
|
|
180
180
|
|
181
181
|
def block_irreversible_partial_updates
|
182
182
|
return unless @project_filter
|
183
|
-
return if @update.none?
|
183
|
+
return if @update.none? do |_, e, _, diff|
|
184
|
+
e.id && diff.any? do |_, field, old, new = nil|
|
185
|
+
TRACKING_FIELDS.include?(field.to_sym) && tracking_value(old) != tracking_value(new)
|
186
|
+
end
|
187
|
+
end
|
184
188
|
raise <<~TEXT
|
185
|
-
Updates with PROJECT= filter should not update #{TRACKING_FIELDS.join("/")} of resources with a set `id:`,
|
189
|
+
Updates with PROJECT= filter should not update tracking id in #{TRACKING_FIELDS.join("/")} of resources with a set `id:`,
|
190
|
+
since this makes them get deleted by a full update.
|
186
191
|
Remove the `id:` to test them out, which will result in a copy being created and later deleted.
|
187
192
|
TEXT
|
188
193
|
end
|
@@ -207,7 +212,11 @@ module Kennel
|
|
207
212
|
end
|
208
213
|
|
209
214
|
def tracking_id(a)
|
210
|
-
a[tracking_field(a)]
|
215
|
+
tracking_value a[tracking_field(a)]
|
216
|
+
end
|
217
|
+
|
218
|
+
def tracking_value(content)
|
219
|
+
content.to_s[/-- Managed by kennel (\S+:\S+)/, 1]
|
211
220
|
end
|
212
221
|
|
213
222
|
def tracking_field(a)
|
data/lib/kennel/tasks.rb
CHANGED
@@ -53,7 +53,8 @@ namespace :kennel do
|
|
53
53
|
desc "Covert existing resources to copy-pastable definitions to import existing resources RESOURCE=dash ID=1234"
|
54
54
|
task import: :environment do
|
55
55
|
resource = ENV["RESOURCE"] || abort("Call with RESOURCE=dash") # TODO: add others
|
56
|
-
id =
|
56
|
+
id = ENV["ID"] || abort("Call with ID=1234")
|
57
|
+
id = Integer(id) if id =~ /^\d+$/ # dashboards can have alphanumeric ids
|
57
58
|
puts Kennel::Importer.new(Kennel.send(:api)).import(resource, id)
|
58
59
|
end
|
59
60
|
|
data/lib/kennel/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kennel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.29.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|