topological_inventory-core 1.0.0

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.
Files changed (194) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +202 -0
  3. data/README.md +36 -0
  4. data/Rakefile +47 -0
  5. data/app/assets/config/topological_inventory_manifest.js +2 -0
  6. data/app/assets/javascripts/topological_inventory/application.js +13 -0
  7. data/app/assets/stylesheets/topological_inventory/application.css +15 -0
  8. data/app/controllers/topological_inventory/application_controller.rb +5 -0
  9. data/app/helpers/topological_inventory/application_helper.rb +4 -0
  10. data/app/jobs/topological_inventory/application_job.rb +4 -0
  11. data/app/mailers/topological_inventory/application_mailer.rb +6 -0
  12. data/app/models/application_record.rb +15 -0
  13. data/app/models/availability.rb +3 -0
  14. data/app/models/cluster.rb +14 -0
  15. data/app/models/cluster_tag.rb +7 -0
  16. data/app/models/concerns/act_as_taggable_on.rb +75 -0
  17. data/app/models/concerns/archived_concern.rb +16 -0
  18. data/app/models/container.rb +12 -0
  19. data/app/models/container_group.rb +16 -0
  20. data/app/models/container_group_tag.rb +7 -0
  21. data/app/models/container_image.rb +14 -0
  22. data/app/models/container_image_tag.rb +7 -0
  23. data/app/models/container_node.rb +14 -0
  24. data/app/models/container_node_tag.rb +7 -0
  25. data/app/models/container_project.rb +15 -0
  26. data/app/models/container_project_tag.rb +7 -0
  27. data/app/models/container_resource_quota.rb +14 -0
  28. data/app/models/container_template.rb +13 -0
  29. data/app/models/container_template_tag.rb +7 -0
  30. data/app/models/datastore.rb +15 -0
  31. data/app/models/datastore_mount.rb +6 -0
  32. data/app/models/datastore_tag.rb +7 -0
  33. data/app/models/flavor.rb +14 -0
  34. data/app/models/host.rb +20 -0
  35. data/app/models/host_tag.rb +7 -0
  36. data/app/models/ipaddress.rb +18 -0
  37. data/app/models/ipaddress_tag.rb +7 -0
  38. data/app/models/network.rb +18 -0
  39. data/app/models/network_adapter.rb +19 -0
  40. data/app/models/network_adapter_tag.rb +7 -0
  41. data/app/models/network_tag.rb +7 -0
  42. data/app/models/orchestration_stack.rb +24 -0
  43. data/app/models/refresh_state.rb +7 -0
  44. data/app/models/refresh_state_part.rb +63 -0
  45. data/app/models/reservation.rb +15 -0
  46. data/app/models/reservation_tag.rb +7 -0
  47. data/app/models/security_group.rb +19 -0
  48. data/app/models/security_group_tag.rb +7 -0
  49. data/app/models/service_credential.rb +13 -0
  50. data/app/models/service_credential_type.rb +13 -0
  51. data/app/models/service_instance.rb +23 -0
  52. data/app/models/service_instance_node.rb +17 -0
  53. data/app/models/service_instance_node_service_credential.rb +8 -0
  54. data/app/models/service_instance_service_credential.rb +8 -0
  55. data/app/models/service_inventory.rb +18 -0
  56. data/app/models/service_inventory_tag.rb +7 -0
  57. data/app/models/service_offering.rb +25 -0
  58. data/app/models/service_offering_icon.rb +9 -0
  59. data/app/models/service_offering_node.rb +17 -0
  60. data/app/models/service_offering_node_service_credential.rb +8 -0
  61. data/app/models/service_offering_service_credential.rb +8 -0
  62. data/app/models/service_offering_tag.rb +7 -0
  63. data/app/models/service_plan.rb +16 -0
  64. data/app/models/source.rb +82 -0
  65. data/app/models/source_region.rb +24 -0
  66. data/app/models/subnet.rb +21 -0
  67. data/app/models/subnet_tag.rb +7 -0
  68. data/app/models/subscription.rb +25 -0
  69. data/app/models/tag.rb +67 -0
  70. data/app/models/task.rb +8 -0
  71. data/app/models/tenant.rb +47 -0
  72. data/app/models/vm.rb +27 -0
  73. data/app/models/vm_security_group.rb +8 -0
  74. data/app/models/vm_tag.rb +7 -0
  75. data/app/models/volume.rb +18 -0
  76. data/app/models/volume_attachment.rb +8 -0
  77. data/app/models/volume_type.rb +13 -0
  78. data/app/views/layouts/topological_inventory/application.html.erb +14 -0
  79. data/config/database.dev.yml +22 -0
  80. data/db/migrate/20180919170553_add_sources_and_endpoints.rb +19 -0
  81. data/db/migrate/20180927171624_add_container_models.rb +36 -0
  82. data/db/migrate/20180927205317_add_service_catalog_models.rb +38 -0
  83. data/db/migrate/20180928122710_add_authentications.rb +13 -0
  84. data/db/migrate/20180928130326_add_default_to_endpoints.rb +5 -0
  85. data/db/migrate/20181002195506_update_endpoints_uri_parts.rb +10 -0
  86. data/db/migrate/20181005182645_add_tenant_and_tenant_id_to_all_tables.rb +20 -0
  87. data/db/migrate/20181011164429_add_container_nodes.rb +18 -0
  88. data/db/migrate/20181011172858_add_source_created_and_deleted_at_timestamps.rb +19 -0
  89. data/db/migrate/20181015150921_add_missing_name_to_container_template.rb +5 -0
  90. data/db/migrate/20181016141948_add_json_spec_to_parameters_sets.rb +6 -0
  91. data/db/migrate/20181018082155_add_archived_on_timestamp_to_all_models.rb +19 -0
  92. data/db/migrate/20181018141423_rename_service_parameters_sets_to_service_plans.rb +6 -0
  93. data/db/migrate/20181018235055_add_foreign_keys_to_all_models.rb +37 -0
  94. data/db/migrate/20181023094055_add_not_null_constraints_to_all_models.rb +43 -0
  95. data/db/migrate/20181023102858_add_timestamps_for_parallel_saving.rb +27 -0
  96. data/db/migrate/20181023213355_add_tags_and_taggings.rb +28 -0
  97. data/db/migrate/20181023215716_change_column_defaults.rb +5 -0
  98. data/db/migrate/20181024163850_add_source_type.rb +13 -0
  99. data/db/migrate/20181026182144_add_tasks_table.rb +13 -0
  100. data/db/migrate/20181102141329_add_ssl_options_to_endpoints.rb +6 -0
  101. data/db/migrate/20181102145252_add_regions_and_subscriptions.rb +31 -0
  102. data/db/migrate/20181107211649_add_containers.rb +24 -0
  103. data/db/migrate/20181108113645_add_tenant_id_to_regions_and_subscriptions.rb +6 -0
  104. data/db/migrate/20181109170334_add_not_null_constraints_to_source_type.rb +7 -0
  105. data/db/migrate/20181113145803_add_indexes_on_name_column_to_node_and_namespace.rb +6 -0
  106. data/db/migrate/20181113182615_add_vms_table.rb +32 -0
  107. data/db/migrate/20181113190507_add_orchestration_stacks.rb +26 -0
  108. data/db/migrate/20181114094606_add_last_seen_at_to_all_tables.rb +36 -0
  109. data/db/migrate/20181114115416_add_refresh_states_and_refresh_state_parts.rb +26 -0
  110. data/db/migrate/20181119173228_add_lives_on_to_container_nodes.rb +5 -0
  111. data/db/migrate/20181127191451_add_container_images.rb +28 -0
  112. data/db/migrate/20181128101451_add_flavors.rb +25 -0
  113. data/db/migrate/20181128141221_add_json_schema_to_source_types.rb +5 -0
  114. data/db/migrate/20181129150215_rename_archived_on.rb +18 -0
  115. data/db/migrate/20181130111723_add_volumes.rb +57 -0
  116. data/db/migrate/20181205142648_add_unique_constraint_to_source_uid.rb +6 -0
  117. data/db/migrate/20181210164829_add_hardware_attributes_to_flavors.rb +8 -0
  118. data/db/migrate/20190102161242_remove_tags_and_taggings.rb +33 -0
  119. data/db/migrate/20190102161442_add_taggings_for_all_taggable_tables.rb +86 -0
  120. data/db/migrate/20190104213045_rename_authentication_userid_to_username.rb +5 -0
  121. data/db/migrate/20190111083026_change_sources_source_type_to_not_null.rb +5 -0
  122. data/db/migrate/20190111163026_change_sources_name_to_not_null.rb +5 -0
  123. data/db/migrate/20190116164905_add_extra_metadata_and_tags_for_service_offerings.rb +21 -0
  124. data/db/migrate/20190118110059_add_service_offering_icons.rb +16 -0
  125. data/db/migrate/20190122131958_add_missing_foreign_key_constraint_to_tasks.rb +5 -0
  126. data/db/migrate/20190122133424_index_foreign_keys_in_authentications.rb +5 -0
  127. data/db/migrate/20190122133425_index_foreign_keys_in_container_groups.rb +5 -0
  128. data/db/migrate/20190122133426_index_foreign_keys_in_container_projects.rb +5 -0
  129. data/db/migrate/20190122133427_index_foreign_keys_in_container_templates.rb +5 -0
  130. data/db/migrate/20190122133428_index_foreign_keys_in_endpoints.rb +5 -0
  131. data/db/migrate/20190122133429_index_foreign_keys_in_service_instances.rb +5 -0
  132. data/db/migrate/20190122133430_index_foreign_keys_in_service_offerings.rb +5 -0
  133. data/db/migrate/20190122133431_index_foreign_keys_in_service_plans.rb +5 -0
  134. data/db/migrate/20190122133432_index_foreign_keys_in_sources.rb +5 -0
  135. data/db/migrate/20190122153645_remove_extraneous_indexes.rb +17 -0
  136. data/db/migrate/20190124140942_add_missing_indexes_for_last_seen_at.rb +8 -0
  137. data/db/migrate/20190124154742_add_missing_not_null_constraints_to_source_ref.rb +21 -0
  138. data/db/migrate/20190205174227_add_version_to_sources.rb +5 -0
  139. data/db/migrate/20190208143909_add_availabilities_table.rb +15 -0
  140. data/db/migrate/20190213155142_add_resource_version_to_service_plans.rb +5 -0
  141. data/db/migrate/20190218180413_move_tag_value_to_tags.rb +40 -0
  142. data/db/migrate/20190218203848_remove_extra_columns_from_tagging_join_tables.rb +33 -0
  143. data/db/migrate/20190222171042_add_mac_addresses_and_host_inventory_id_to_vms.rb +8 -0
  144. data/db/migrate/20190228103842_add_unique_indexes_to_tag_mapping_tables.rb +21 -0
  145. data/db/migrate/20190308144237_add_application_types.rb +9 -0
  146. data/db/migrate/20190308145549_add_applications.rb +10 -0
  147. data/db/migrate/20190313191654_add_application_type_display_name.rb +5 -0
  148. data/db/migrate/20190314123842_add_containers_resource_quotas_table.rb +30 -0
  149. data/db/migrate/20190314133842_add_columns_for_containers_capacity_planning_analytics.rb +13 -0
  150. data/db/migrate/20190314153151_extract_sources_to_new_service.rb +84 -0
  151. data/db/migrate/20190322122542_add_external_url_to_service_instances.rb +5 -0
  152. data/db/migrate/20190325115642_external_tenant_must_be_unique_and_not_null.rb +6 -0
  153. data/db/migrate/20190401134142_add_last_seen_at_to_all_ingress_exposed_tables.rb +36 -0
  154. data/db/migrate/20190514164916_add_clusters.rb +39 -0
  155. data/db/migrate/20190514165841_add_hosts.rb +45 -0
  156. data/db/migrate/20190522170940_add_datastores.rb +38 -0
  157. data/db/migrate/20190522172440_add_datastore_mounts.rb +17 -0
  158. data/db/migrate/20190724194551_add_network_adapters.rb +39 -0
  159. data/db/migrate/20190729194551_change_network_adapters.rb +27 -0
  160. data/db/migrate/20190729214242_add_ipaddresses_subnets_and_networks.rb +186 -0
  161. data/db/migrate/20190806112121_add_missing_relation_to_subscription_region_and_stack.rb +14 -0
  162. data/db/migrate/20190807102142_add_missing_relation_to_subscription_and_region_to_network_adapter.rb +6 -0
  163. data/db/migrate/20190807183701_add_source_collector_status.rb +5 -0
  164. data/db/migrate/20190815194221_add_reservations_table.rb +43 -0
  165. data/db/migrate/20190926144242_add_service_inventories_table.rb +39 -0
  166. data/db/migrate/20190930112142_add_service_offering_and_instance_nodes_tables.rb +67 -0
  167. data/db/migrate/20190930162142_add_inventory_relation_to_service_offerings_and_instances.rb +6 -0
  168. data/db/migrate/20191002132112_add_root_service_instance_to_service_instances.rb +6 -0
  169. data/db/migrate/20191108135108_add_service_credential_tables.rb +33 -0
  170. data/db/migrate/20191118181501_add_host_to_vm.rb +5 -0
  171. data/db/migrate/20200122181811_add_tenant_to_join_tables.rb +134 -0
  172. data/db/migrate/20200213135429_remove_service_credential_references.rb +8 -0
  173. data/db/migrate/20200213150314_create_service_credential_types.rb +30 -0
  174. data/db/migrate/20200213173958_add_service_credential_type_to_service_credentials.rb +5 -0
  175. data/db/migrate/20200214183108_create_join_table_service_offering_service_credentials.rb +18 -0
  176. data/db/migrate/20200214183117_create_join_table_service_instance_service_credentials.rb +19 -0
  177. data/db/migrate/20200218182928_create_join_table_service_offering_node_service_credentials.rb +18 -0
  178. data/db/migrate/20200218183046_create_join_table_service_instance_node_service_credentials.rb +18 -0
  179. data/db/migrate/20200313124806_remove_extraneous_index_from_service_credential_join_tables.rb +15 -0
  180. data/db/migrate/20200313141215_add_refresh_state_part_to_persisted_models.rb +66 -0
  181. data/db/migrate/20200317082640_add_tracking_timestamps_to_refresh_state.rb +6 -0
  182. data/db/schema.rb +1594 -0
  183. data/db/seeds.rb +0 -0
  184. data/lib/tasks/topological_inventory_tasks.rake +4 -0
  185. data/lib/topological_inventory-core.rb +7 -0
  186. data/lib/topological_inventory/core/ar_helper.rb +50 -0
  187. data/lib/topological_inventory/core/engine.rb +17 -0
  188. data/lib/topological_inventory/core/logging.rb +19 -0
  189. data/lib/topological_inventory/core/seed_loader.rb +9 -0
  190. data/lib/topological_inventory/core/version.rb +5 -0
  191. data/lib/topological_inventory/schema.rb +6 -0
  192. data/lib/topological_inventory/schema/base.rb +26 -0
  193. data/lib/topological_inventory/schema/default.rb +187 -0
  194. metadata +389 -0
