-
Notifications
You must be signed in to change notification settings - Fork 898
/
container_manager.rb
66 lines (56 loc) · 2.73 KB
/
container_manager.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
include AvailabilityMixin
module ManageIQ::Providers
class ContainerManager < BaseManager
has_many :container_nodes, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_groups, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_services, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_replicators, :foreign_key => :ems_id, :dependent => :destroy
has_many :containers, :foreign_key => :ems_id
has_many :container_projects, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_quotas, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_limits, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_image_registries, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_images, :foreign_key => :ems_id, :dependent => :destroy
has_many :persistent_volumes, :foreign_key => :parent_id, :dependent => :destroy
has_many :persistent_volume_claims, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_component_statuses, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_builds, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_build_pods, :foreign_key => :ems_id, :dependent => :destroy
has_one :container_deployment, :foreign_key => :deployed_ems_id, :inverse_of => :deployed_ems
# required by aggregate_hardware
def all_computer_system_ids
MiqPreloader.preload(container_nodes, :computer_system)
container_nodes.collect { |n| n.computer_system.id }
end
def aggregate_cpu_total_cores(targets = nil)
aggregate_hardware(:computer_systems, :cpu_total_cores, targets)
end
alias_method :aggregate_logical_cpus, :aggregate_cpu_total_cores
Vmdb::Deprecation.deprecate_methods(self, :aggregate_logical_cpus => :aggregate_cpu_total_cores)
def aggregate_memory(targets = nil)
aggregate_hardware(:computer_systems, :memory_mb, targets)
end
class << model_name
define_method(:route_key) { "ems_containers" }
define_method(:singular_route_key) { "ems_container" }
end
def self.supported_subclasses
[ManageIQ::Providers::Kubernetes::ContainerManager,
ManageIQ::Providers::OpenshiftEnterprise::ContainerManager,
ManageIQ::Providers::Openshift::ContainerManager]
end
# enables overide of ChartsLayoutService#find_chart_path
def chart_layout_path
"ManageIQ_Providers_ContainerManager"
end
def validate_timeline
{:available => true, :message => nil}
end
def validate_performance
{:available => true, :message => nil}
end
def validate_authentication_status
{:available => true, :message => nil}
end
end
end