topological_inventory-core 1.1.3 → 1.1.8
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/README.md +1 -1
- data/app/models/refresh_state.rb +2 -0
- data/app/models/refresh_state_part.rb +2 -0
- data/db/migrate/20200421141934_add_source_updated_at.rb +5 -0
- data/db/migrate/20200505101547_add_forwardable_headers_remove_request_id_on_task.rb +11 -0
- data/db/migrate/20200811154716_add_index_to_refresh_state_parts.rb +6 -0
- data/db/schema.rb +5 -2
- data/lib/topological_inventory/core/version.rb +1 -1
- data/lib/topological_inventory/schema/default.rb +14 -12
- metadata +38 -16
- data/app/assets/config/topological_inventory_manifest.js +0 -2
- data/app/assets/javascripts/topological_inventory/application.js +0 -13
- data/app/assets/stylesheets/topological_inventory/application.css +0 -15
- data/app/controllers/topological_inventory/application_controller.rb +0 -5
- data/app/helpers/topological_inventory/application_helper.rb +0 -4
- data/app/jobs/topological_inventory/application_job.rb +0 -4
- data/app/mailers/topological_inventory/application_mailer.rb +0 -6
- data/app/views/layouts/topological_inventory/application.html.erb +0 -14
- data/config/database.yml +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e695f0361b4d66ec73f345609275c5184d882b283471b963a802502a3f474bfb
|
4
|
+
data.tar.gz: d3b514bb133871100ec4003041c1605ec203498c9fe995df50260e520324e037
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfe84074032bf678982d41a3c86c6db7e97981035930a65c533944e8d7fe1a1409e7db7adb6aa2e6045f6f3fc4451ac817c0491b7a17a3810156f702f479fe2e
|
7
|
+
data.tar.gz: f794a8cae67dc978d1b1e538734243421c23b6e39497347fed8f785a61252cb5aa5b82f93bfb4ea7a56b95d35db289eb156c00c345500907af1fbc48070a4ec4
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Topological Inventory Core
|
2
2
|
|
3
3
|
[](https://travis-ci.org/RedHatInsights/topological_inventory-core)
|
4
4
|
[](https://codeclimate.com/github/RedHatInsights/topological_inventory-core/maintainability)
|
data/app/models/refresh_state.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
class AddForwardableHeadersRemoveRequestIdOnTask < ActiveRecord::Migration[5.2]
|
2
|
+
def up
|
3
|
+
add_column :tasks, :forwardable_headers, :jsonb
|
4
|
+
remove_column :tasks, :x_rh_insights_request
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
add_column :tasks, :x_rh_insights_request, :string
|
9
|
+
remove_column :tasks, :forwardable_headers
|
10
|
+
end
|
11
|
+
end
|
data/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
13
|
+
ActiveRecord::Schema.define(version: 2020_08_11_154716) do
|
14
14
|
|
15
15
|
# These are extensions that must be enabled in order to support this database
|
16
16
|
enable_extension "plpgsql"
|
@@ -622,6 +622,7 @@ ActiveRecord::Schema.define(version: 2020_04_28_090420) do
|
|
622
622
|
t.datetime "updated_at", null: false
|
623
623
|
t.index ["refresh_state_id", "uuid"], name: "index_refresh_state_parts_on_refresh_state_id_and_uuid", unique: true
|
624
624
|
t.index ["tenant_id"], name: "index_refresh_state_parts_on_tenant_id"
|
625
|
+
t.index ["uuid"], name: "index_refresh_state_parts_on_uuid"
|
625
626
|
end
|
626
627
|
|
627
628
|
create_table "refresh_states", force: :cascade do |t|
|
@@ -639,6 +640,7 @@ ActiveRecord::Schema.define(version: 2020_04_28_090420) do
|
|
639
640
|
t.datetime "finished_at"
|
640
641
|
t.index ["source_id", "uuid"], name: "index_refresh_states_on_source_id_and_uuid", unique: true
|
641
642
|
t.index ["tenant_id"], name: "index_refresh_states_on_tenant_id"
|
643
|
+
t.index ["uuid"], name: "index_refresh_states_on_uuid"
|
642
644
|
end
|
643
645
|
|
644
646
|
create_table "reservation_tags", id: :serial, force: :cascade do |t|
|
@@ -1190,7 +1192,7 @@ ActiveRecord::Schema.define(version: 2020_04_28_090420) do
|
|
1190
1192
|
t.string "target_source_ref"
|
1191
1193
|
t.string "target_type"
|
1192
1194
|
t.bigint "source_id"
|
1193
|
-
t.
|
1195
|
+
t.jsonb "forwardable_headers"
|
1194
1196
|
t.index ["source_id"], name: "index_tasks_on_source_id"
|
1195
1197
|
t.index ["target_type", "target_source_ref"], name: "index_tasks_on_target_type_and_target_source_ref"
|
1196
1198
|
t.index ["tenant_id"], name: "index_tasks_on_tenant_id"
|
@@ -1328,6 +1330,7 @@ ActiveRecord::Schema.define(version: 2020_04_28_090420) do
|
|
1328
1330
|
t.bigint "orchestration_stack_id"
|
1329
1331
|
t.bigint "subscription_id"
|
1330
1332
|
t.bigint "refresh_state_part_id"
|
1333
|
+
t.datetime "source_updated_at"
|
1331
1334
|
t.index ["archived_at"], name: "index_volumes_on_archived_at"
|
1332
1335
|
t.index ["last_seen_at"], name: "index_volumes_on_last_seen_at"
|
1333
1336
|
t.index ["orchestration_stack_id"], name: "index_volumes_on_orchestration_stack_id"
|
@@ -151,14 +151,15 @@ module TopologicalInventory
|
|
151
151
|
service_instance_tasks_update_by_activerecord(tasks_collection, source, src_refs)
|
152
152
|
end
|
153
153
|
|
154
|
-
def task_update_values(svc_instance_id, source_ref, external_url, status, task_status, finished_timestamp, source_id)
|
154
|
+
def task_update_values(svc_instance_id, source_ref, external_url, status, artifacts, task_status, finished_timestamp, archived_timestamp, source_id)
|
155
155
|
{
|
156
|
-
:state
|
157
|
-
:status
|
156
|
+
:state => finished_timestamp.blank? && archived_timestamp.blank? ? 'running' : 'completed',
|
157
|
+
:status => task_status,
|
158
158
|
:context => {
|
159
159
|
:service_instance => {
|
160
160
|
:id => svc_instance_id,
|
161
161
|
:job_status => status,
|
162
|
+
:artifacts => artifacts,
|
162
163
|
:source_id => source_id,
|
163
164
|
:source_ref => source_ref,
|
164
165
|
:url => external_url
|
@@ -172,18 +173,18 @@ module TopologicalInventory
|
|
172
173
|
service_instances = ServiceInstance.where(:source_id => source.id, :source_ref => svc_instances_source_ref)
|
173
174
|
tasks_by_source_ref = Task.where(:state => 'running', :target_type => 'ServiceInstance', :source_id => source.id, :target_source_ref => service_instances.pluck(:source_ref)).index_by(&:target_source_ref)
|
174
175
|
|
175
|
-
service_instances.select(:id, :external_url, :source_ref, :extra).find_in_batches do |group|
|
176
|
+
service_instances.select(:id, :archived_at, :external_url, :source_ref, :extra).find_in_batches do |group|
|
176
177
|
ActiveRecord::Base.transaction do
|
177
178
|
group.each do |svc_instance|
|
178
179
|
next if (task = tasks_by_source_ref[svc_instance.source_ref]).nil?
|
179
180
|
|
180
|
-
values = task_update_values(svc_instance.id, svc_instance.source_ref, svc_instance.external_url, svc_instance.extra['status'], svc_instance.extra['task_status'], svc_instance.extra['finished'], source.id)
|
181
|
+
values = task_update_values(svc_instance.id, svc_instance.source_ref, svc_instance.external_url, svc_instance.extra['status'], svc_instance.extra['artifacts'], svc_instance.extra['task_status'], svc_instance.extra['finished'], svc_instance.archived_at, source.id)
|
181
182
|
# 1) Updating Task
|
182
183
|
task.update(values)
|
183
184
|
|
184
185
|
# 2) Saving to updated records (will be published in Kafka)
|
185
186
|
# - see topological_inventory-persister:Workflow.send_task_updates_to_queue!
|
186
|
-
tasks_collection.updated_records << values.merge(:id => task.id, :
|
187
|
+
tasks_collection.updated_records << values.merge(:id => task.id, :forwardable_headers => task.forwardable_headers)
|
187
188
|
end
|
188
189
|
end
|
189
190
|
end
|
@@ -198,19 +199,20 @@ module TopologicalInventory
|
|
198
199
|
|
199
200
|
# Load saved service instances (IDs needed)
|
200
201
|
svc_instances_values = ServiceInstance.where(:source_ref => tasks_source_ref)
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
202
|
+
.pluck(:id, :archived_at, :external_url, :source_ref,
|
203
|
+
Arel.sql("extra->'finished'"),
|
204
|
+
Arel.sql("extra->'status'"),
|
205
|
+
Arel.sql("extra->'task_status'"),
|
206
|
+
Arel.sql("extra->'artifacts'"))
|
205
207
|
return if svc_instances_values.blank?
|
206
208
|
|
207
209
|
sql_update_values = []
|
208
210
|
|
209
211
|
# Preparing SQL update values from loaded ServiceInstances
|
210
212
|
svc_instances_values.each do |attrs|
|
211
|
-
id, external_url, source_ref, finished_timestamp, status, task_status = attrs[0], attrs[1], attrs[2], attrs[3], attrs[4], attrs[5]
|
213
|
+
id, archived_at, external_url, source_ref, finished_timestamp, status, task_status, artifacts = attrs[0], attrs[1], attrs[2], attrs[3], attrs[4], attrs[5], attrs[6], attrs[7]
|
212
214
|
|
213
|
-
values = task_update_values(id, external_url, status, task_status, finished_timestamp)
|
215
|
+
values = task_update_values(id, source_ref, external_url, status, artifacts, task_status, finished_timestamp, archived_at, source.id)
|
214
216
|
sql_update_values << "('#{source_ref}', '#{values[:state]}', '#{values[:status]}', '#{values[:context].to_json}'::json)"
|
215
217
|
end
|
216
218
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: topological_inventory-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Grare
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: acts_as_tenant
|
@@ -136,20 +136,48 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '3.8'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.69.0
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.69.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop-performance
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.3'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.3'
|
139
167
|
- !ruby/object:Gem::Dependency
|
140
168
|
name: simplecov
|
141
169
|
requirement: !ruby/object:Gem::Requirement
|
142
170
|
requirements:
|
143
|
-
- - "
|
171
|
+
- - "~>"
|
144
172
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
173
|
+
version: 0.17.1
|
146
174
|
type: :development
|
147
175
|
prerelease: false
|
148
176
|
version_requirements: !ruby/object:Gem::Requirement
|
149
177
|
requirements:
|
150
|
-
- - "
|
178
|
+
- - "~>"
|
151
179
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
180
|
+
version: 0.17.1
|
153
181
|
- !ruby/object:Gem::Dependency
|
154
182
|
name: webmock
|
155
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,13 +202,6 @@ files:
|
|
174
202
|
- LICENSE.txt
|
175
203
|
- README.md
|
176
204
|
- Rakefile
|
177
|
-
- app/assets/config/topological_inventory_manifest.js
|
178
|
-
- app/assets/javascripts/topological_inventory/application.js
|
179
|
-
- app/assets/stylesheets/topological_inventory/application.css
|
180
|
-
- app/controllers/topological_inventory/application_controller.rb
|
181
|
-
- app/helpers/topological_inventory/application_helper.rb
|
182
|
-
- app/jobs/topological_inventory/application_job.rb
|
183
|
-
- app/mailers/topological_inventory/application_mailer.rb
|
184
205
|
- app/models/application_record.rb
|
185
206
|
- app/models/availability.rb
|
186
207
|
- app/models/cluster.rb
|
@@ -247,9 +268,7 @@ files:
|
|
247
268
|
- app/models/volume.rb
|
248
269
|
- app/models/volume_attachment.rb
|
249
270
|
- app/models/volume_type.rb
|
250
|
-
- app/views/layouts/topological_inventory/application.html.erb
|
251
271
|
- config/database.dev.yml
|
252
|
-
- config/database.yml
|
253
272
|
- db/migrate/20180919170553_add_sources_and_endpoints.rb
|
254
273
|
- db/migrate/20180927171624_add_container_models.rb
|
255
274
|
- db/migrate/20180927205317_add_service_catalog_models.rb
|
@@ -354,7 +373,10 @@ files:
|
|
354
373
|
- db/migrate/20200317082640_add_tracking_timestamps_to_refresh_state.rb
|
355
374
|
- db/migrate/20200403114310_add_target_and_source_to_task.rb
|
356
375
|
- db/migrate/20200414123737_extract_tasks_source_ref_from_context.rb
|
376
|
+
- db/migrate/20200421141934_add_source_updated_at.rb
|
357
377
|
- db/migrate/20200428090420_add_request_id_to_task.rb
|
378
|
+
- db/migrate/20200505101547_add_forwardable_headers_remove_request_id_on_task.rb
|
379
|
+
- db/migrate/20200811154716_add_index_to_refresh_state_parts.rb
|
358
380
|
- db/schema.rb
|
359
381
|
- db/seeds.rb
|
360
382
|
- lib/tasks/topological_inventory_tasks.rake
|
@@ -386,7 +408,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
386
408
|
- !ruby/object:Gem::Version
|
387
409
|
version: '0'
|
388
410
|
requirements: []
|
389
|
-
rubygems_version: 3.0.
|
411
|
+
rubygems_version: 3.0.3
|
390
412
|
signing_key:
|
391
413
|
specification_version: 4
|
392
414
|
summary: Core Models and Schema for the Topological Inventory Service.
|
@@ -1,13 +0,0 @@
|
|
1
|
-
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
-
// listed below.
|
3
|
-
//
|
4
|
-
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
-
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
-
//
|
7
|
-
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
-
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
9
|
-
//
|
10
|
-
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
-
// about supported directives.
|
12
|
-
//
|
13
|
-
//= require_tree .
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
-
* listed below.
|
4
|
-
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
-
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
-
*
|
8
|
-
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
-
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
-
* It is generally better to create a new file per style scope.
|
12
|
-
*
|
13
|
-
*= require_tree .
|
14
|
-
*= require_self
|
15
|
-
*/
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>Topological inventory</title>
|
5
|
-
<%= stylesheet_link_tag "topological_inventory/application", media: "all" %>
|
6
|
-
<%= javascript_include_tag "topological_inventory/application" %>
|
7
|
-
<%= csrf_meta_tags %>
|
8
|
-
</head>
|
9
|
-
<body>
|
10
|
-
|
11
|
-
<%= yield %>
|
12
|
-
|
13
|
-
</body>
|
14
|
-
</html>
|
data/config/database.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
default: &default
|
2
|
-
adapter: postgresql
|
3
|
-
encoding: utf8
|
4
|
-
host: 127.0.0.1
|
5
|
-
port: 5432
|
6
|
-
username: root
|
7
|
-
password: buttons
|
8
|
-
pool: 5
|
9
|
-
wait_timeout: 5
|
10
|
-
min_messages: warning
|
11
|
-
|
12
|
-
development:
|
13
|
-
<<: *default
|
14
|
-
database: topological_inventory_development
|
15
|
-
min_messages: notice
|
16
|
-
|
17
|
-
test:
|
18
|
-
<<: *default
|
19
|
-
database: topological_inventory_test
|
20
|
-
|
21
|
-
production:
|
22
|
-
<<: *default
|
23
|
-
database: topological_inventory_production
|