From 65f703f8461cebd0c0872b2ce944bcd3a107adf2 Mon Sep 17 00:00:00 2001 From: Alberto Bellotti Date: Tue, 28 Feb 2017 17:58:58 -0500 Subject: [PATCH] Exposing regions as a primary collection /api/regions - /api/regions - Enhanced miq_product_features to support Region queries/edits - Support queries of /api/regions - Support "query" post for bulk queries --- app/controllers/api/regions_controller.rb | 4 ++++ config/api.yml | 18 ++++++++++++++++++ db/fixtures/miq_product_features.yml | 17 +++++++++++++++++ spec/requests/api/collections_spec.rb | 10 ++++++++++ 4 files changed, 49 insertions(+) create mode 100644 app/controllers/api/regions_controller.rb diff --git a/app/controllers/api/regions_controller.rb b/app/controllers/api/regions_controller.rb new file mode 100644 index 00000000000..7da9ba16480 --- /dev/null +++ b/app/controllers/api/regions_controller.rb @@ -0,0 +1,4 @@ +module Api + class RegionsController < BaseController + end +end diff --git a/config/api.yml b/config/api.yml index 895769807de..a6163872bf9 100644 --- a/config/api.yml +++ b/config/api.yml @@ -1307,6 +1307,24 @@ :delete: - :name: delete :identifier: chargeback_rates_delete + :regions: + :description: Regions + :identifier: region + :options: + - :collection + :verbs: *gp + :klass: MiqRegion + :collection_actions: + :get: + - :name: read + :identifier: region + :post: + - :name: query + :identifier: region + :resource_actions: + :get: + - :name: read + :identifier: region :reports: :description: Reports :identifier: miq_report diff --git a/db/fixtures/miq_product_features.yml b/db/fixtures/miq_product_features.yml index 7435d0e512c..5f49eec4143 100644 --- a/db/fixtures/miq_product_features.yml +++ b/db/fixtures/miq_product_features.yml @@ -2716,6 +2716,23 @@ :feature_type: admin :hidden: true :identifier: zone_delete + - :name: Regions + :description: Regions + :feature_type: node + :hidden: true + :identifier: region + :children: + - :name: Modify + :description: Modify Regions + :feature_type: admin + :identifier: region_admin + :hidden: true + :children: + - :name: Edit + :description: Edit a Region + :feature_type: admin + :hidden: true + :identifier: region_edit - :name: Access Control :description: Access Control Accordion :feature_type: node diff --git a/spec/requests/api/collections_spec.rb b/spec/requests/api/collections_spec.rb index 3d0c8d2c278..bcdd686516e 100644 --- a/spec/requests/api/collections_spec.rb +++ b/spec/requests/api/collections_spec.rb @@ -168,6 +168,11 @@ def test_collection_bulk_query(collection, collection_url, klass, id = nil) test_collection_query(:rates, rates_url, ChargebackRateDetail) end + it "query Regions" do + FactoryGirl.create(:miq_region) + test_collection_query(:regions, regions_url, MiqRegion) + end + it "query Reports" do FactoryGirl.create(:miq_report) test_collection_query(:reports, reports_url, MiqReport) @@ -433,6 +438,11 @@ def test_collection_bulk_query(collection, collection_url, klass, id = nil) test_collection_bulk_query(:rates, rates_url, ChargebackRateDetail) end + it "bulk query Regions" do + FactoryGirl.create(:miq_region) + test_collection_bulk_query(:regions, regions_url, MiqRegion) + end + it "bulk query Report Results" do FactoryGirl.create(:miq_report_result) test_collection_bulk_query(:results, results_url, MiqReportResult)