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