Skip to content

Commit ae1eb68

Browse files
add cloud and infra apis for resource pool
1 parent e83ac86 commit ae1eb68

File tree

7 files changed

+326
-104
lines changed

7 files changed

+326
-104
lines changed

app/controllers/api/resource_pools_controller.rb renamed to app/controllers/api/resource_pool_clouds_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module Api
2-
class ResourcePoolsController < BaseController
2+
class ResourcePoolCloudsController < BaseController
33
include Subcollections::Policies
44
include Subcollections::PolicyProfiles
55
include Subcollections::Tags
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module Api
2+
class ResourcePoolInfrasController < BaseController
3+
include Subcollections::Policies
4+
include Subcollections::PolicyProfiles
5+
include Subcollections::Tags
6+
end
7+
end

config/api.yml

Lines changed: 59 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3325,49 +3325,94 @@
33253325
- :subcollection
33263326
:verbs: *g
33273327
:klass: ResourceAction
3328-
:resource_pools:
3329-
:description: Resource Pools
3330-
:identifier: resource_pool
3328+
3329+
:resource_pool_clouds:
3330+
:description: Cloud Resource Pools
3331+
:identifier: resource_pool_cloud
3332+
:options:
3333+
- :collection
3334+
:verbs: *gp
3335+
:klass: ManageIQ::Providers::CloudManager::ResourcePool
3336+
:subcollections:
3337+
- :tags
3338+
- :policies
3339+
- :policy_profiles
3340+
:collection_actions:
3341+
:get:
3342+
- :name: read
3343+
:identifier: resource_pool_cloud_show_list
3344+
:post:
3345+
- :name: query
3346+
:identifier: resource_pool_cloud_show_list
3347+
:resource_actions:
3348+
:get:
3349+
- :name: read
3350+
:identifier: resource_pool_cloud_show
3351+
:post:
3352+
- :name: delete
3353+
:identifier: resource_pool_cloud_delete
3354+
:tags_subcollection_actions:
3355+
:post:
3356+
- :name: assign
3357+
:identifier: resource_pool_cloud_tag
3358+
- :name: unassign
3359+
:identifier: resource_pool_cloud_tag
3360+
:policies_subcollection_actions:
3361+
:post:
3362+
- :name: assign
3363+
:identifier: resource_pool_cloud_protect
3364+
- :name: unassign
3365+
:identifier: resource_pool_cloud_protect
3366+
:policy_profiles_subcollection_actions:
3367+
:post:
3368+
- :name: assign
3369+
:identifier: resource_pool_cloud_protect
3370+
- :name: unassign
3371+
:identifier: resource_pool_cloud_protect
3372+
3373+
:resource_pool_infras:
3374+
:description: Infrastructure Resource Pools
3375+
:identifier: resource_pool_infra
33313376
:options:
33323377
- :collection
33333378
:verbs: *gp
3334-
:klass: ResourcePool
3379+
:klass: ManageIQ::Providers::InfraManager::ResourcePool
33353380
:subcollections:
33363381
- :tags
33373382
- :policies
33383383
- :policy_profiles
33393384
:collection_actions:
33403385
:get:
33413386
- :name: read
3342-
:identifier: resource_pool_show_list
3387+
:identifier: resource_pool_infra_show_list
33433388
:post:
33443389
- :name: query
3345-
:identifier: resource_pool_show_list
3390+
:identifier: resource_pool_infra_show_list
33463391
:resource_actions:
33473392
:get:
33483393
- :name: read
3349-
:identifier: resource_pool_show
3394+
:identifier: resource_pool_infra_show
33503395
:post:
33513396
- :name: delete
3352-
:identifier: resource_pool_delete
3397+
:identifier: resource_pool_infra_delete
33533398
:tags_subcollection_actions:
33543399
:post:
33553400
- :name: assign
3356-
:identifier: resource_pool_tag
3401+
:identifier: resource_pool_infra_tag
33573402
- :name: unassign
3358-
:identifier: resource_pool_tag
3403+
:identifier: resource_pool_infra_tag
33593404
:policies_subcollection_actions:
33603405
:post:
33613406
- :name: assign
3362-
:identifier: resource_pool_protect
3407+
:identifier: resource_pool_infra_protect
33633408
- :name: unassign
3364-
:identifier: resource_pool_protect
3409+
:identifier: resource_pool_infra_protect
33653410
:policy_profiles_subcollection_actions:
33663411
:post:
33673412
- :name: assign
3368-
:identifier: resource_pool_protect
3413+
:identifier: resource_pool_infra_protect
33693414
- :name: unassign
3370-
:identifier: resource_pool_protect
3415+
:identifier: resource_pool_infra_protect
33713416
:results:
33723417
:description: Report Results
33733418
:identifier: miq_report_reports

