topological_inventory-core 1.1.3 → 1.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Build Status](https://travis-ci.org/RedHatInsights/topological_inventory-core.svg)](https://travis-ci.org/RedHatInsights/topological_inventory-core)
|
4
4
|
[![Maintainability](https://api.codeclimate.com/v1/badges/34f9bd9412e35c1a36fd/maintainability)](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
|