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,43 @@
1
+ class AddNotNullConstraintsToAllModels < ActiveRecord::Migration[5.1]
2
+ def up
3
+ change_column :container_groups, :source_id, :bigint, :null => false
4
+ change_column :container_nodes, :source_id, :bigint, :null => false
5
+ change_column :container_projects, :source_id, :bigint, :null => false
6
+ change_column :container_templates, :source_id, :bigint, :null => false
7
+ change_column :service_instances, :source_id, :bigint, :null => false
8
+ change_column :service_offerings, :source_id, :bigint, :null => false
9
+ change_column :service_plans, :source_id, :bigint, :null => false
10
+
11
+ change_column :container_groups, :tenant_id, :bigint, :null => false
12
+ change_column :container_nodes, :tenant_id, :bigint, :null => false
13
+ change_column :container_projects, :tenant_id, :bigint, :null => false
14
+ change_column :container_templates, :tenant_id, :bigint, :null => false
15
+ change_column :service_instances, :tenant_id, :bigint, :null => false
16
+ change_column :service_offerings, :tenant_id, :bigint, :null => false
17
+ change_column :service_plans, :tenant_id, :bigint, :null => false
18
+ change_column :endpoints, :tenant_id, :bigint, :null => false
19
+ change_column :sources, :tenant_id, :bigint, :null => false
20
+ change_column :authentications, :tenant_id, :bigint, :null => false
21
+ end
22
+
23
+ def down
24
+ change_column :container_groups, :source_id, :bigint, :null => true
25
+ change_column :container_nodes, :source_id, :bigint, :null => true
26
+ change_column :container_projects, :source_id, :bigint, :null => true
27
+ change_column :container_templates, :source_id, :bigint, :null => true
28
+ change_column :service_instances, :source_id, :bigint, :null => true
29
+ change_column :service_offerings, :source_id, :bigint, :null => true
30
+ change_column :service_plans, :source_id, :bigint, :null => true
31
+
32
+ change_column :container_groups, :tenant_id, :bigint, :null => true
33
+ change_column :container_nodes, :tenant_id, :bigint, :null => true
34
+ change_column :container_projects, :tenant_id, :bigint, :null => true
35
+ change_column :container_templates, :tenant_id, :bigint, :null => true
36
+ change_column :service_instances, :tenant_id, :bigint, :null => true
37
+ change_column :service_offerings, :tenant_id, :bigint, :null => true
38
+ change_column :service_plans, :tenant_id, :bigint, :null => true
39
+ change_column :endpoints, :tenant_id, :bigint, :null => true
40
+ change_column :sources, :tenant_id, :bigint, :null => true
41
+ change_column :authentications, :tenant_id, :bigint, :null => true
42
+ end
43
+ end
@@ -0,0 +1,27 @@
1
+ class AddTimestampsForParallelSaving < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :container_groups, :resource_timestamp, :datetime
4
+ add_column :container_nodes, :resource_timestamp, :datetime
5
+ add_column :container_projects, :resource_timestamp, :datetime
6
+ add_column :container_templates, :resource_timestamp, :datetime
7
+ add_column :service_instances, :resource_timestamp, :datetime
8
+ add_column :service_offerings, :resource_timestamp, :datetime
9
+ add_column :service_plans, :resource_timestamp, :datetime
10
+
11
+ add_column :container_groups, :resource_timestamps, :jsonb, :default => {}
12
+ add_column :container_nodes, :resource_timestamps, :jsonb, :default => {}
13
+ add_column :container_projects, :resource_timestamps, :jsonb, :default => {}
14
+ add_column :container_templates, :resource_timestamps, :jsonb, :default => {}
15
+ add_column :service_instances, :resource_timestamps, :jsonb, :default => {}
16
+ add_column :service_offerings, :resource_timestamps, :jsonb, :default => {}
17
+ add_column :service_plans, :resource_timestamps, :jsonb, :default => {}
18
+
19
+ add_column :container_groups, :resource_timestamps_max, :datetime
20
+ add_column :container_nodes, :resource_timestamps_max, :datetime
21
+ add_column :container_projects, :resource_timestamps_max, :datetime
22
+ add_column :container_templates, :resource_timestamps_max, :datetime
23
+ add_column :service_instances, :resource_timestamps_max, :datetime
24
+ add_column :service_offerings, :resource_timestamps_max, :datetime
25
+ add_column :service_plans, :resource_timestamps_max, :datetime
26
+ end
27
+ end
@@ -0,0 +1,28 @@
1
+ class AddTagsAndTaggings < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table "taggings", id: :serial, force: :cascade do |t|
4
+ t.integer "tag_id"
5
+ t.string "taggable_type"
6
+ t.integer "taggable_id"
7
+ t.string "tagger_type"
8
+ t.integer "tagger_id"
9
+ t.string "context", limit: 128
10
+ t.datetime "created_at"
11
+ t.index ["context"], name: "index_taggings_on_context"
12
+ t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
13
+ t.index ["tag_id"], name: "index_taggings_on_tag_id"
14
+ t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
15
+ t.index ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
16
+ t.index ["taggable_id"], name: "index_taggings_on_taggable_id"
17
+ t.index ["taggable_type"], name: "index_taggings_on_taggable_type"
18
+ t.index ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
19
+ t.index ["tagger_id"], name: "index_taggings_on_tagger_id"
20
+ end
21
+
22
+ create_table "tags", id: :serial, force: :cascade do |t|
23
+ t.string "name"
24
+ t.integer "taggings_count", default: 0
25
+ t.index ["name"], name: "index_tags_on_name", unique: true
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,5 @@
1
+ class ChangeColumnDefaults < ActiveRecord::Migration[5.1]
2
+ def change
3
+ change_column_default(:endpoints, :default, :from => nil, :to => false)
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ class AddSourceType < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :source_types, :id => :bigserial do |t|
4
+ t.string :name
5
+ t.string :product_name
6
+ t.string :vendor
7
+ t.timestamps
8
+ t.index :name, :unique => true
9
+ end
10
+
11
+ add_reference :sources, :source_type, :index => true, :foreign_key => {:on_delete => :cascade}
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class AddTasksTable < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :tasks, :id => :bigserial do |t|
4
+ t.string :name
5
+ t.string :status
6
+ t.string :state
7
+ t.jsonb :context
8
+ t.references :tenant, :index => true, :null => false
9
+ t.datetime :completed_at
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ class AddSslOptionsToEndpoints < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :endpoints, :verify_ssl, :boolean
4
+ add_column :endpoints, :certificate_authority, :text
5
+ end
6
+ end
@@ -0,0 +1,31 @@
1
+ class AddRegionsAndSubscriptions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table "subscriptions", :id => :bigserial do |t|
4
+ t.references "source", :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.string "source_ref"
6
+ t.string "name"
7
+ t.timestamps
8
+ t.datetime "archived_on", :index => true
9
+ t.index %i(source_id source_ref), :unique => true
10
+ end
11
+
12
+ create_table "source_regions", :id => :bigserial do |t|
13
+ t.references "source", :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
14
+ t.string "source_ref"
15
+ t.string "name"
16
+ t.string "endpoint"
17
+ t.timestamps
18
+ t.datetime "archived_on", :index => true
19
+ t.index %i(source_id source_ref), :unique => true
20
+ end
21
+
22
+ add_reference :service_offerings, :source_region, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
23
+ add_reference :service_offerings, :subscription, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
24
+
25
+ add_reference :service_plans, :source_region, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
26
+ add_reference :service_plans, :subscription, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
27
+
28
+ add_reference :service_instances, :source_region, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
29
+ add_reference :service_instances, :subscription, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
30
+ end
31
+ end
@@ -0,0 +1,24 @@
1
+ class AddContainers < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :containers do |t|
4
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :container_group, :type => :bigint, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :name
8
+
9
+ t.float :cpu_limit
10
+ t.float :cpu_request
11
+
12
+ t.bigint :memory_limit
13
+ t.bigint :memory_request
14
+
15
+ t.datetime :resource_timestamp
16
+ t.jsonb :resource_timestamps, default: {}
17
+ t.datetime :resource_timestamps_max
18
+
19
+ t.timestamps
20
+ t.datetime :archived_on, :index => true
21
+ t.index [:container_group_id, :name], :unique => true
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,6 @@
1
+ class AddTenantIdToRegionsAndSubscriptions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_reference :source_regions, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}, :null => false
4
+ add_reference :subscriptions, :tenant, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}, :null => false
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ class AddNotNullConstraintsToSourceType < ActiveRecord::Migration[5.1]
2
+ def up
3
+ change_column :source_types, :name, :string, :null => false
4
+ change_column :source_types, :product_name, :string, :null => false
5
+ change_column :source_types, :vendor, :string, :null => false
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ class AddIndexesOnNameColumnToNodeAndNamespace < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_index :container_nodes, :name
4
+ add_index :container_projects, :name
5
+ end
6
+ end
@@ -0,0 +1,32 @@
1
+ class AddVmsTable < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :vms do |t|
4
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :source_ref
8
+ t.string :uid_ems
9
+ t.string :name
10
+ t.string :hostname
11
+ t.string :description
12
+ t.string :power_state
13
+ t.bigint :cpus
14
+ t.bigint :memory
15
+
16
+ t.jsonb :extra
17
+
18
+ t.datetime :resource_timestamp
19
+ t.jsonb :resource_timestamps, default: {}
20
+ t.datetime :resource_timestamps_max
21
+
22
+ t.timestamps
23
+ t.datetime :archived_on
24
+ t.datetime :source_created_at
25
+ t.datetime :source_deleted_at
26
+
27
+ t.index [:source_id, :source_ref], :unique => true
28
+ t.index :archived_on
29
+ t.index :uid_ems
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,26 @@
1
+ class AddOrchestrationStacks < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :orchestration_stacks do |t|
4
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :source_ref
8
+ t.string :name
9
+ t.string :description
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_on
17
+ t.datetime :source_created_at
18
+ t.datetime :source_deleted_at
19
+
20
+ t.index [:source_id, :source_ref], :unique => true
21
+ t.index :archived_on
22
+ end
23
+
24
+ add_reference :vms, :orchestration_stack, :index => true, :foreign_key => {:on_delete => :nullify}
25
+ end
26
+ end
@@ -0,0 +1,36 @@
1
+ class AddLastSeenAtToAllTables < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :container_groups, :last_seen_at, :datetime
4
+ add_index :container_groups, :last_seen_at
5
+
6
+ add_column :container_nodes, :last_seen_at, :datetime
7
+ add_index :container_nodes, :last_seen_at
8
+
9
+ add_column :container_projects, :last_seen_at, :datetime
10
+ add_index :container_projects, :last_seen_at
11
+
12
+ add_column :container_templates, :last_seen_at, :datetime
13
+ add_index :container_templates, :last_seen_at
14
+
15
+ add_column :service_instances, :last_seen_at, :datetime
16
+ add_index :service_instances, :last_seen_at
17
+
18
+ add_column :service_offerings, :last_seen_at, :datetime
19
+ add_index :service_offerings, :last_seen_at
20
+
21
+ add_column :service_plans, :last_seen_at, :datetime
22
+ add_index :service_plans, :last_seen_at
23
+
24
+ add_column :source_regions, :last_seen_at, :datetime
25
+ add_index :source_regions, :last_seen_at
26
+
27
+ add_column :subscriptions, :last_seen_at, :datetime
28
+ add_index :subscriptions, :last_seen_at
29
+
30
+ add_column :vms, :last_seen_at, :datetime
31
+ add_index :vms, :last_seen_at
32
+
33
+ add_column :orchestration_stacks, :last_seen_at, :datetime
34
+ add_index :orchestration_stacks, :last_seen_at
35
+ end
36
+ end
@@ -0,0 +1,26 @@
1
+ class AddRefreshStatesAndRefreshStateParts < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table "refresh_states", :id => :bigserial do |t|
4
+ t.references "source", :type => :bigint, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references "tenant", :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
6
+ t.uuid "uuid", :null => false
7
+ t.string "status"
8
+ t.integer "total_parts"
9
+ t.jsonb "sweep_scope"
10
+ t.integer "sweep_retry_count", :default => 0
11
+ t.string "error_message"
12
+ t.timestamps
13
+ t.index %i(source_id uuid), :unique => true
14
+ end
15
+
16
+ create_table "refresh_state_parts", :id => :bigserial do |t|
17
+ t.references "refresh_state", :type => :bigint, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
18
+ t.references "tenant", :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
19
+ t.uuid "uuid", :null => false
20
+ t.string "status"
21
+ t.string "error_message"
22
+ t.timestamps
23
+ t.index %i(refresh_state_id uuid), :unique => true
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,5 @@
1
+ class AddLivesOnToContainerNodes < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_reference :container_nodes, :lives_on, :index => true, :polymorphic => true
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ class AddContainerImages < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :container_images, :id => :bigserial do |t|
4
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :source_ref
8
+ t.string :resource_version
9
+ t.string :name
10
+ t.string :tag
11
+
12
+ t.timestamps
13
+ t.datetime :archived_on
14
+ t.datetime :last_seen_at
15
+ t.datetime :source_deleted_at
16
+ t.datetime :source_created_at
17
+
18
+ t.datetime :resource_timestamp
19
+ t.jsonb :resource_timestamps, :default => {}
20
+ t.datetime :resource_timestamps_max
21
+
22
+ t.index [:source_id, :source_ref], :unique => true
23
+ t.index :archived_on
24
+ end
25
+
26
+ add_reference :containers, :container_image, :index => true, :foreign_key => {:on_delete => :nullify}
27
+ end
28
+ end
@@ -0,0 +1,25 @@
1
+ class AddFlavors < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :flavors, :id => :bigserial do |t|
4
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :source_ref
8
+ t.string :name
9
+ t.jsonb :extra
10
+
11
+ t.timestamps
12
+ t.datetime :archived_on
13
+ t.datetime :last_seen_at
14
+
15
+ t.datetime :resource_timestamp
16
+ t.jsonb :resource_timestamps, :default => {}
17
+ t.datetime :resource_timestamps_max
18
+
19
+ t.index [:source_id, :source_ref], :unique => true
20
+ t.index :archived_on
21
+ end
22
+
23
+ add_reference :vms, :flavor, :index => true, :foreign_key => {:on_delete => :nullify}
24
+ end
25
+ end
@@ -0,0 +1,5 @@
1
+ class AddJsonSchemaToSourceTypes < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :source_types, :schema, :jsonb
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ class RenameArchivedOn < ActiveRecord::Migration[5.1]
2
+ def change
3
+ rename_column :container_groups, :archived_on, :archived_at
4
+ rename_column :container_images, :archived_on, :archived_at
5
+ rename_column :container_nodes, :archived_on, :archived_at
6
+ rename_column :container_projects, :archived_on, :archived_at
7
+ rename_column :container_templates, :archived_on, :archived_at
8
+ rename_column :containers, :archived_on, :archived_at
9
+ rename_column :flavors, :archived_on, :archived_at
10
+ rename_column :orchestration_stacks, :archived_on, :archived_at
11
+ rename_column :service_instances, :archived_on, :archived_at
12
+ rename_column :service_offerings, :archived_on, :archived_at
13
+ rename_column :service_plans, :archived_on, :archived_at
14
+ rename_column :source_regions, :archived_on, :archived_at
15
+ rename_column :subscriptions, :archived_on, :archived_at
16
+ rename_column :vms, :archived_on, :archived_at
17
+ end
18
+ end
@@ -0,0 +1,57 @@
1
+ class AddVolumes < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :volume_types, :id => :bigserial do |t|
4
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
5
+ t.references :source, :type => :bigint, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
6
+
7
+ t.string :source_ref
8
+ t.string :name
9
+ t.text :description
10
+ t.jsonb :extra
11
+
12
+ t.timestamps
13
+ t.datetime :archived_at
14
+ t.datetime :last_seen_at
15
+
16
+ t.index [:source_id, :source_ref], :unique => true
17
+ t.index :archived_at
18
+ end
19
+
20
+ create_table :volumes, :id => :bigserial do |t|
21
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
22
+ t.references :source, :type => :bigint, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
23
+ t.references :source_region, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
24
+ t.references :volume_type, :type => :bigint, :index => true, :foreign_key => {:on_delete => :cascade}
25
+
26
+ t.string :source_ref
27
+ t.string :name
28
+ t.string :state
29
+ t.bigint :size
30
+ t.jsonb :extra
31
+
32
+ t.timestamps
33
+ t.datetime :archived_at
34
+ t.datetime :last_seen_at
35
+ t.datetime :source_deleted_at
36
+ t.datetime :source_created_at
37
+
38
+ t.datetime :resource_timestamp
39
+ t.jsonb :resource_timestamps, :default => {}
40
+ t.datetime :resource_timestamps_max
41
+
42
+ t.index [:source_id, :source_ref], :unique => true
43
+ t.index :archived_at
44
+ end
45
+
46
+ create_table :volume_attachments, :id => :bigserial do |t|
47
+ t.references :tenant, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
48
+ t.references :vm, :type => :bigint, :index => false, :null => false, :foreign_key => {:on_delete => :cascade}
49
+ t.references :volume, :type => :bigint, :index => true, :null => false, :foreign_key => {:on_delete => :cascade}
50
+
51
+ t.string :device
52
+ t.string :state
53
+
54
+ t.index [:vm_id, :volume_id], :unique => true
55
+ end
56
+ end
57
+ end