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,8 @@
1
+ class Task < ApplicationRecord
2
+ belongs_to :tenant
3
+
4
+ validates :state, :inclusion => {:in => %w(pending queued running completed)}
5
+ validates :status, :inclusion => {:in => %w(ok warn error)}
6
+
7
+ acts_as_tenant(:tenant)
8
+ end
@@ -0,0 +1,47 @@
1
+ class Tenant < ApplicationRecord
2
+ has_many :authentications
3
+ has_many :containers
4
+ has_many :container_groups
5
+ has_many :container_images
6
+ has_many :container_nodes
7
+ has_many :container_projects
8
+ has_many :container_resource_quotas
9
+ has_many :container_templates
10
+ has_many :datastores
11
+ has_many :flavors
12
+ has_many :ipaddresses
13
+ has_many :network_adapters
14
+ has_many :networks
15
+ has_many :orchestration_stacks
16
+ has_many :security_groups
17
+ has_many :service_credentials
18
+ has_many :service_credential_types
19
+ has_many :service_instances
20
+ has_many :service_instance_service_credentials
21
+ has_many :service_instance_nodes
22
+ has_many :service_instance_node_service_credentials
23
+ has_many :service_inventories
24
+ has_many :service_offerings
25
+ has_many :service_offering_service_credentials
26
+ has_many :service_offering_nodes
27
+ has_many :service_offering_node_service_credentials
28
+ has_many :service_offering_icons
29
+ has_many :service_plans
30
+ has_many :source_regions
31
+ has_many :subnets
32
+ has_many :sources
33
+ has_many :subscriptions
34
+ has_many :tags
35
+ has_many :tasks
36
+ has_many :vms
37
+ has_many :volumes
38
+ has_many :volume_attachments
39
+ has_many :volume_types
40
+
41
+ has_many :refresh_states
42
+ has_many :refresh_state_parts, :through => :refresh_states
43
+
44
+ def self.tenancy_enabled?
45
+ ENV["BYPASS_TENANCY"].blank?
46
+ end
47
+ end
@@ -0,0 +1,27 @@
1
+ require "archived_concern"
2
+
3
+ class Vm < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+ belongs_to :source_region, :optional => true
10
+ belongs_to :subscription, :optional => true
11
+ belongs_to :orchestration_stack, :optional => true
12
+ belongs_to :flavor, :optional => true
13
+ belongs_to :host, :optional => true
14
+
15
+ has_many :volume_attachments
16
+ has_many :volumes, :through => :volume_attachments
17
+
18
+ has_many :network_adapters, :as => :device
19
+ has_many :ipaddresses, :through => :network_adapters
20
+ has_many :subnets, :through => :ipaddresses
21
+ has_many :networks, :through => :subnets
22
+ has_many :vm_security_groups
23
+ has_many :security_groups, :through => :vm_security_groups
24
+
25
+ acts_as_tenant(:tenant)
26
+ acts_as_taggable_on
27
+ end
@@ -0,0 +1,8 @@
1
+ require "archived_concern"
2
+
3
+ class VmSecurityGroup < ApplicationRecord
4
+ belongs_to :refresh_state_part, :optional => true
5
+
6
+ belongs_to :vm
7
+ belongs_to :security_group
8
+ end
@@ -0,0 +1,7 @@
1
+ class VmTag < ApplicationRecord
2
+ belongs_to :vm
3
+ belongs_to :tag
4
+ belongs_to :tenant
5
+ belongs_to :refresh_state_part, :optional => true
6
+ acts_as_tenant(:tenant)
7
+ end
@@ -0,0 +1,18 @@
1
+ require "archived_concern"
2
+
3
+ class Volume < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+ belongs_to :source_region, :optional => true
10
+ belongs_to :subscription, :optional => true
11
+ belongs_to :orchestration_stack, :optional => true
12
+ belongs_to :volume_type, :optional => true
13
+
14
+ has_many :volume_attachments
15
+ has_many :vms, :through => :volume_attachments
16
+
17
+ acts_as_tenant(:tenant)
18
+ end
@@ -0,0 +1,8 @@
1
+ class VolumeAttachment < ApplicationRecord
2
+ belongs_to :tenant
3
+ belongs_to :refresh_state_part, :optional => true
4
+ belongs_to :volume
5
+ belongs_to :vm
6
+
7
+ acts_as_tenant(:tenant)
8
+ end
@@ -0,0 +1,13 @@
1
+ require "archived_concern"
2
+
3
+ class VolumeType < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+
10
+ has_many :volumes
11
+
12
+ acts_as_tenant(:tenant)
13
+ end
@@ -0,0 +1,14 @@
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>
@@ -0,0 +1,22 @@
1
+ default: &default
2
+ adapter: postgresql
3
+ encoding: utf8
4
+ host: localhost
5
+ port: 5432
6
+ username: root
7
+ pool: 5
8
+ wait_timeout: 5
9
+ min_messages: warning
10
+
11
+ development:
12
+ <<: *default
13
+ database: topological_inventory_core_development
14
+ min_messages: notice
15
+
16
+ test:
17
+ <<: *default
18
+ database: topological_inventory_core_test
19
+
20
+ production:
21
+ <<: *default
22
+ database: topological_inventory_core_production
@@ -0,0 +1,19 @@
1
+ class AddSourcesAndEndpoints < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :sources, :id => :bigserial do |t|
4
+ t.string :name
5
+ t.string :uid
6
+ t.timestamps
7
+ end
8
+
9
+ create_table :endpoints, :id => :bigserial do |t|
10
+ t.string :role
11
+ t.string :ipaddress
12
+ t.string :ipv6address
13
+ t.string :hostname
14
+ t.integer :port
15
+ t.references :source, :type => :bigint
16
+ t.timestamps
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,36 @@
1
+ class AddContainerModels < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table "container_groups", :id => :bigserial do |t|
4
+ t.references "source", :type => :bigint, :index => true
5
+ t.string "source_ref"
6
+ t.string "resource_version"
7
+ t.string "name"
8
+ t.references "container_project", :type => :bigint, :index => true
9
+ t.string "ipaddress"
10
+ t.timestamps
11
+ t.datetime "deleted_at", :index => true
12
+ t.index %i(source_id source_ref), :unique => true
13
+ end
14
+
15
+ create_table "container_projects", :id => :bigserial do |t|
16
+ t.references "source", :type => :bigint, :index => true
17
+ t.string "source_ref"
18
+ t.string "resource_version"
19
+ t.string "name"
20
+ t.string "display_name"
21
+ t.timestamps
22
+ t.datetime "deleted_at", :index => true
23
+ t.index %i(source_id source_ref), :unique => true
24
+ end
25
+
26
+ create_table "container_templates", :id => :bigserial do |t|
27
+ t.references "source", :type => :bigint, :index => true
28
+ t.string "source_ref"
29
+ t.string "resource_version"
30
+ t.references "container_project", :type => :bigint, :index => true
31
+ t.timestamps
32
+ t.datetime "deleted_at", :index => true
33
+ t.index %i(source_id source_ref), :unique => true
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,38 @@
1
+ class AddServiceCatalogModels < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table "service_instances", :id => :bigserial do |t|
4
+ t.references "source", :type => :bigint, :index => true
5
+ t.string "source_ref"
6
+ t.string "name"
7
+ t.references "service_offering", :type => :bigint, :index => true
8
+ t.references "service_parameters_set", :type => :bigint, :index => true
9
+ t.jsonb "extra"
10
+ t.timestamps
11
+ t.datetime "deleted_at", :index => true
12
+ t.index %i(source_id source_ref), :unique => true
13
+ end
14
+
15
+ create_table "service_offerings", :id => :bigserial do |t|
16
+ t.references "source", :type => :bigint, :index => true
17
+ t.string "source_ref"
18
+ t.string "name"
19
+ t.text "description"
20
+ t.jsonb "extra"
21
+ t.timestamps
22
+ t.datetime "deleted_at", :index => true
23
+ t.index %i(source_id source_ref), :unique => true
24
+ end
25
+
26
+ create_table "service_parameters_sets", :id => :bigserial do |t|
27
+ t.references "source", :type => :bigint, :index => true
28
+ t.string "source_ref"
29
+ t.string "name"
30
+ t.text "description"
31
+ t.references "service_offering", :type => :bigint, :index => true
32
+ t.jsonb "extra"
33
+ t.timestamps
34
+ t.datetime "deleted_at", :index => true
35
+ t.index %i(source_id source_ref), :unique => true
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,13 @@
1
+ class AddAuthentications < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :authentications, :id => :bigserial do |t|
4
+ t.references "resource", :polymorphic => true, :index => true
5
+ t.string "name"
6
+ t.string "authtype"
7
+ t.string "userid"
8
+ t.string "password"
9
+ t.string "status"
10
+ t.string "status_details"
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ class AddDefaultToEndpoints < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :endpoints, :default, :boolean
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class UpdateEndpointsUriParts < ActiveRecord::Migration[5.0]
2
+ def change
3
+ remove_column :endpoints, :ipaddress, :string
4
+ remove_column :endpoints, :ipv6address, :string
5
+ remove_column :endpoints, :hostname, :string
6
+ add_column :endpoints, :scheme, :string
7
+ add_column :endpoints, :host, :string
8
+ add_column :endpoints, :path, :string
9
+ end
10
+ end
@@ -0,0 +1,20 @@
1
+ class AddTenantAndTenantIdToAllTables < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table "tenants", id: :bigserial, force: :cascade do |t|
4
+ t.string "name"
5
+ t.text "description"
6
+ t.string "external_tenant"
7
+ t.timestamps
8
+ end
9
+
10
+ add_column :authentications, :tenant_id, :bigint
11
+ add_column :container_groups, :tenant_id, :bigint
12
+ add_column :container_projects, :tenant_id, :bigint
13
+ add_column :container_templates, :tenant_id, :bigint
14
+ add_column :endpoints, :tenant_id, :bigint
15
+ add_column :service_instances, :tenant_id, :bigint
16
+ add_column :service_offerings, :tenant_id, :bigint
17
+ add_column :service_parameters_sets, :tenant_id, :bigint
18
+ add_column :sources, :tenant_id, :bigint
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ class AddContainerNodes < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table "container_nodes", :id => :bigserial do |t|
4
+ t.references "source", :type => :bigint, :index => true
5
+ t.string "source_ref"
6
+ t.string "resource_version"
7
+ t.string "name"
8
+ t.integer "cpus"
9
+ t.bigint "memory"
10
+ t.references "tenant"
11
+ t.timestamps
12
+ t.datetime "deleted_at", :index => true
13
+ t.index %i(source_id source_ref), :unique => true
14
+ end
15
+
16
+ add_reference "container_groups", "container_node", :index => true
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ class AddSourceCreatedAndDeletedAtTimestamps < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :container_groups, :source_created_at, :datetime
4
+ add_column :container_nodes, :source_created_at, :datetime
5
+ add_column :container_projects, :source_created_at, :datetime
6
+ add_column :container_templates, :source_created_at, :datetime
7
+ add_column :service_instances, :source_created_at, :datetime
8
+ add_column :service_offerings, :source_created_at, :datetime
9
+ add_column :service_parameters_sets, :source_created_at, :datetime
10
+
11
+ rename_column :container_groups, :deleted_at, :source_deleted_at
12
+ rename_column :container_nodes, :deleted_at, :source_deleted_at
13
+ rename_column :container_projects, :deleted_at, :source_deleted_at
14
+ rename_column :container_templates, :deleted_at, :source_deleted_at
15
+ rename_column :service_instances, :deleted_at, :source_deleted_at
16
+ rename_column :service_offerings, :deleted_at, :source_deleted_at
17
+ rename_column :service_parameters_sets, :deleted_at, :source_deleted_at
18
+ end
19
+ end
@@ -0,0 +1,5 @@
1
+ class AddMissingNameToContainerTemplate < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :container_templates, :name, :string
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddJsonSpecToParametersSets < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :service_parameters_sets, :create_json_schema, :jsonb
4
+ add_column :service_parameters_sets, :update_json_schema, :jsonb
5
+ end
6
+ end
@@ -0,0 +1,19 @@
1
+ class AddArchivedOnTimestampToAllModels < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :container_groups, :archived_on, :datetime
4
+ add_column :container_nodes, :archived_on, :datetime
5
+ add_column :container_projects, :archived_on, :datetime
6
+ add_column :container_templates, :archived_on, :datetime
7
+ add_column :service_instances, :archived_on, :datetime
8
+ add_column :service_offerings, :archived_on, :datetime
9
+ add_column :service_parameters_sets, :archived_on, :datetime
10
+
11
+ add_index :container_groups, :archived_on
12
+ add_index :container_nodes, :archived_on
13
+ add_index :container_projects, :archived_on
14
+ add_index :container_templates, :archived_on
15
+ add_index :service_instances, :archived_on
16
+ add_index :service_offerings, :archived_on
17
+ add_index :service_parameters_sets, :archived_on
18
+ end
19
+ end
@@ -0,0 +1,6 @@
1
+ class RenameServiceParametersSetsToServicePlans < ActiveRecord::Migration[5.1]
2
+ def change
3
+ rename_table :service_parameters_sets, :service_plans
4
+ rename_column :service_instances, :service_parameters_set_id, :service_plan_id
5
+ end
6
+ end
@@ -0,0 +1,37 @@
1
+ class AddForeignKeysToAllModels < ActiveRecord::Migration[5.1]
2
+ def change
3
+ # On delete cascade
4
+ add_foreign_key :container_groups, :sources, on_delete: :cascade
5
+ add_foreign_key :container_nodes, :sources, on_delete: :cascade
6
+ add_foreign_key :container_projects, :sources, on_delete: :cascade
7
+ add_foreign_key :container_templates, :sources, on_delete: :cascade
8
+ add_foreign_key :service_instances, :sources, on_delete: :cascade
9
+ add_foreign_key :service_offerings, :sources, on_delete: :cascade
10
+ add_foreign_key :service_plans, :sources, on_delete: :cascade
11
+ add_foreign_key :endpoints, :sources, on_delete: :cascade
12
+
13
+ add_foreign_key :container_groups, :tenants, on_delete: :cascade
14
+ add_foreign_key :container_nodes, :tenants, on_delete: :cascade
15
+ add_foreign_key :container_projects, :tenants, on_delete: :cascade
16
+ add_foreign_key :container_templates, :tenants, on_delete: :cascade
17
+ add_foreign_key :service_instances, :tenants, on_delete: :cascade
18
+ add_foreign_key :service_offerings, :tenants, on_delete: :cascade
19
+ add_foreign_key :service_plans, :tenants, on_delete: :cascade
20
+ add_foreign_key :endpoints, :tenants, on_delete: :cascade
21
+
22
+ add_foreign_key :container_groups, :container_projects, on_delete: :cascade
23
+ add_foreign_key :container_templates, :container_projects, on_delete: :cascade
24
+
25
+ add_foreign_key :container_groups, :container_nodes, on_delete: :cascade
26
+
27
+ add_foreign_key :sources, :tenants, on_delete: :cascade
28
+
29
+ add_foreign_key :authentications, :tenants, on_delete: :cascade
30
+
31
+ add_foreign_key :service_plans, :service_offerings, on_delete: :cascade
32
+
33
+ # On delete nullify
34
+ add_foreign_key :service_instances, :service_offerings, on_delete: :nullify
35
+ add_foreign_key :service_instances, :service_plans, on_delete: :nullify
36
+ end
37
+ end