inventory_refresh 0.3.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +25 -30
  3. data/.github/workflows/ci.yaml +47 -0
  4. data/.rubocop.yml +3 -3
  5. data/.rubocop_cc.yml +3 -4
  6. data/.rubocop_local.yml +5 -2
  7. data/.whitesource +3 -0
  8. data/CHANGELOG.md +19 -0
  9. data/Gemfile +10 -4
  10. data/README.md +1 -2
  11. data/Rakefile +2 -2
  12. data/inventory_refresh.gemspec +9 -10
  13. data/lib/inventory_refresh/application_record_iterator.rb +25 -12
  14. data/lib/inventory_refresh/graph/topological_sort.rb +24 -26
  15. data/lib/inventory_refresh/graph.rb +2 -2
  16. data/lib/inventory_refresh/inventory_collection/builder.rb +37 -15
  17. data/lib/inventory_refresh/inventory_collection/data_storage.rb +9 -0
  18. data/lib/inventory_refresh/inventory_collection/helpers/initialize_helper.rb +147 -38
  19. data/lib/inventory_refresh/inventory_collection/helpers/questions_helper.rb +49 -5
  20. data/lib/inventory_refresh/inventory_collection/index/proxy.rb +35 -3
  21. data/lib/inventory_refresh/inventory_collection/index/type/base.rb +8 -0
  22. data/lib/inventory_refresh/inventory_collection/index/type/local_db.rb +2 -0
  23. data/lib/inventory_refresh/inventory_collection/index/type/skeletal.rb +1 -0
  24. data/lib/inventory_refresh/inventory_collection/reference.rb +1 -0
  25. data/lib/inventory_refresh/inventory_collection/references_storage.rb +17 -0
  26. data/lib/inventory_refresh/inventory_collection/scanner.rb +91 -3
  27. data/lib/inventory_refresh/inventory_collection/serialization.rb +16 -10
  28. data/lib/inventory_refresh/inventory_collection.rb +122 -64
  29. data/lib/inventory_refresh/inventory_object.rb +74 -40
  30. data/lib/inventory_refresh/inventory_object_lazy.rb +17 -10
  31. data/lib/inventory_refresh/null_logger.rb +2 -2
  32. data/lib/inventory_refresh/persister.rb +31 -65
  33. data/lib/inventory_refresh/save_collection/base.rb +4 -2
  34. data/lib/inventory_refresh/save_collection/saver/base.rb +114 -15
  35. data/lib/inventory_refresh/save_collection/saver/batch.rb +17 -0
  36. data/lib/inventory_refresh/save_collection/saver/concurrent_safe_batch.rb +129 -51
  37. data/lib/inventory_refresh/save_collection/saver/default.rb +57 -0
  38. data/lib/inventory_refresh/save_collection/saver/partial_upsert_helper.rb +2 -19
  39. data/lib/inventory_refresh/save_collection/saver/retention_helper.rb +68 -3
  40. data/lib/inventory_refresh/save_collection/saver/sql_helper.rb +125 -0
  41. data/lib/inventory_refresh/save_collection/saver/sql_helper_update.rb +10 -6
  42. data/lib/inventory_refresh/save_collection/saver/sql_helper_upsert.rb +28 -16
  43. data/lib/inventory_refresh/save_collection/sweeper.rb +17 -93
  44. data/lib/inventory_refresh/save_collection/topological_sort.rb +5 -5
  45. data/lib/inventory_refresh/save_inventory.rb +5 -12
  46. data/lib/inventory_refresh/target.rb +73 -0
  47. data/lib/inventory_refresh/target_collection.rb +92 -0
  48. data/lib/inventory_refresh/version.rb +1 -1
  49. data/lib/inventory_refresh.rb +2 -0
  50. metadata +42 -39
  51. data/.travis.yml +0 -23
  52. data/lib/inventory_refresh/exception.rb +0 -8
metadata CHANGED
@@ -1,43 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inventory_refresh
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-02 00:00:00.000000000 Z
11
+ date: 2022-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5.0'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5.0'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: more_core_extensions
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
32
38
  - !ruby/object:Gem::Version
33
39
  version: '3.5'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '5'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
47
+ - - ">="
39
48
  - !ruby/object:Gem::Version
40
49
  version: '3.5'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '5'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: pg
43
55
  requirement: !ruby/object:Gem::Requirement
@@ -95,75 +107,61 @@ dependencies:
95
107
  - !ruby/object:Gem::Version
96
108
  version: 4.11.1
97
109
  - !ruby/object:Gem::Dependency
98
- name: rake
110
+ name: manageiq-style
99
111
  requirement: !ruby/object:Gem::Requirement
100
112
  requirements:
101
- - - "~>"
113
+ - - ">="
102
114
  - !ruby/object:Gem::Version
103
- version: '10.0'
115
+ version: '0'
104
116
  type: :development
105
117
  prerelease: false
106
118
  version_requirements: !ruby/object:Gem::Requirement
107
119
  requirements:
108
- - - "~>"
120
+ - - ">="
109
121
  - !ruby/object:Gem::Version
110
- version: '10.0'
122
+ version: '0'
111
123
  - !ruby/object:Gem::Dependency
112
- name: rspec
124
+ name: rake
113
125
  requirement: !ruby/object:Gem::Requirement
114
126
  requirements:
115
127
  - - "~>"
116
128
  - !ruby/object:Gem::Version
117
- version: '3.0'
129
+ version: '10.0'
118
130
  type: :development
119
131
  prerelease: false
120
132
  version_requirements: !ruby/object:Gem::Requirement
121
133
  requirements:
122
134
  - - "~>"
123
135
  - !ruby/object:Gem::Version
