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 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