spec/requests/collections_spec.rb

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -256,9 +256,14 @@ def test_collection_bulk_query(collection, collection_url, klass, id = nil)
256256
test_collection_query(:requests, api_requests_url, MiqRequest)
257257
end
258258

259-
it "query Resource Pools" do
259+
it "query Cloud Resource Pool" do
260260
FactoryBot.create(:resource_pool)
261-
test_collection_query(:resource_pools, api_resource_pools_url, ResourcePool)
261+
test_collection_query(:resource_pool_clouds, api_resource_pool_clouds_url, ManageIQ::Providers::CloudManager::ResourcePool)
262+
end
263+
264+
it "query Infra Resource Pool" do
265+
FactoryBot.create(:resource_pool)
266+
test_collection_query(:resource_pool_infras, api_resource_pool_infras_url, ManageIQ::Providers::InfraManager::ResourcePool)
262267
end
263268

264269
it "query Roles" do
@@ -586,9 +591,14 @@ def test_collection_bulk_query(collection, collection_url, klass, id = nil)
586591
test_collection_bulk_query(:requests, api_requests_url, MiqRequest)
587592
end
588593

589-
it "bulk query Resource Pools" do
590-
FactoryBot.create(:resource_pool)
591-
test_collection_bulk_query(:resource_pools, api_resource_pools_url, ResourcePool)
594+
it "bulk query Cloud Resource Pools" do
595+
FactoryBot.create(:resource_pool, :type => 'ManageIQ::Providers::CloudManager::ResourcePool')
596+
test_collection_bulk_query(:resource_pool_clouds, api_resource_pool_clouds_url, ManageIQ::Providers::CloudManager::ResourcePool)
597+
end
598+
599+
it "bulk query Infra Resource Pools" do
600+
FactoryBot.create(:resource_pool, :type => 'ManageIQ::Providers::InfraManager::ResourcePool')
601+
test_collection_bulk_query(:resource_pool_infras, api_resource_pool_infras_url, ManageIQ::Providers::InfraManager::ResourcePool)
592602
end
593603

594604
it "bulk query Roles" do

spec/requests/policies_assignment_spec.rb