124
- version: '3.0'
125
- - !ruby/object:Gem::Dependency
126
- name: rubocop
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
136
+ version: '10.0'
139
137
  - !ruby/object:Gem::Dependency
140
- name: rubocop-performance
138
+ name: rspec
141
139
  requirement: !ruby/object:Gem::Requirement
142
140
  requirements:
143
- - - ">="
141
+ - - "~>"
144
142
  - !ruby/object:Gem::Version
145
- version: '0'
143
+ version: '3.0'
146
144
  type: :development
147
145
  prerelease: false
148
146
  version_requirements: !ruby/object:Gem::Requirement
149
147
  requirements:
150
- - - ">="
148
+ - - "~>"
151
149
  - !ruby/object:Gem::Version
152
- version: '0'
150
+ version: '3.0'
153
151
  - !ruby/object:Gem::Dependency
154
152
  name: simplecov
155
153
  requirement: !ruby/object:Gem::Requirement
156
154
  requirements:
157
155
  - - ">="
158
156
  - !ruby/object:Gem::Version
159
- version: '0'
157
+ version: 0.21.2
160
158
  type: :development
161
159
  prerelease: false
162
160
  version_requirements: !ruby/object:Gem::Requirement
163
161
  requirements:
164
162
  - - ">="
165
163
  - !ruby/object:Gem::Version
166
- version: '0'
164
+ version: 0.21.2
167
165
  description: Topological Inventory Persister
168
166
  email:
169
167
  executables: []
@@ -172,13 +170,14 @@ extra_rdoc_files: []
172
170
  files:
173
171
  - ".codeclimate.yml"
174
172
  - ".github/CODEOWNERS"
173
+ - ".github/workflows/ci.yaml"
175
174
  - ".gitignore"
176
175
  - ".rspec"
177
176
  - ".rspec_ci"
178
177
  - ".rubocop.yml"
179
178
  - ".rubocop_cc.yml"
180
179
  - ".rubocop_local.yml"
181
- - ".travis.yml"
180
+ - ".whitesource"
182
181
  - ".yamllint"
183
182
  - CHANGELOG.md
184
183
  - Gemfile
@@ -193,7 +192,6 @@ files:
193
192
  - lib/inventory_refresh.rb
194
193
  - lib/inventory_refresh/application_record_iterator.rb
195
194
  - lib/inventory_refresh/application_record_reference.rb
196
- - lib/inventory_refresh/exception.rb
197
195
  - lib/inventory_refresh/graph.rb
198
196
  - lib/inventory_refresh/graph/topological_sort.rb
199
197
  - lib/inventory_refresh/inventory_collection.rb
@@ -221,7 +219,9 @@ files:
221
219
  - lib/inventory_refresh/persister.rb
222
220
  - lib/inventory_refresh/save_collection/base.rb
223
221
  - lib/inventory_refresh/save_collection/saver/base.rb
222
+ - lib/inventory_refresh/save_collection/saver/batch.rb
224
223
  - lib/inventory_refresh/save_collection/saver/concurrent_safe_batch.rb
224
+ - lib/inventory_refresh/save_collection/saver/default.rb
225
225
  - lib/inventory_refresh/save_collection/saver/partial_upsert_helper.rb
226
226
  - lib/inventory_refresh/save_collection/saver/retention_helper.rb
227
227
  - lib/inventory_refresh/save_collection/saver/sql_helper.rb
@@ -230,11 +230,14 @@ files:
230
230
  - lib/inventory_refresh/save_collection/sweeper.rb
231
231
  - lib/inventory_refresh/save_collection/topological_sort.rb
232
232
  - lib/inventory_refresh/save_inventory.rb
233
+ - lib/inventory_refresh/target.rb
234
+ - lib/inventory_refresh/target_collection.rb
233
235
  - lib/inventory_refresh/version.rb
234
236
  homepage: https://github.com/ManageIQ/inventory_refresh
235
237
  licenses:
236
238
  - Apache-2.0
237
- metadata: {}
239
+ metadata:
240
+ rubygems_mfa_required: 'true'
238
241
  post_install_message:
239
242
  rdoc_options: []
240
243
  require_paths:
@@ -250,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
250
253
  - !ruby/object:Gem::Version
251
254
  version: '0'
252
255
  requirements: []
253
- rubygems_version: 3.1.2
256
+ rubygems_version: 3.3.5
254
257
  signing_key:
255
258
  specification_version: 4
256
259
  summary: Topological Inventory Persister
data/.travis.yml DELETED
@@ -1,23 +0,0 @@
1
- dist: xenial
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.7
7
- - 2.6.5
8
- addons:
9
- postgresql: '10'
10
- env:
11
- global:
12
- - CC_TEST_REPORTER_ID=1ef1a3a3d007395b11083d634a6fdac1e3d979b6428c39d2cd8d58556cdd68f7
13
- before_install:
14
- - gem install bundler -v 2.0.1
15
- - psql -c "CREATE USER root SUPERUSER PASSWORD 'smartvm';" -U postgres
16
- before_script:
17
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
18
- > ./cc-test-reporter
19
- - chmod +x ./cc-test-reporter
20
- - "./cc-test-reporter before-build"
21
- - bundle exec rake spec:setup
22
- after_script:
23
- - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
@@ -1,8 +0,0 @@
1
- module InventoryRefresh
2
- module Exception
3
- class SweeperError < StandardError; end
4
- class SweeperNonExistentScopeKeyFoundError < SweeperError; end
5
- class SweeperNonUniformScopeKeyFoundError < SweeperError; end
6
- class SweeperScopeBadFormat < SweeperError; end
7
- end
8
- end