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,16 @@
1
+ module ArchivedConcern
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ scope :archived, -> { where.not(:archived_at => nil) }
6
+ scope :active, -> { where(:archived_at => nil) }
7
+ end
8
+
9
+ def archived?
10
+ !active?
11
+ end
12
+
13
+ def active?
14
+ archived_on.nil?
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ require "archived_concern"
2
+
3
+ class Container < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :refresh_state_part, :optional => true
8
+ belongs_to :container_group
9
+ belongs_to :container_image
10
+
11
+ acts_as_tenant(:tenant)
12
+ end
@@ -0,0 +1,16 @@
1
+ require "archived_concern"
2
+
3
+ class ContainerGroup < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+ belongs_to :container_project
10
+ belongs_to :container_node
11
+
12
+ has_many :containers
13
+
14
+ acts_as_tenant(:tenant)
15
+ acts_as_taggable_on
16
+ end
@@ -0,0 +1,7 @@
1
+ class ContainerGroupTag < ApplicationRecord
2
+ belongs_to :container_group
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,14 @@
1
+ require "archived_concern"
2
+
3
+ class ContainerImage < 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 :containers
11
+
12
+ acts_as_tenant(:tenant)
13
+ acts_as_taggable_on
14
+ end
@@ -0,0 +1,7 @@
1
+ class ContainerImageTag < ApplicationRecord
2
+ belongs_to :container_image
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,14 @@
1
+ require "archived_concern"
2
+
3
+ class ContainerNode < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+ belongs_to :lives_on, :polymorphic => true, :optional => true
10
+ has_many :container_groups
11
+
12
+ acts_as_tenant(:tenant)
13
+ acts_as_taggable_on
14
+ end
@@ -0,0 +1,7 @@
1
+ class ContainerNodeTag < ApplicationRecord
2
+ belongs_to :container_node
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,15 @@
1
+ require "archived_concern"
2
+
3
+ class ContainerProject < 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 :container_groups
11
+ has_many :container_templates
12
+
13
+ acts_as_tenant(:tenant)
14
+ acts_as_taggable_on
15
+ end
@@ -0,0 +1,7 @@
1
+ class ContainerProjectTag < ApplicationRecord
2
+ belongs_to :container_project
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,14 @@
1
+ require "archived_concern"
2
+
3
+ class ContainerResourceQuota < ApplicationRecord
4
+ self.table_name = "container_resource_quotas"
5
+
6
+ include ArchivedConcern
7
+
8
+ belongs_to :tenant
9
+ belongs_to :source
10
+ belongs_to :refresh_state_part, :optional => true
11
+ belongs_to :container_project
12
+
13
+ acts_as_tenant(:tenant)
14
+ end
@@ -0,0 +1,13 @@
1
+ require "archived_concern"
2
+
3
+ class ContainerTemplate < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+ belongs_to :container_project
10
+
11
+ acts_as_tenant(:tenant)
12
+ acts_as_taggable_on
13
+ end
@@ -0,0 +1,7 @@
1
+ class ContainerTemplateTag < ApplicationRecord
2
+ belongs_to :container_template
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,15 @@
1
+ require "archived_concern"
2
+
3
+ class Datastore < 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 :datastore_mounts
11
+ has_many :hosts, :through => :datastore_mounts
12
+
13
+ acts_as_tenant(:tenant)
14
+ acts_as_taggable_on
15
+ end
@@ -0,0 +1,6 @@
1
+ class DatastoreMount < ApplicationRecord
2
+ belongs_to :datastore
3
+ belongs_to :host
4
+
5
+ belongs_to :refresh_state_part, :optional => true
6
+ end
@@ -0,0 +1,7 @@
1
+ class DatastoreTag < ApplicationRecord
2
+ belongs_to :datastore
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,14 @@
1
+ require "archived_concern"
2
+
3
+ class Flavor < 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 :vms
11
+ has_many :reservations
12
+
13
+ acts_as_tenant(:tenant)
14
+ end
@@ -0,0 +1,20 @@
1
+ require "archived_concern"
2
+
3
+ class Host < ApplicationRecord
4
+ include ArchivedConcern
5
+
6
+ belongs_to :tenant
7
+ belongs_to :source
8
+ belongs_to :refresh_state_part, :optional => true
9
+ belongs_to :cluster, :optional => true
10
+
11
+ has_many :datastore_mounts
12
+ has_many :datastores, :through => :datastore_mounts
13
+
14
+ has_many :network_adapters, :as => :device
15
+
16
+ has_many :vms
17
+
18
+ acts_as_tenant(:tenant)
19
+ acts_as_taggable_on
20
+ end
@@ -0,0 +1,7 @@
1
+ class HostTag < ApplicationRecord
2
+ belongs_to :host
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 Ipaddress < 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
+
13
+ belongs_to :network_adapter, :optional => true
14
+ belongs_to :subnet, :optional => true
15
+
16
+ acts_as_tenant(:tenant)
17
+ acts_as_taggable_on
18
+ end
@@ -0,0 +1,7 @@
1
+ class IpaddressTag < ApplicationRecord
2
+ belongs_to :ipaddress
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 Network < 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
+
13
+ has_many :security_groups
14
+ has_many :subnets
15
+
16
+ acts_as_tenant(:tenant)
17
+ acts_as_taggable_on
18
+ end
@@ -0,0 +1,19 @@
1
+ require "archived_concern"
2
+
3
+ class NetworkAdapter < 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
+
13
+ belongs_to :device, :polymorphic => true, :optional => true
14
+
15
+ has_many :ipaddresses
16
+
17
+ acts_as_tenant(:tenant)
18
+ acts_as_taggable_on
19
+ end
@@ -0,0 +1,7 @@
1
+ class NetworkAdapterTag < ApplicationRecord
2
+ belongs_to :network_adapter
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,7 @@
1
+ class NetworkTag < ApplicationRecord
2
+ belongs_to :network
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,24 @@
1
+ require "archived_concern"
2
+
3
+ class OrchestrationStack < 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 :parent_orchestration_stack, :class_name => "OrchestrationStack", :optional => true
12
+
13
+ has_many :child_orchestration_stacks, :class_name => "OrchestrationStack", :foreign_key => :parent_orchestration_stack_id
14
+ has_many :ipaddresses
15
+ has_many :network_adapters
16
+ has_many :networks
17
+ has_many :security_groups
18
+ has_many :subnets
19
+ has_many :vms
20
+ has_many :reservations
21
+ has_many :volumes
22
+
23
+ acts_as_tenant(:tenant)
24
+ end
@@ -0,0 +1,7 @@
1
+ class RefreshState < ActiveRecord::Base
2
+ belongs_to :source
3
+ belongs_to :tenant
4
+ has_many :refresh_state_parts
5
+
6
+ acts_as_tenant(:tenant)
7
+ end
@@ -0,0 +1,63 @@
1
+ class RefreshStatePart < ActiveRecord::Base
2
+ belongs_to :refresh_state
3
+ belongs_to :tenant
4
+
5
+ has_many :clusters
6
+ has_many :cluster_tags
7
+ has_many :containers
8
+ has_many :container_groups
9
+ has_many :container_group_tags
10
+ has_many :container_images
11
+ has_many :container_image_tags
12
+ has_many :container_nodes
13
+ has_many :container_node_tags
14
+ has_many :container_projects
15
+ has_many :container_project_tags
16
+ has_many :container_resource_quotas
17
+ has_many :container_templates
18
+ has_many :container_template_tags
19
+ has_many :datastores
20
+ has_many :datastore_mounts
21
+ has_many :datastore_tags
22
+ has_many :flavors
23
+ has_many :hosts
24
+ has_many :host_tags
25
+ has_many :ipaddresses
26
+ has_many :ipaddress_tags
27
+ has_many :networks
28
+ has_many :network_adapters
29
+ has_many :network_adapter_tags
30
+ has_many :network_tags
31
+ has_many :orchestration_stacks
32
+ has_many :reservations
33
+ has_many :reservation_tags
34
+ has_many :security_groups
35
+ has_many :security_group_tags
36
+ has_many :service_credentials
37
+ has_many :service_credential_types
38
+ has_many :service_instances
39
+ has_many :service_instance_nodes
40
+ has_many :service_instance_node_service_credentials
41
+ has_many :service_inventories
42
+ has_many :service_inventory_tags
43
+ has_many :service_offerings
44
+ has_many :service_offering_icons
45
+ has_many :service_offering_nodes
46
+ has_many :service_offering_node_service_credentials
47
+ has_many :service_offering_service_credentials
48
+ has_many :service_offering_tags
49
+ has_many :service_plans
50
+ has_many :source_regions
51
+ has_many :subnets
52
+ has_many :subnet_tags
53
+ has_many :subscriptions
54
+ has_many :tags
55
+ has_many :vms
56
+ has_many :vm_security_groups
57
+ has_many :vm_tags
58
+ has_many :volumes
59
+ has_many :volume_attachments
60
+ has_many :volume_types
61
+
62
+ acts_as_tenant(:tenant)
63
+ end
@@ -0,0 +1,15 @@
1
+ require "archived_concern"
2
+
3
+ class Reservation < 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 :flavor, :optional => true
12
+
13
+ acts_as_tenant(:tenant)
14
+ acts_as_taggable_on
15
+ end