inventory_refresh 0.3.1 → 0.3.6
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/.codeclimate.yml +1 -0
- data/.github/CODEOWNERS +1 -0
- data/.travis.yml +2 -2
- data/inventory_refresh.gemspec +4 -2
- data/lib/inventory_refresh/inventory_collection.rb +13 -1
- data/lib/inventory_refresh/inventory_collection/helpers/questions_helper.rb +2 -2
- data/lib/inventory_refresh/persister.rb +30 -14
- data/lib/inventory_refresh/version.rb +1 -1
- metadata +42 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c45babbc585f12693544de305f05e4011e1e3ef7ccb4d3fb1dd306d17d8814b2
|
4
|
+
data.tar.gz: 8512e2e81eb065b5ddd486ab5a53e1ca0e2c09f7fa426fa82ffbeab12dc322ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f41ba870e4a66782549e2a6baae960281ec2604c70633d37ef993b013ac3201b887a4346c68d277167b4b5d688986d95a937e9934d9b1dd3057939644fc3eed4
|
7
|
+
data.tar.gz: f8a1644db501c32caebe8f7fa5eea9602b3a140180e822b1abe941676b654595743fe9f87ec73574a4a842a7b2373ada8aba325c17667eeb159b55f27ebf799d
|
data/.codeclimate.yml
CHANGED
data/.github/CODEOWNERS
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
* @agrare @Fryguy @Ladas @slemrmartin
|
data/.travis.yml
CHANGED
data/inventory_refresh.gemspec
CHANGED
@@ -23,13 +23,15 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
25
|
spec.add_dependency "activerecord", "~> 5.0"
|
26
|
-
spec.add_dependency "more_core_extensions", "
|
26
|
+
spec.add_dependency "more_core_extensions", ">=3.5", "< 5"
|
27
27
|
spec.add_dependency "pg", "> 0"
|
28
28
|
|
29
29
|
spec.add_development_dependency "ancestry"
|
30
|
-
spec.add_development_dependency "bundler", "~> 2.0
|
30
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
31
31
|
spec.add_development_dependency "factory_bot", "~> 4.11.1"
|
32
32
|
spec.add_development_dependency "rake", "~> 10.0"
|
33
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
34
|
+
spec.add_development_dependency "rubocop"
|
35
|
+
spec.add_development_dependency "rubocop-performance"
|
34
36
|
spec.add_development_dependency "simplecov"
|
35
37
|
end
|
@@ -342,13 +342,25 @@ module InventoryRefresh
|
|
342
342
|
#
|
343
343
|
# @return [Array<Symbol>] attributes that are needed for saving of the record
|
344
344
|
def fixed_attributes
|
345
|
+
not_null_attributes = []
|
346
|
+
|
345
347
|
if model_class
|
348
|
+
# Attrs having presence validator
|
346
349
|
presence_validators = model_class.validators.detect { |x| x.kind_of?(ActiveRecord::Validations::PresenceValidator) }
|
350
|
+
not_null_attributes += presence_validators.attributes if presence_validators.present?
|
351
|
+
|
352
|
+
# Column names having NOT NULL constraint
|
353
|
+
non_null_constraints = model_class.columns_hash.values.reject(&:null).map(&:name) - [model_class.primary_key]
|
354
|
+
not_null_attributes += non_null_constraints.map(&:to_sym)
|
355
|
+
|
356
|
+
# Column names having NOT NULL constraint transformed to relation names
|
357
|
+
not_null_attributes += non_null_constraints.map {|x| foreign_key_to_association_mapping[x]}.compact
|
347
358
|
end
|
348
359
|
# Attributes that has to be always on the entity, so attributes making unique index of the record + attributes
|
349
360
|
# that have presence validation
|
361
|
+
|
350
362
|
fixed_attributes = manager_ref
|
351
|
-
fixed_attributes +=
|
363
|
+
fixed_attributes += not_null_attributes.uniq
|
352
364
|
fixed_attributes
|
353
365
|
end
|
354
366
|
|
@@ -52,7 +52,7 @@ module InventoryRefresh
|
|
52
52
|
|
53
53
|
# @return [Boolean] true if the model_class supports STI
|
54
54
|
def supports_sti?
|
55
|
-
@supports_sti_cache = model_class
|
55
|
+
@supports_sti_cache = model_class&.column_names.to_a.include?("type") if @supports_sti_cache.nil?
|
56
56
|
@supports_sti_cache
|
57
57
|
end
|
58
58
|
|
@@ -62,7 +62,7 @@ module InventoryRefresh
|
|
62
62
|
@supported_cols_cache ||= {}
|
63
63
|
return @supported_cols_cache[column_name.to_sym] unless @supported_cols_cache[column_name.to_sym].nil?
|
64
64
|
|
65
|
-
include_col = model_class
|
65
|
+
include_col = model_class&.column_names.to_a.include?(column_name.to_s)
|
66
66
|
if %w(created_on created_at updated_on updated_at).include?(column_name.to_s)
|
67
67
|
include_col &&= ActiveRecord::Base.record_timestamps
|
68
68
|
end
|
@@ -5,7 +5,10 @@ module InventoryRefresh
|
|
5
5
|
|
6
6
|
attr_reader :manager, :collections
|
7
7
|
|
8
|
-
attr_accessor :refresh_state_uuid, :refresh_state_part_uuid, :total_parts, :sweep_scope, :retry_count, :retry_max
|
8
|
+
attr_accessor :refresh_state_uuid, :refresh_state_part_uuid, :refresh_time_tracking, :total_parts, :sweep_scope, :retry_count, :retry_max
|
9
|
+
attr_accessor :persister_started_at, :persister_finished_at,
|
10
|
+
:refresh_state_part_collected_at, :refresh_state_part_sent_at,
|
11
|
+
:refresh_state_started_at, :refresh_state_sent_at, :ingress_api_sent_at
|
9
12
|
|
10
13
|
# @param manager [ManageIQ::Providers::BaseManager] A manager object
|
11
14
|
def initialize(manager)
|
@@ -13,6 +16,8 @@ module InventoryRefresh
|
|
13
16
|
|
14
17
|
@collections = {}
|
15
18
|
|
19
|
+
self.persister_started_at = Time.now.utc.to_datetime.to_s
|
20
|
+
|
16
21
|
initialize_inventory_collections
|
17
22
|
end
|
18
23
|
|
@@ -105,13 +110,19 @@ module InventoryRefresh
|
|
105
110
|
end.compact
|
106
111
|
|
107
112
|
{
|
108
|
-
:refresh_state_uuid
|
109
|
-
:refresh_state_part_uuid
|
110
|
-
:
|
111
|
-
:
|
112
|
-
:
|
113
|
-
:
|
114
|
-
:
|
113
|
+
:refresh_state_uuid => refresh_state_uuid,
|
114
|
+
:refresh_state_part_uuid => refresh_state_part_uuid,
|
115
|
+
:refresh_state_part_collected_at => refresh_state_part_collected_at,
|
116
|
+
:refresh_state_part_sent_at => refresh_state_part_sent_at,
|
117
|
+
:refresh_state_started_at => refresh_state_started_at,
|
118
|
+
:refresh_state_sent_at => refresh_state_sent_at,
|
119
|
+
:ingress_api_sent_at => ingress_api_sent_at,
|
120
|
+
:refresh_time_tracking => refresh_time_tracking,
|
121
|
+
:retry_count => retry_count,
|
122
|
+
:retry_max => retry_max,
|
123
|
+
:total_parts => total_parts,
|
124
|
+
:sweep_scope => sweep_scope_to_hash(sweep_scope),
|
125
|
+
:collections => collections_data,
|
115
126
|
}
|
116
127
|
end
|
117
128
|
|
@@ -137,12 +148,17 @@ module InventoryRefresh
|
|
137
148
|
inventory_collection.from_hash(collection, persister.collections)
|
138
149
|
end
|
139
150
|
|
140
|
-
persister.refresh_state_uuid
|
141
|
-
persister.refresh_state_part_uuid
|
142
|
-
persister.
|
143
|
-
persister.
|
144
|
-
persister.
|
145
|
-
persister.
|
151
|
+
persister.refresh_state_uuid = persister_data['refresh_state_uuid']
|
152
|
+
persister.refresh_state_part_uuid = persister_data['refresh_state_part_uuid']
|
153
|
+
persister.refresh_state_part_collected_at = persister_data['refresh_state_part_collected_at']
|
154
|
+
persister.refresh_state_part_sent_at = persister_data['refresh_state_part_sent_at']
|
155
|
+
persister.refresh_state_started_at = persister_data['refresh_state_started_at']
|
156
|
+
persister.refresh_state_sent_at = persister_data['refresh_state_sent_at']
|
157
|
+
persister.ingress_api_sent_at = persister_data['ingress_api_sent_at']
|
158
|
+
persister.retry_count = persister_data['retry_count']
|
159
|
+
persister.retry_max = persister_data['retry_max']
|
160
|
+
persister.total_parts = persister_data['total_parts']
|
161
|
+
persister.sweep_scope = sweep_scope_from_hash(persister_data['sweep_scope'], persister.collections)
|
146
162
|
end
|
147
163
|
end
|
148
164
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inventory_refresh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ManageIQ Developers
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -28,16 +28,22 @@ dependencies:
|
|
28
28
|
name: more_core_extensions
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3.5'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '5'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
|
-
- - "
|
41
|
+
- - ">="
|
39
42
|
- !ruby/object:Gem::Version
|
40
43
|
version: '3.5'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '5'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: pg
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +78,14 @@ dependencies:
|
|
72
78
|
requirements:
|
73
79
|
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.0
|
81
|
+
version: '2.0'
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.0
|
88
|
+
version: '2.0'
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: factory_bot
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +128,34 @@ dependencies:
|
|
122
128
|
- - "~>"
|
123
129
|
- !ruby/object:Gem::Version
|
124
130
|
version: '3.0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubocop
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: rubocop-performance
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
125
159
|
- !ruby/object:Gem::Dependency
|
126
160
|
name: simplecov
|
127
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,6 +177,7 @@ extensions: []
|
|
143
177
|
extra_rdoc_files: []
|
144
178
|
files:
|
145
179
|
- ".codeclimate.yml"
|
180
|
+
- ".github/CODEOWNERS"
|
146
181
|
- ".gitignore"
|
147
182
|
- ".rspec"
|
148
183
|
- ".rspec_ci"
|
@@ -221,8 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
256
|
- !ruby/object:Gem::Version
|
222
257
|
version: '0'
|
223
258
|
requirements: []
|
224
|
-
|
225
|
-
rubygems_version: 2.7.6.2
|
259
|
+
rubygems_version: 3.1.3
|
226
260
|
signing_key:
|
227
261
|
specification_version: 4
|
228
262
|
summary: Topological Inventory Persister
|