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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 06e263461ba824bfa642b5a492fce10890c1b7a9386b3612e3a09a69a0e6024c
4
- data.tar.gz: 2e2230b12e0ea88632081198c0940af261fcf0b790098b359e6380ba2b579d15
3
+ metadata.gz: 51c93416ef68f2df5993139565a6a2e1ff6c160e0af38ccb57c0928466ba985f
4
+ data.tar.gz: 252bd1d0fc890a1ca09fe53c7b2b5164dbc70f9632c88e35c26d33029c21dbac
5
5
  SHA512:
6
- metadata.gz: 5e39237eaa132232d0c71fab0deaf8d75f5247a68d75a65fa072c60e4e754359f9e0a6324bcabacee444553ec919e577b23a9b95bc99bbf317a2e74e2f270c39
7
- data.tar.gz: 44ec8988b73ed92298f71c0a05a98a62c3f0d0b9e7def8e3b11f3b895405eba354b791eb0c0b1f00b84d07d1c6b32793570cf1cce9557a84c5b8ef270d2cc596
6
+ metadata.gz: f9ec881520f6a8dc3198350c36de13a279514241def49f971a58c75ac2bd15bd5e61d9cbb7a24ef54795550ae0b80dcae95f9b49d8ac1ef704ef9c206ab2ff15
7
+ data.tar.gz: d00d5e206320f24cb7d5dc4e4410186b0d9d09940b98b587488b1b669bef8e4b059a41a23a7f50765d5649721fdb4067e92fa4e5e6501419216c4da9f4d9d900
@@ -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? { |_, e, _, diff| e.id && diff.any? { |_, field| TRACKING_FIELDS.include?(field.to_sym) } }
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:`, since this makes them get deleted by a full update.
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)].to_s[/-- Managed by kennel (\S+:\S+)/, 1]
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 = Integer(ENV["ID"] || abort("Call with ID=1234"))
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
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.28.3"
3
+ VERSION = "1.29.0"
4
4
  end
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.28.3
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-01-29 00:00:00.000000000 Z
11
+ date: 2019-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday