Skip to content

Commit 7fcec09

Browse files
authored
Merge pull request #8929 from Guddetisandeep/master
Add Resource Pool UI for Cloud managers
2 parents 9fbcf7b + 995bd1f commit 7fcec09

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1335
-76
lines changed

app/controllers/application_controller/ci_processing.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -852,8 +852,13 @@ def delete_flavors
852852
end
853853

854854
# Delete all selected or single displayed RP(s)
855-
def deleteresourcepools
856-
assert_privileges("resource_pool_delete")
855+
def deletecloudresourcepools
856+
assert_privileges("resource_pool_cloud_delete")
857+
delete_elements(ResourcePool, :process_resourcepools)
858+
end
859+
860+
def deleteinfraresourcepools
861+
assert_privileges("resource_pool_infra_delete")
857862
delete_elements(ResourcePool, :process_resourcepools)
858863
end
859864

app/controllers/mixins/ems_common.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ def display_methods
105105
physical_switches
106106
physical_storages
107107
placement_groups
108+
resource_pools_cloud
108109
security_groups
109110
security_policies
110111
security_policy_rules

app/controllers/mixins/generic_show_mixin.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ def display_custom_button_events
151151
nested_list(CustomButtonEvent, :breadcrumb_title => _('Custom Button Events'), :clickable => false, :parent_method => 'custom_button_events')
152152
end
153153

154-
def display_resource_pools
155-
nested_list(ResourcePool)
154+
def display_resource_pools_cloud
155+
nested_list(ManageIQ::Providers::CloudManager::ResourcePool, :breadcrumb_title => _('Resource Pools'))
156156
end
157157

158158
def display_instances
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
class ResourcePoolCloudController < ApplicationController
2+
before_action :check_privileges
3+
before_action :get_session_data
4+
after_action :cleanup_action
5+
after_action :set_session_data
6+
7+
include Mixins::GenericButtonMixin
8+
include Mixins::GenericListMixin
9+
include Mixins::GenericSessionMixin
10+
include Mixins::GenericShowMixin
11+
include Mixins::BreadcrumbsMixin
12+
13+
def self.display_methods
14+
%w[vms all_vms resource_pools]
15+
end
16+
17+
# handle buttons pressed on the button bar
18+
def button
19+
@edit = session[:edit] # Restore @edit for adv search box
20+
params[:display] = @display if %w[all_vms vms resource_pools].include?(@display) # Were we displaying sub-items
21+
22+
@refresh_div = 'main_div' unless @display # Default div for button.rjs to refresh
23+
case params[:pressed]
24+
when 'resource_pool_cloud_delete'
25+
deletecloudresourcepools
26+
if @refresh_div == 'main_div' && @lastaction == 'show_list'
27+
replace_gtl_main_div
28+
else
29+
render_flash unless performed?
30+
end
31+
when 'resource_pool_cloud_protect'
32+
assign_policies(ResourcePool)
33+
when 'resource_pool_cloud_tag'
34+
tag(self.class.model)
35+
else
36+
super
37+
end
38+
end
39+
40+
def self.model
41+
ManageIQ::Providers::CloudManager::ResourcePool
42+
end
43+
44+
def download_data
45+
assert_privileges('resource_pool_cloud_view')
46+
super
47+
end
48+
49+
def download_summary_pdf
50+
assert_privileges('resource_pool_cloud_view')
51+
super
52+
end
53+
54+
def breadcrumb_name(_model)
55+
_("Cloud Resource Pools")
56+
end
57+
58+
def self.table_name
59+
@table_name ||= "resource_pool"
60+
end
61+
62+
def index
63+
redirect_to(:action => 'show_list')
64+
end
65+
66+
def show_list
67+
assert_privileges('resource_pool_cloud_show_list')
68+
@center_toolbar = "resource_pool_clouds"
69+
super
70+
end
71+
72+
def show
73+
assert_privileges('resource_pool_cloud_show')
74+
@center_toolbar = "resource_pool_cloud"
75+
super
76+
end
77+
78+
private
79+
80+
def record_class
81+
%w[all_vms vms].include?(params[:display]) ? VmOrTemplate : ResourcePool
82+
end
83+
84+
def textual_group_list
85+
[%i[properties relationships], %i[configuration smart_management]]
86+
end
87+
88+
helper_method :textual_group_list
89+
90+
def breadcrumbs_options
91+
{
92+
:breadcrumbs => [
93+
{:title => _("Compute")},
94+
{:title => _("Clouds")},
95+
{:title => _("Resource Pools"), :url => controller_url},
96+
],
97+
}
98+
end
99+
100+
menu_section :resource_pool_cloud
101+
feature_for_actions "#{controller_name}_show_list", *ADV_SEARCH_ACTIONS
102+
end

app/controllers/resource_pool_controller.rb renamed to app/controllers/resource_pool_infra_controller.rb

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class ResourcePoolController < ApplicationController
1+
class ResourcePoolInfraController < ApplicationController
22
before_action :check_privileges
33
before_action :get_session_data
44
after_action :cleanup_action
@@ -21,27 +21,57 @@ def button
2121

