File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed
Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 11module Api
22 class CloudSubnetsController < BaseController
33 include Subcollections ::Tags
4+
5+ def options
6+ return super unless params [ :ems_id ]
7+
8+ ems = ExtManagementSystem . find ( params [ :ems_id ] )
9+
10+ raise BadRequestError , "No CloudSubnet support for - #{ ems . class } " unless defined? ( ems . class ::CloudSubnet )
11+
12+ klass = ems . class ::CloudSubnet
13+
14+ raise BadRequestError , "No DDF specified for - #{ klass } " unless klass . respond_to? ( :params_for_create )
15+
16+ render_options ( :cloud_subnets , :form_schema => klass . params_for_create ( ems ) )
17+ end
418 end
519end
Original file line number Diff line number Diff line change 7777 expect ( response ) . to have_http_status ( :forbidden )
7878 end
7979 end
80+
81+ describe 'OPTIONS /api/cloud_subnets?ems_id=:id' do
82+ it 'returns a DDF schema when available via OPTIONS' do
83+ zone = FactoryBot . create ( :zone , :name => "api_zone" )
84+ provider = FactoryBot . create ( :ems_network , :zone => zone )
85+
86+ allow ( provider . class ::CloudSubnet ) . to receive ( :params_for_create ) . and_return ( 'foo' )
87+
88+ options ( api_cloud_subnets_url , :params => { :ems_id => provider . id } )
89+ options ( "#{ api_cloud_subnets_url } ?ems_id=#{ provider . id } " )
90+
91+ expect ( response . parsed_body [ 'data' ] [ 'form_schema' ] ) . to eq ( 'foo' )
92+ expect ( response ) . to have_http_status ( :ok )
93+ end
94+ end
8095end
You can’t perform that action at this time.
0 commit comments