Lines changed: 132 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
# /api/vms/:id
77
# /api/providers/:id
88
# /api/hosts/:id
9-
# /api/resource_pools/:id
9+
# /api/resource_pool_clouds/:id
10+
# /api/resource_pool_infras/:id
1011
# /api/clusters/:id
1112
# /api/templates/:id
1213
#
@@ -22,7 +23,8 @@
2223
let(:cluster) do
2324
FactoryBot.create(:ems_cluster, :ext_management_system => provider, :hosts => [host], :vms => [])
2425
end
25-
let(:rp) { FactoryBot.create(:resource_pool, :name => "Resource Pool 1") }
26+
let(:rpc) { FactoryBot.create(:resource_pool, :name => "Resource Pool 1", :type => ManageIQ::Providers::CloudManager::ResourcePool) }
27+
let(:rpi) { FactoryBot.create(:resource_pool, :name => "Resource Pool 1", :type => ManageIQ::Providers::InfraManager::ResourcePool) }
2628
let(:vm) { FactoryBot.create(:vm) }
2729
let(:template) do
2830
FactoryBot.create(:miq_template, :name => "Tmpl 1", :vendor => "vmware", :location => "tmpl_1.vmtx")
@@ -322,87 +324,171 @@ def test_unassign_multiple_policy_profiles(api_object_policies_url, collection,
322324
end
323325
end
324326

325-
context "Resource Pool policies subcollection assignments" do
326-
it "assign Resource Pool policy without appropriate role" do
327-
test_policy_assign_no_role(api_resource_pool_policies_url(nil, rp))
327+
context "Resource Pool Cloud policies subcollection assignments" do
328+
it "assign Resource Pool Cloud policy without appropriate role" do
329+
test_policy_assign_no_role(api_resource_pool_cloud_policies_url(nil, rpc))
328330
end
329331

330-
it "assign Resource Pool policy with invalid href" do
331-
test_policy_assign_invalid_policy(api_resource_pool_policies_url(nil, rp), :resource_pools, :policies)
332+
it "assign Resource Pool Cloud policy with invalid href" do
333+
test_policy_assign_invalid_policy(api_resource_pool_cloud_policies_url(nil, rpc), :resource_pool_clouds, :policies)
332334
end
333335

334-
it "assign Resource Pool policy with invalid guid" do
335-
test_policy_assign_invalid_policy_guid(api_resource_pool_url(nil, rp), api_resource_pool_policies_url(nil, rp), :resource_pools, :policies)
336+
it "assign Resource Pool Cloud policy with invalid guid" do
337+
test_policy_assign_invalid_policy_guid(api_resource_pool_cloud_url(nil, rpc), api_resource_pool_cloud_policies_url(nil, rpc), :resource_pool_clouds, :policies)
336338
end
337339

338-
it "assign Resource Pool multiple policies" do
339-
test_assign_multiple_policies(api_resource_pool_url(nil, rp),
340-
api_resource_pool_policies_url(nil, rp),
341-
:resource_pools,
340+
it "assign Resource Pool Cloud multiple policies" do
341+
test_assign_multiple_policies(api_resource_pool_cloud_url(nil, rpc),
342+
api_resource_pool_cloud_policies_url(nil, rpc),
343+
:resource_pool_clouds,
342344
:policies,
343-
:object => rp,
345+
:object => rpc,
344346
:policies => [p1, p2])
345347
end
346348

347-
it "unassign Resource Pool policy without approriate role" do
348-
test_policy_unassign_no_role(api_resource_pool_policies_url(nil, rp))
349+
it "unassign Resource Pool Cloud policy without approriate role" do
350+
test_policy_unassign_no_role(api_resource_pool_cloud_policies_url(nil, rpc))
349351
end
350352

351-
it "unassign Resource Pool policy with invalid href" do
352-
test_policy_unassign_invalid_policy(api_resource_pool_policies_url(nil, rp), :resource_pools, :policies)
353+
it "unassign Resource Pool Cloud policy with invalid href" do
354+
test_policy_unassign_invalid_policy(api_resource_pool_cloud_policies_url(nil, rpc), :resource_pool_clouds, :policies)
353355
end
354356

355-
it "unassign Resource Pool policy with invalid guid" do
356-
test_policy_unassign_invalid_policy_guid(api_resource_pool_url(nil, rp), api_resource_pool_policies_url(nil, rp), :resource_pools, :policies)
357+
it "unassign Resource Pool Cloud policy with invalid guid" do
358+
test_policy_unassign_invalid_policy_guid(api_resource_pool_cloud_url(nil, rpc), api_resource_pool_cloud_policies_url(nil, rpc), :resource_pool_clouds, :policies)
357359
end
358360

359-
it "unassign Resource Pool multiple policies" do
360-
test_unassign_multiple_policies(api_resource_pool_policies_url(nil, rp), :resource_pools, :policies, :object => rp)
361+
it "unassign Resource Pool Cloud multiple policies" do
362+
test_unassign_multiple_policies(api_resource_pool_cloud_policies_url(nil, rpc), :resource_pool_clouds, :policies, :object => rpc)
361363
end
362364
end
363365

364-
context "Resource Pool policy profiles subcollection assignments" do
365-
it "assign Resource Pool policy profile without approriate role" do
366-
test_policy_assign_no_role(api_resource_pool_policy_profiles_url(nil, rp))
366+
context "Resource Pool Cloud policy profiles subcollection assignments" do
367+
it "assign Resource Pool Cloud policy profile without approriate role" do
368+
test_policy_assign_no_role(api_resource_pool_cloud_policy_profiles_url(nil, rpc))
367369
end
368370

369-
it "assign Resource Pool policy profile with invalid href" do
370-
test_policy_assign_invalid_policy(api_resource_pool_policy_profiles_url(nil, rp), :resource_pools, :policy_profiles)
371+
it "assign Resource Pool Cloud policy profile with invalid href" do
372+
test_policy_assign_invalid_policy(api_resource_pool_cloud_policy_profiles_url(nil, rpc), :resource_pool_clouds, :policy_profiles)
371373
end
372374

373-
it "assign Resource Pool policy profile with invalid guid" do
374-
test_policy_assign_invalid_policy_guid(api_resource_pool_url(nil, rp), api_resource_pool_policy_profiles_url(nil, rp), :resource_pools, :policy_profiles)
375+
it "assign Resource Pool Cloud policy profile with invalid guid" do
376+
test_policy_assign_invalid_policy_guid(api_resource_pool_cloud_url(nil, rpc), api_resource_pool_cloud_policy_profiles_url(nil, rpc), :resource_pool_clouds, :policy_profiles)
375377
end
376378

377-
it "assign Resource Pool multiple policy profiles" do
378-
test_assign_multiple_policies(api_resource_pool_url(nil, rp),
379-
api_resource_pool_policy_profiles_url(nil, rp),
380-
:resource_pools,
379+
it "assign Resource Pool Cloud multiple policy profiles" do
380+
test_assign_multiple_policies(api_resource_pool_cloud_url(nil, rpc),
381+
api_resource_pool_cloud_policy_profiles_url(nil, rpc),
382+
:resource_pool_clouds,
381383
:policy_profiles,
382-
:object => rp,
384+
:object => rpc,
383385
:policies => [ps1, ps2])
384386
end
385387

386-
it "unassign Resource Pool policy profile without approriate role" do
387-
test_policy_unassign_no_role(api_resource_pool_policy_profiles_url(nil, rp))
388+
it "unassign Resource Pool Cloud policy profile without approriate role" do
389+
test_policy_unassign_no_role(api_resource_pool_cloud_policy_profiles_url(nil, rpc))
388390
end
389391

390-
it "unassign Resource Pool policy profile with invalid href" do
391-
test_policy_unassign_invalid_policy(api_resource_pool_policy_profiles_url(nil, rp), :resource_pools, :policy_profiles)
392+
it "unassign Resource Pool Cloud policy profile with invalid href" do
393+
test_policy_unassign_invalid_policy(api_resource_pool_cloud_policy_profiles_url(nil, rpc), :resource_pool_clouds, :policy_profiles)
392394
end
393395

394-
it "unassign Resource Pool policy profile with invalid guid" do
395-
test_policy_unassign_invalid_policy_guid(api_resource_pool_url(nil, rp),
396-
api_resource_pool_policy_profiles_url(nil, rp),
397-
:resource_pools,
396+
it "unassign Resource Pool Cloud policy profile with invalid guid" do
397+
test_policy_unassign_invalid_policy_guid(api_resource_pool_cloud_url(nil, rpc),
398+
api_resource_pool_cloud_policy_profiles_url(nil, rpc),
399+
:resource_pool_clouds,
398400
:policy_profiles)
399401
end
400402

401-
it "unassign Resource Pool multiple policy profiles" do
402-
test_unassign_multiple_policy_profiles(api_resource_pool_policy_profiles_url(nil, rp),
403-
:resource_pools,
403+
it "unassign Resource Pool Cloud multiple policy profiles" do
404+
test_unassign_multiple_policy_profiles(api_resource_pool_cloud_policy_profiles_url(nil, rpc),
405+
:resource_pool_clouds,
404406
:policy_profiles,
405-
:object => rp)
407+
:object => rpc)
408+
end
409+
end
410+
411+
context "Resource Pool Infra policies subcollection assignments" do
412+
it "assign Resource Pool Infra policy without appropriate role" do
413+
test_policy_assign_no_role(api_resource_pool_infra_policies_url(nil, rpi))
414+
end
415+
416+
it "assign Resource Pool Infra policy with invalid href" do
417+
test_policy_assign_invalid_policy(api_resource_pool_infra_policies_url(nil, rpi), :resource_pool_infras, :policies)
418+
end
419+
420+
it "assign Resource Pool Infra policy with invalid guid" do
421+
test_policy_assign_invalid_policy_guid(api_resource_pool_infra_url(nil, rpi), api_resource_pool_infra_policies_url(nil, rpi), :resource_pool_infras, :policies)
422+
end
423+
424+
it "assign Resource Pool Infra multiple policies" do
425+
test_assign_multiple_policies(api_resource_pool_infra_url(nil, rpi),
426+
api_resource_pool_infra_policies_url(nil, rpi),
427+
:resource_pool_infras,
428+
:policies,
429+
:object => rpi,
430+
:policies => [p1, p2])
431+
end
432+
433+
it "unassign Resource Pool Infra policy without approriate role" do
434+
test_policy_unassign_no_role(api_resource_pool_infra_policies_url(nil, rpi))
435+
end
436+
437+
it "unassign Resource Pool Infra policy with invalid href" do
438+
test_policy_unassign_invalid_policy(api_resource_pool_infra_policies_url(nil, rpi), :resource_pool_infras, :policies)
439+
end
440+
441+
it "unassign Resource Pool Infra policy with invalid guid" do
442+
test_policy_unassign_invalid_policy_guid(api_resource_pool_infra_url(nil, rpi), api_resource_pool_infra_policies_url(nil, rpi), :resource_pool_infras, :policies)
443+
end
444+
445+
it "unassign Resource Pool Infra multiple policies" do
446+
test_unassign_multiple_policies(api_resource_pool_infra_policies_url(nil, rpi), :resource_pool_infras, :policies, :object => rpi)
447+
end
448+
end
449+
450+
context "Resource Pool Infra policy profiles subcollection assignments" do
451+
it "assign Resource Pool Infra policy profile without approriate role" do
452+
test_policy_assign_no_role(api_resource_pool_infra_policy_profiles_url(nil, rpi))
453+
end
454+
455+
it "assign Resource Pool Infra policy profile with invalid href" do
456+
test_policy_assign_invalid_policy(api_resource_pool_infra_policy_profiles_url(nil, rpi), :resource_pool_infras, :policy_profiles)
457+
end
458+
459+
it "assign Resource Pool Infra policy profile with invalid guid" do
460+
test_policy_assign_invalid_policy_guid(api_resource_pool_infra_url(nil, rpi), api_resource_pool_infra_policy_profiles_url(nil, rpi), :resource_pool_infras, :policy_profiles)
461+
end
462+
463+
it "assign Resource Pool Infra multiple policy profiles" do
464+
test_assign_multiple_policies(api_resource_pool_infra_url(nil, rpi),
465+
api_resource_pool_infra_policy_profiles_url(nil, rpi),
466+
:resource_pool_infras,
467+
:policy_profiles,
468+
:object => rpi,
469+
:policies => [ps1, ps2])
470+
end
471+
472+
it "unassign Resource Pool Infra policy profile without approriate role" do
473+
test_policy_unassign_no_role(api_resource_pool_infra_policy_profiles_url(nil, rpi))
474+
end
475+
476+
it "unassign Resource Pool Infra policy profile with invalid href" do
477+
test_policy_unassign_invalid_policy(api_resource_pool_infra_policy_profiles_url(nil, rpi), :resource_pool_infras, :policy_profiles)
478+
end
479+
480+
it "unassign Resource Pool Infra policy profile with invalid guid" do
481+
test_policy_unassign_invalid_policy_guid(api_resource_pool_infra_url(nil, rpi),
482+
api_resource_pool_infra_policy_profiles_url(nil, rpi),
483+
:resource_pool_infras,
484+
:policy_profiles)
485+
end
486+
487+
it "unassign Resource Pool Infra multiple policy profiles" do
488+
test_unassign_multiple_policy_profiles(api_resource_pool_infra_policy_profiles_url(nil, rpi),
489+
:resource_pool_infras,
490+
:policy_profiles,
491+
:object => rpi)
406492
end
407493
end
408494

0 commit comments

Comments
 (0)