2222
@refresh_div = 'main_div' unless @display # Default div for button.rjs to refresh
2323
case params[:pressed]
24-
when 'resource_pool_delete'
25-
deleteresourcepools
24+
when 'resource_pool_infra_delete'
25+
deleteinfraresourcepools
2626
if @refresh_div == 'main_div' && @lastaction == 'show_list'
2727
replace_gtl_main_div
2828
else
2929
render_flash unless performed?
3030
end
31-
when 'resource_pool_protect'
31+
when 'resource_pool_infra_protect'
3232
assign_policies(ResourcePool)
33+
when 'resource_pool_infra_tag'
34+
tag(self.class.model)
3335
else
3436
super
3537
end
3638
end
3739

40+
def self.model
41+
ManageIQ::Providers::InfraManager::ResourcePool
42+
end
43+
44+
def self.table_name
45+
@table_name ||= "resource_pool"
46+
end
47+
48+
def breadcrumb_name(_model)
49+
_("Infrastructure Resource Pools")
50+
end
51+
3852
def download_data
39-
assert_privileges('resource_pool_show_list')
53+
assert_privileges('resource_pool_infra_view')
4054
super
4155
end
4256

4357
def download_summary_pdf
44-
assert_privileges('resource_pool_show')
58+
assert_privileges('resource_pool_infra_view')
59+
super
60+
end
61+
62+
def index
63+
redirect_to(:action => 'show_list')
64+
end
65+
66+
def show_list
67+
assert_privileges('resource_pool_infra_show_list')
68+
@center_toolbar = "resource_pool_infras"
69+
super
70+
end
71+
72+
def show
73+
assert_privileges('resource_pool_infra_show')
74+
@center_toolbar = "resource_pool_infra"
4575
super
4676
end
4777

@@ -54,6 +84,7 @@ def record_class
5484
def textual_group_list
5585
[%i[properties relationships], %i[configuration smart_management]]
5686
end
87+
5788
helper_method :textual_group_list
5889

5990
def breadcrumbs_options
@@ -66,6 +97,6 @@ def breadcrumbs_options
6697
}
6798
end
6899

69-
menu_section :inf
100+
menu_section :resource_pool_infra
70101
feature_for_actions "#{controller_name}_show_list", *ADV_SEARCH_ACTIONS
71102
end

app/controllers/vm_common.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,10 @@ def placement_group
362362
show_association('placement_groups', _('Placement Groups'), :placement_groups, PlacementGroup)
363363
end
364364

365+
def resource_pool
366+
show_association('resource_pools', _('Resource Pools'), :resource_pools, ResourcePool)
367+
end
368+
365369
def cloud_subnets
366370
show_association('cloud_subnets', _('Subnets'), :cloud_subnets, CloudSubnet)
367371
end

app/helpers/application_helper.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,10 @@ def db_to_controller(db, action = "show")
394394
when "PlacementGroup"
395395
controller = "placement_group"
396396
action = "show"
397+
when "ManageIQ::Providers::CloudManager::ResourcePool"
398+
controller = "resource_pool_cloud"
399+
when "ManageIQ::Providers::InfraManager::ResourcePool"
400+
controller = "resource_pool_infra"
397401
when "SecurityGroup"
398402
controller = "security_group"
399403
action = "show"
@@ -796,7 +800,8 @@ def display_adv_search?
796800
physical_server
797801
placement_group
798802
provider_foreman
799-
resource_pool
803+
resource_pool_cloud
804+
resource_pool_infra
800805
retired
801806
security_group
802807
security_policy

app/helpers/application_helper/listnav.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ def render_listnav_filename
6161
physical_server
6262
physical_storage
6363
physical_switch
64-
resource_pool
64+
resource_pool_cloud
65+
resource_pool_infra
6566
security_group
6667
security_policy
6768
security_policy_rule

app/helpers/application_helper/page_layouts.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@ def show_adv_search?
220220
physical_server
221221
physical_storage
222222
placement_group
223-
resource_pool
223+
resource_pool_cloud
224+
resource_pool_infra
224225
retired
225226
security_group
226227
security_policy
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class ApplicationHelper::Toolbar::ResourcePoolCloudCenter < ApplicationHelper::Toolbar::Basic
2+
button_group('resource_pool_vmdb', [
3+
select(
4+
:resource_pool_vmdb_choice,
5+
nil,
6+
t = N_('Configuration'),
7+
t,
8+
:items => [
9+
button(
10+
:resource_pool_cloud_delete,
11+
'pficon pficon-delete fa-lg',
12+
N_('Remove this Resource Pool from Inventory'),
13+
N_('Remove Resource Pool from Inventory'),
14+
:url_parms => "&refresh=y",
15+
:confirm => N_("Warning: This Resource Pool and ALL of its components will be permanently removed!")),
16+
]
17+
),
18+
])
19+
button_group('resource_pool_cloud_policy', [
20+
select(
21+
:resource_pool_policy_choice,
22+
nil,
23+
t = N_('Policy'),
24+
t,
25+
:items => [
26+
button(
27+
:resource_pool_cloud_protect,
28+
'pficon pficon-edit fa-lg',
29+
N_('Manage Policies for this Resource Pool'),
30+
N_('Manage Policies')),
31+
button(
32+
:resource_pool_cloud_tag,
33+
'pficon pficon-edit fa-lg',
34+
N_('Edit Tags for this Resource Pool'),
35+
N_('Edit Tags')),
36+
]
37+
),
38+
])
39+
end

0 commit comments

Comments
 (0)