@@ -0,0 +1,14 @@
1
+ class AddMissingRelationToSubscriptionRegionAndStack < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :orchestration_stacks, :source_region, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
4
+ add_reference :orchestration_stacks, :subscription, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
5
+ add_reference :orchestration_stacks, :parent_orchestration_stack, :index => true, :null => true,
6
+ :foreign_key => {:to_table => :orchestration_stacks, :on_delete => :cascade}
7
+
8
+ add_reference :vms, :source_region, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
9
+ add_reference :vms, :subscription, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
10
+
11
+ add_reference :volumes, :orchestration_stack, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
12
+ add_reference :volumes, :subscription, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ class AddMissingRelationToSubscriptionAndRegionToNetworkAdapter < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :network_adapters, :source_region, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
4
+ add_reference :network_adapters, :subscription, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddSourceCollectorStatus < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :sources, :refresh_status, :string
4
+ end
5
+ end
@@ -0,0 +1,43 @@
1
+ class AddReservationsTable < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :reservations, :id => :bigserial, :force => :cascade do |t|
4
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
6
+ t.references :source_region, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
7
+ t.references :subscription, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
8
+ t.references :flavor, :index => true, :null => true, :foreign_key => {:on_delete => :cascade}
9
+
10
+ t.string :source_ref, :null => false
11
+ t.string :state
12
+ t.datetime :start
13
+ t.datetime :end
14
+
15
+ t.jsonb :extra
16
+
17
+ t.datetime :resource_timestamp
18
+ t.jsonb :resource_timestamps, :default => {}
19
+ t.datetime :resource_timestamps_max
20
+
21
+ t.timestamps
22
+ t.datetime :archived_at
23
+ t.datetime :source_created_at
24
+ t.datetime :source_deleted_at
25
+ t.datetime :last_seen_at
26
+
27
+ t.index :archived_at
28
+ t.index :last_seen_at
29
+
30
+ t.index %i[source_id source_ref], :unique => true
31
+ end
32
+
33
+ create_table :reservation_tags, :id => :serial, :force => :cascade do |t|
34
+ t.references :tag, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
35
+ t.references :reservation, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
36
+
37
+ t.datetime :last_seen_at
38
+
39
+ t.index %i[last_seen_at]
40
+ t.index %i[tag_id reservation_id], :unique => true
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,39 @@
1
+ class AddServiceInventoriesTable < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :service_inventories, :id => :bigserial, :force => :cascade do |t|
4
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :source_ref, :null => false
8
+ t.string :name
9
+ t.text :description
10
+
11
+ t.jsonb :extra
12
+
13
+ t.datetime :resource_timestamp
14
+ t.jsonb :resource_timestamps, :default => {}
15
+ t.datetime :resource_timestamps_max
16
+
17
+ t.timestamps
18
+ t.datetime :archived_at
19
+ t.datetime :source_created_at
20
+ t.datetime :source_updated_at
21
+ t.datetime :last_seen_at
22
+
23
+ t.index :archived_at
24
+ t.index :last_seen_at
25
+
26
+ t.index %i[source_id source_ref], :unique => true
27
+ end
28
+
29
+ create_table :service_inventory_tags, :id => :serial, :force => :cascade do |t|
30
+ t.references :tag, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
31
+ t.references :service_inventory, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
32
+
33
+ t.datetime :last_seen_at
34
+
35
+ t.index %i[last_seen_at]
36
+ t.index %i[tag_id service_inventory_id], :unique => true, :name => "service_inventories_tags_unique_index"
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,67 @@
1
+ class AddServiceOfferingAndInstanceNodesTables < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :service_offering_nodes, :id => :bigserial, :force => :cascade do |t|
4
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.references :service_inventory, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
8
+ t.references :service_offering, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
9
+ t.references :root_service_offering,
10
+ :index => true,
11
+ :null => true,
12
+ :foreign_key => {:on_delete => :nullify, :to_table => 'service_offerings' }
13
+
14
+ t.string :source_ref, :null => false
15
+ t.string :name
16
+
17
+ t.jsonb :extra
18
+
19
+ t.datetime :resource_timestamp
20
+ t.jsonb :resource_timestamps, :default => {}
21
+ t.datetime :resource_timestamps_max
22
+
23
+ t.timestamps
24
+ t.datetime :archived_at
25
+ t.datetime :source_created_at
26
+ t.datetime :source_updated_at
27
+ t.datetime :last_seen_at
28
+
29
+ t.index :archived_at
30
+ t.index :last_seen_at
31
+
32
+ t.index %i[source_id source_ref], :unique => true
33
+ end
34
+
35
+ create_table :service_instance_nodes, :id => :bigserial, :force => :cascade do |t|
36
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
37
+ t.references :source, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
38
+
39
+ t.references :service_inventory, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
40
+ t.references :service_instance, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
41
+ t.references :root_service_instance,
42
+ :index => true,
43
+ :null => true,
44
+ :foreign_key => {:on_delete => :nullify, :to_table => 'service_instances' }
45
+
46
+ t.string :source_ref, :null => false
47
+ t.string :name
48
+
49
+ t.jsonb :extra
50
+
51
+ t.datetime :resource_timestamp
52
+ t.jsonb :resource_timestamps, :default => {}
53
+ t.datetime :resource_timestamps_max
54
+
55
+ t.timestamps
56
+ t.datetime :archived_at
57
+ t.datetime :source_created_at
58
+ t.datetime :source_updated_at
59
+ t.datetime :last_seen_at
60
+
61
+ t.index :archived_at
62
+ t.index :last_seen_at
63
+
64
+ t.index %i[source_id source_ref], :unique => true
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,6 @@
1
+ class AddInventoryRelationToServiceOfferingsAndInstances < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :service_offerings, :service_inventory, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
4
+ add_reference :service_instances, :service_inventory, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddRootServiceInstanceToServiceInstances < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :service_instances, :root_service_instance, :index => true, :null => true,
4
+ :foreign_key => {:on_delete => :nullify, :to_table => 'service_instances'}
5
+ end
6
+ end
@@ -0,0 +1,33 @@
1
+ class AddServiceCredentialTables < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :service_credentials, :id => :bigserial, :force => :cascade do |t|
4
+ t.references :tenant, :index => true, :null => false, :foreign_key => { :on_delete => :cascade }
5
+ t.references :source, :index => false, :null => false, :foreign_key => { :on_delete => :cascade }
6
+
7
+ t.string :source_ref, :null => false
8
+ t.string :name
9
+ t.string :type_name
10
+ t.text :description
11
+
12
+ t.datetime :resource_timestamp
13
+ t.jsonb :resource_timestamps, :default => {}
14
+ t.datetime :resource_timestamps_max
15
+
16
+ t.timestamps
17
+ t.datetime :archived_at
18
+ t.datetime :source_created_at
19
+ t.datetime :source_updated_at
20
+ t.datetime :last_seen_at
21
+
22
+ t.index :archived_at
23
+ t.index :last_seen_at
24
+
25
+ t.index %i[source_id source_ref], :unique => true
26
+ end
27
+
28
+ add_reference :service_offerings, :service_credential, :index => true, :null => true, :foreign_key => { :on_delete => :nullify }
29
+ add_reference :service_instances, :service_credential, :index => true, :null => true, :foreign_key => { :on_delete => :nullify }
30
+ add_reference :service_offering_nodes, :service_credential, :index => true, :null => true, :foreign_key => { :on_delete => :nullify }
31
+ add_reference :service_instance_nodes, :service_credential, :index => true, :null => true, :foreign_key => { :on_delete => :nullify }
32
+ end
33
+ end
@@ -0,0 +1,5 @@
1
+ class AddHostToVm < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :vms, :host, :index => true, :null => true, :foreign_key => {:on_delete => :nullify}
4
+ end
5
+ end
@@ -0,0 +1,134 @@
1
+ class AddTenantToJoinTables < ActiveRecord::Migration[5.2]
2
+ class Tag < ActiveRecord::Base
3
+ end
4
+
5
+ class ClusterTag < ActiveRecord::Base
6
+ belongs_to :tag
7
+ end
8
+
9
+ class ContainerGroupTag < ActiveRecord::Base
10
+ belongs_to :tag
11
+ end
12
+
13
+ class ContainerImageTag < ActiveRecord::Base
14
+ belongs_to :tag
15
+ end
16
+
17
+ class ContainerNodeTag < ActiveRecord::Base
18
+ belongs_to :tag
19
+ end
20
+
21
+ class ContainerProjectTag < ActiveRecord::Base
22
+ belongs_to :tag
23
+ end
24
+
25
+ class ContainerTemplateTag < ActiveRecord::Base
26
+ belongs_to :tag
27
+ end
28
+
29
+ class DatastoreTag < ActiveRecord::Base
30
+ belongs_to :tag
31
+ end
32
+
33
+ class HostTag < ActiveRecord::Base
34
+ belongs_to :tag
35
+ end
36
+
37
+ class IpaddressTag < ActiveRecord::Base
38
+ belongs_to :tag
39
+ end
40
+
41
+ class NetworkAdapterTag < ActiveRecord::Base
42
+ belongs_to :tag
43
+ end
44
+
45
+ class NetworkTag < ActiveRecord::Base
46
+ belongs_to :tag
47
+ end
48
+
49
+ class ReservationTag < ActiveRecord::Base
50
+ belongs_to :tag
51
+ end
52
+
53
+ class SecurityGroupTag < ActiveRecord::Base
54
+ belongs_to :tag
55
+ end
56
+
57
+ class ServiceInventoryTag < ActiveRecord::Base
58
+ belongs_to :tag
59
+ end
60
+
61
+ class ServiceOfferingTag < ActiveRecord::Base
62
+ belongs_to :tag
63
+ end
64
+
65
+ class SubnetTag < ActiveRecord::Base
66
+ belongs_to :tag
67
+ end
68
+
69
+ class VmTag < ActiveRecord::Base
70
+ belongs_to :tag
71
+ end
72
+
73
+ def up
74
+ add_reference :cluster_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
75
+ add_reference :container_group_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
76
+ add_reference :container_image_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
77
+ add_reference :container_node_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
78
+ add_reference :container_project_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
79
+ add_reference :container_template_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
80
+ add_reference :datastore_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
81
+ add_reference :host_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
82
+ add_reference :ipaddress_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
83
+ add_reference :network_adapter_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
84
+ add_reference :network_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
85
+ add_reference :reservation_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
86
+ add_reference :security_group_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
87
+ add_reference :service_inventory_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
88
+ add_reference :service_offering_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
89
+ add_reference :subnet_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
90
+ add_reference :vm_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
91
+
92
+ [
93
+ ClusterTag,
94
+ ContainerGroupTag,
95
+ ContainerImageTag,
96
+ ContainerNodeTag,
97
+ ContainerProjectTag,
98
+ ContainerTemplateTag,
99
+ DatastoreTag,
100
+ HostTag,
101
+ IpaddressTag,
102
+ NetworkAdapterTag,
103
+ NetworkTag,
104
+ ReservationTag,
105
+ SecurityGroupTag,
106
+ ServiceInventoryTag,
107
+ ServiceOfferingTag,
108
+ SubnetTag,
109
+ VmTag,
110
+ ].each do |klass|
111
+ klass.find_each { |i| i.update(:tenant_id => i.tag.tenant_id) }
112
+ end
113
+ end
114
+
115
+ def down
116
+ remove_reference :cluster_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
117
+ remove_reference :container_group_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
118
+ remove_reference :container_image_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
119
+ remove_reference :container_node_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
120
+ remove_reference :container_project_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
121
+ remove_reference :container_template_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
122
+ remove_reference :datastore_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
123
+ remove_reference :host_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
124
+ remove_reference :ipaddress_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
125
+ remove_reference :network_adapter_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
126
+ remove_reference :network_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
127
+ remove_reference :reservation_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
128
+ remove_reference :security_group_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
129
+ remove_reference :service_inventory_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
130
+ remove_reference :service_offering_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
131
+ remove_reference :subnet_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
132
+ remove_reference :vm_tags, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
133
+ end
134
+ end
@@ -0,0 +1,8 @@
1
+ class RemoveServiceCredentialReferences < ActiveRecord::Migration[5.2]
2
+ def change
3
+ remove_reference :service_offerings, :service_credential, :index => true, :foreign_key => true
4
+ remove_reference :service_instances, :service_credential, :index => true, :foreign_key => true
5
+ remove_reference :service_offering_nodes, :service_credential, :index => true, :foreign_key => true
6
+ remove_reference :service_instance_nodes, :service_credential, :index => true, :foreign_key => true
7
+ end
8
+ end
@@ -0,0 +1,30 @@
1
+ class CreateServiceCredentialTypes < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :service_credential_types do |t|
4
+ t.string :name
5
+ t.string :description
6
+ t.string :kind
7
+ t.string :namespace
8
+
9
+ t.string :source_ref, :null => false
10
+
11
+ t.datetime :resource_timestamp
12
+ t.jsonb :resource_timestamps, :default => {}
13
+ t.datetime :resource_timestamps_max
14
+
15
+ t.timestamps
16
+ t.datetime :archived_at
17
+ t.datetime :source_created_at
18
+ t.datetime :source_deleted_at
19
+ t.datetime :last_seen_at
20
+
21
+ t.index :archived_at
22
+ t.index :last_seen_at
23
+
24
+ t.index %i[source_id source_ref], :unique => true
25
+
26
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
27
+ t.references :source, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ class AddServiceCredentialTypeToServiceCredentials < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_reference :service_credentials, :service_credential_type, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ class CreateJoinTableServiceOfferingServiceCredentials < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :service_offering_service_credentials do |t|
4
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :service_credential, :null => false, :index => false, :foreign_key => {:on_delete => :cascade}
6
+ t.references :service_offering, :null => false, :index => false, :foreign_key => {:on_delete => :cascade}
7
+
8
+ t.timestamps
9
+
10
+ t.datetime :last_seen_at
11
+
12
+ t.index %i[service_credential_id], :name => :index_service_offering_credentials_on_service_credential_id
13
+ t.index %i[service_offering_id], :name => :index_service_offering_credentials_on_service_offering_id
14
+ t.index %i[last_seen_at]
15
+ t.index %i[service_credential_id service_offering_id], :unique => true, :name => :index_service_offering_credential_id
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ class CreateJoinTableServiceInstanceServiceCredentials < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :service_instance_service_credentials do |t|
4
+ t.references :tenant, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :service_credential, :null => false, :index => false, :foreign_key => {:on_delete => :cascade}
6
+ t.references :service_instance, :null => false, :index => false, :foreign_key => {:on_delete => :cascade}
7
+
8
+ t.timestamps
9
+
10
+ t.datetime :last_seen_at
11
+
12
+ t.index %i[service_credential_id], :name => :index_service_instance_credentials_on_service_credential_id
13
+ t.index %i[service_instance_id], :name => :index_service_instance_credentials_on_service_instance_id
14
+ t.index %i[last_seen_at]
15
+ t.index %i[service_credential_id service_instance_id], :unique => true, :name => :index_service_instance_credential_id
16
+ end
17
+
18
+ end
19
+ end