Project

General

Profile

« Previous | Next » 

Revision d575926a

Added by Alon Goldboim almost 9 years ago

Fixes #10356 - changed the POST/PUT RABL template to be the same as the GET template

HTTP response code standardized to 201 on create.

View differences:

app/controllers/api/base_controller.rb
end
def process_success(response = nil)
render_status = request.post? ? :created : :ok
response ||= get_resource
respond_with response, :responder => ApiResponder
respond_with response, :responder => ApiResponder, :status => render_status
end
def process_response(condition, response = nil)
app/controllers/api/v2/compute_attributes_controller.rb
params[:compute_attribute].merge!(:compute_profile_id => params[:compute_profile_id],
:compute_resource_id => params[:compute_resource_id])
@compute_attribute = ComputeAttribute.create!(params[:compute_attribute])
render :json => @compute_attribute.to_json
process_response @compute_attribute
end
api :PUT, "/compute_resources/:compute_resource_id/compute_profiles/:compute_profile_id/compute_attributes/:id", N_("Update a compute attributes set")
app/controllers/api/v2/override_values_controller.rb
def create
@override_value = @smart.lookup_values.create!(params[:override_value])
@smart.update_attribute(:override, true)
process_response @override_value
end
api :PUT, "/smart_variables/:smart_variable_id/override_values/:id", N_("Update an override value for a specific smart variable")
app/controllers/api/v2/smart_variables_controller.rb
def create
@smart_variable = LookupKey.new(params[:smart_variable]) unless @puppetclass
@smart_variable ||= @puppetclass.lookup_keys.build(params[:smart_variable])
@smart_variable.save!
process_response @smart_variable.save
end
api :PUT, "/smart_variables/:id", N_("Update a smart variable")
app/views/api/v2/architectures/update.json.rabl
object @architecture
extends "api/v2/architectures/show"
app/views/api/v2/audits/create.json.rabl
object @audit
extends "api/v2/audits/show"
app/views/api/v2/audits/update.json.rabl
object @audit
extends "api/v2/audits/show"
app/views/api/v2/auth_source_ldaps/create.json.rabl
object @auth_source_ldap
extends "api/v2/auth_source_ldaps/show"
app/views/api/v2/auth_source_ldaps/update.json.rabl
object @auth_source_ldap
extends "api/v2/auth_source_ldaps/show"
app/views/api/v2/bookmarks/create.json.rabl
./show.json.rabl
app/views/api/v2/bookmarks/create.json.rabl
object @bookmark
extends "api/v2/bookmarks/show"
app/views/api/v2/bookmarks/show.json.rabl
object @bookmark
attributes :name, :controller, :query, :public, :id, :owner_id, :owner_type
attributes :name, :controller, :query, :public, :id, :owner_id, :owner_type
app/views/api/v2/bookmarks/update.json.rabl
object @bookmark
attributes :name, :controller, :query, :public, :id
child :owner do
attributes :name
attributes :login
attributes :mail, :as => :email
end
extends "api/v2/bookmarks/show"
app/views/api/v2/common_parameters/update.json.rabl
object @common_parameter
extends "api/v2/common_parameters/show"
app/views/api/v2/compute_attributes/create.json.rabl
object @compute_attribute
extends "api/v2/compute_attributes/show"
app/views/api/v2/compute_attributes/update.json.rabl
object @compute_attribute
extends "api/v2/compute_attributes/show"
app/views/api/v2/compute_profiles/create.json.rabl
object @compute_profile
extends "api/v2/compute_profiles/show"
app/views/api/v2/compute_profiles/update.json.rabl
object @compute_profile
extends "api/v2/compute_profiles/show"
app/views/api/v2/compute_resources/update.json.rabl
object @compute_resource
extends "api/v2/compute_resources/show"
app/views/api/v2/config_groups/create.json.rabl
object @config_group
extends "api/v2/config_groups/show"
app/views/api/v2/config_groups/update.json.rabl
object @config_group
extends "api/v2/config_groups/show"
app/views/api/v2/config_templates/update.json.rabl
object @config_template => :config_template
extends "api/v2/config_templates/show"
app/views/api/v2/domains/create.json.rabl
object @domain
extends "api/v2/domains/show"
app/views/api/v2/domains/update.json.rabl
object @domain
extends "api/v2/domains/show"
app/views/api/v2/environments/update.json.rabl
object @environment
extends "api/v2/environments/show"
app/views/api/v2/external_usergroups/update.json.rabl
object @external_usergroup
extends "api/v2/external_usergroups/show"
app/views/api/v2/filters/update.json.rabl
object @filter
extends "api/v2/filters/show"
app/views/api/v2/hostgroups/update.json.rabl
object @hostgroup
extends "api/v2/hostgroups/show"
app/views/api/v2/images/create.json.rabl
object @image
extends "api/v2/images/show"
app/views/api/v2/images/update.json.rabl
object @image
extends "api/v2/images/show"
app/views/api/v2/mail_notifications/create.json.rabl
object @mail_notification
extends "api/v2/mail_notifications/show"
app/views/api/v2/mail_notifications/update.json.rabl
object @mail_notification
extends "api/v2/mail_notifications/show"
app/views/api/v2/media/create.json.rabl
object @medium
extends "api/v2/media/show"
app/views/api/v2/media/update.json.rabl
object @medium
extends "api/v2/media/show"
app/views/api/v2/models/create.json.rabl
object @model
extends "api/v2/models/show"
app/views/api/v2/models/update.json.rabl
object @model
extends "api/v2/models/show"
app/views/api/v2/override_values/update.json.rabl
object @override_value
extends "api/v2/override_values/show"
app/views/api/v2/permissions/create.json.rabl
object @permission
extends "api/v2/permissions/show"
app/views/api/v2/permissions/update.json.rabl
object @permission
extends "api/v2/permissions/show"
app/views/api/v2/provisioning_templates/update.json.rabl
object @provisioning_template
extends "api/v2/provisioning_templates/show"
app/views/api/v2/ptables/create.json.rabl
object @ptable
extends "api/v2/ptables/show"
app/views/api/v2/ptables/update.json.rabl
object @ptable
extends "api/v2/ptables/show"
app/views/api/v2/puppetclasses/create.json.rabl
object @puppetclass
extends "api/v2/puppetclasses/show"
app/views/api/v2/puppetclasses/update.json.rabl
object @puppetclass
extends "api/v2/puppetclasses/show"
app/views/api/v2/realms/create.json.rabl
object @realm
extends "api/v2/realms/show"
app/views/api/v2/realms/update.json.rabl
object @realm
extends "api/v2/realms/show"
app/views/api/v2/reports/create.json.rabl
object @report
extends "api/v2/reports/show"
app/views/api/v2/reports/update.json.rabl
object @report
extends "api/v2/reports/show"
app/views/api/v2/roles/update.json.rabl
object @role
extends "api/v2/roles/show"
app/views/api/v2/settings/update.json.rabl
object @setting
extends "api/v2/settings/show"
app/views/api/v2/smart_class_parameters/update.json.rabl
object @smart_class_parameter
extends "api/v2/smart_class_parameters/show"
app/views/api/v2/smart_proxies/create.json.rabl
object @smart_proxy
extends "api/v2/smart_proxies/show"
app/views/api/v2/smart_proxies/update.json.rabl
object @smart_proxy
extends "api/v2/smart_proxies/show"
app/views/api/v2/smart_variables/update.json.rabl
object @smart_variable
extends "api/v2/smart_variables/show"
app/views/api/v2/taxonomies/create.json.rabl
object @taxonomy
extends "api/v2/taxonomies/show"
app/views/api/v2/template_combinations/update.json.rabl
object @template_combination
extends "api/v2/template_combinations/show"
app/views/api/v2/template_kinds/create.json.rabl
object @template_kind
extends "api/v2/template_kinds/show"
app/views/api/v2/template_kinds/update.json.rabl
object @template_kind
extends "api/v2/template_kinds/show"
app/views/api/v2/usergroups/create.json.rabl
object @usergroup
extends "api/v2/usergroups/show"
app/views/api/v2/usergroups/update.json.rabl
object @usergroup
extends "api/v2/usergroups/show"
app/views/api/v2/users/update.json.rabl
object @user
extends "api/v2/users/show"
test/functional/api/v2/architectures_controller_test.rb
assert_difference('Architecture.count') do
post :create, { :architecture => arch_i386 }
end
assert_response :success
assert_response :created
end
test "should update architecture" do
test/functional/api/v2/auth_source_ldaps_controller_test.rb
assert_difference('AuthSourceLdap.count', 1) do
post :create, { :auth_source_ldap => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update auth_source_ldap" do
test/functional/api/v2/bookmarks_controller_test.rb
assert_difference('Bookmark.count') do
post :create, { :bookmark => simple_bookmark }
end
assert_response :success
assert_response :created
end
test "should create bookmark with a dot" do
assert_difference('Bookmark.count') do
post :create, { :bookmark => dot_bookmark }
end
assert_response :success
assert_response :created
end
test "should update bookmark" do
test/functional/api/v2/common_parameters_controller_test.rb
assert_difference('CommonParameter.count') do
post :create, { :common_parameter => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update common_parameter" do
test/functional/api/v2/compute_attributes_controller_test.rb
:compute_resource_id => compute_resources(:one).id
}
end
assert_response :success
assert_response :created
end
test "should update compute attribute" do
test/functional/api/v2/compute_profiles_controller_test.rb
assert_difference('ComputeProfile.count') do
post :create, { :compute_profile => {:name => '4-Xlarge'} }
end
assert_response :success
assert_response :created
end
test "should update compute_profile" do
test/functional/api/v2/compute_resources_controller_test.rb
test "should create valid compute resource" do
post :create, { :compute_resource => valid_attrs }
assert_response :success
assert_response :created
show_response = ActiveSupport::JSON.decode(@response.body)
assert !show_response.empty?
end
test/functional/api/v2/config_templates_controller_test.rb
post :create, { :config_template => valid_attrs }
template = ActiveSupport::JSON.decode(@response.body)
assert template["name"] == "RandomName"
assert_response 200
assert_response :created
end
test "should not create invalid" do
test/functional/api/v2/domains_controller_test.rb
test "should create valid domain" do
post :create, { :domain => { :name => "domain.net" } }
assert_response :success
assert_response :created
show_response = ActiveSupport::JSON.decode(@response.body)
assert !show_response.empty?
end
test/functional/api/v2/environments_controller_test.rb
assert_difference('Environment.count') do
post :create, { :environment => development_environment }
end
assert_response :success
assert_response :created
end
test "should update environment" do
test/functional/api/v2/external_usergroups_controller_test.rb
post :create, { :usergroup_id => usergroup.to_param,
:external_usergroup => valid_attrs }
end
assert_response :success
assert_response :created
end
test 'refresh external user group' do
test/functional/api/v2/filters_controller_test.rb
assert_difference('Filter.count') do
post :create, { :filter => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update filter" do
test/functional/api/v2/hostgroups_controller_test.rb
assert_difference('Hostgroup.count') do
post :create, { :hostgroup => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update hostgroup" do
test/functional/api/v2/hosts_controller_test.rb
assert_difference('Host.count') do
post :create, { :host => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should create interfaces" do
disable_orchestration
post :create, { :host => basic_attrs.merge!(:interfaces_attributes => nics_attrs) }
assert_response :success
assert_response :created
assert_equal 2, last_host.interfaces.count
assert last_host.interfaces.find_by_mac('00:11:22:33:44:00').primary?
......
end
post :create, { :host => basic_attrs.merge!(:interfaces_attributes => hash_nics_attrs) }
assert_response :success
assert_response :created
assert_equal 2, last_host.interfaces.count
assert last_host.interfaces.find_by_mac('00:11:22:33:44:00').primary?
......
compute_attrs = compute_attributes(:with_interfaces)
post :create, { :host => basic_attrs_with_profile(compute_attrs).merge(:interfaces_attributes => nics_attrs) }
assert_response :success
assert_response :created
assert_equal compute_attrs.vm_interfaces.count, last_host.interfaces.count
assert_equal expected_compute_attributes(compute_attrs, 0), last_host.interfaces.find_by_mac('00:11:22:33:44:00').compute_attributes
......
test "should create host with managed is false if parameter is passed" do
disable_orchestration
post :create, { :host => valid_attrs.merge!(:managed => false) }
assert_response :success
assert_response :created
assert_equal false, last_host.managed?
end
test/functional/api/v2/images_controller_test.rb
assert_difference('Image.count') do
post :create, { :compute_resource_id => images(:two).compute_resource_id, :image => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update image" do
test/functional/api/v2/interfaces_controller_test.rb
assert_difference('@host.interfaces.count') do
post :create, { :host_id => @host.to_param, :interface => valid_attrs }
end
assert_response :success
assert_response :created
end
test "create interface with old style type" do
assert_difference('@host.interfaces.count') do
post :create, { :host_id => @host.to_param, :interface => valid_attrs.merge('type' => 'Nic::BMC') }
end
assert_response :success
assert_response :created
end
test "create interface with unknown type" do
test/functional/api/v2/operatingsystems_controller_test.rb
assert_difference('Operatingsystem.count') do
post :create, { :operatingsystem => os }
end
assert_response :success
assert_response :created
assert_not_nil assigns(:operatingsystem)
end
test/functional/api/v2/os_default_templates_controller_test.rb
:template_kind_id => template_kinds(:ipxe).id}
}
end
assert_response :success
assert_response :created
assert_not_nil assigns(:os_default_template)
end
test/functional/api/v2/override_values_controller_test.rb
assert_difference('LookupValue.count') do
post :create, {:smart_class_parameter_id => lookup_keys(:complex).to_param, :override_value => smart_class_attrs }
end
assert_response :success
assert_response :created
end
test "should show specific override values for specific smart variable" do
test/functional/api/v2/parameters_controller_test.rb
assert_difference('@host.parameters.count') do
post :create, { :host_id => @host.to_param, :parameter => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should create domain parameter" do
......
assert_difference('domain.parameters.count') do
post :create, { :domain_id => domain.to_param, :parameter => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should create hostgroup parameter" do
......
assert_difference('hostgroup.group_parameters.count') do
post :create, { :hostgroup_id => hostgroup.to_param, :parameter => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should create os parameter" do
......
assert_difference('os.parameters.count') do
post :create, { :operatingsystem_id => os.to_param, :parameter => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update nested host parameter" do
test/functional/api/v2/provisioning_templates_controller_test.rb
post :create, { :provisioning_template => valid_attrs }
template = ActiveSupport::JSON.decode(@response.body)
assert template["name"] == "RandomName"
assert_response 200
assert_response :created
end
test "should not create invalid" do
test/functional/api/v2/ptables_controller_test.rb
assert_difference('Ptable.count') do
post :create, { :ptable => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update ptable" do
test/functional/api/v2/puppetclasses_controller_test.rb
assert_difference('Puppetclass.count') do
post :create, { :puppetclass => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update puppetclass" do
test/functional/api/v2/realms_controller_test.rb
test "should create valid realm" do
post :create, { :realm => { :name => "realm.net", :realm_proxy_id => smart_proxies(:realm).to_param, :realm_type => "FreeIPA" } }
assert_response :success
assert_response :created
show_response = ActiveSupport::JSON.decode(@response.body)
assert !show_response.empty?
end
test/functional/api/v2/reports_controller_test.rb
Resolv.any_instance.stubs(:getnames).returns(['else.where'])
post :create, {:report => create_a_puppet_transaction_report }
assert_nil @controller.detected_proxy
assert_response :success
assert_response :created
end
test 'hosts with a registered smart proxy on should create a report successfully' do
......
Resolv.any_instance.stubs(:getnames).returns([host])
post :create, {:report => create_a_puppet_transaction_report }
assert_equal proxy, @controller.detected_proxy
assert_response :success
assert_response :created
end
test 'hosts without a registered smart proxy on should not be able to create a report' do
......
@request.env['SSL_CLIENT_S_DN'] = 'CN=else.where'
@request.env['SSL_CLIENT_VERIFY'] = 'SUCCESS'
post :create, {:report => create_a_puppet_transaction_report }
assert_response :success
assert_response :created
end
test 'hosts without a registered smart proxy but with an SSL cert should not be able to create a report' do
......
Resolv.any_instance.stubs(:getnames).returns(['else.where'])
post :create, {:report => create_a_puppet_transaction_report }
assert_response :success
assert_response :created
end
end
test/functional/api/v2/roles_controller_test.rb
assert_difference('Role.count') do
post :create, { :role => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update role" do
test/functional/api/v2/smart_proxies_controller_test.rb
assert_difference('SmartProxy.count') do
post :create, { :smart_proxy => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update smart_proxy" do
test/functional/api/v2/smart_variables_controller_test.rb
post :create, { :smart_variable => valid_attrs }
end
end
assert_response :success
assert_response :created
end
test "should show specific smart variable" do
test/functional/api/v2/subnets_controller_test.rb
assert_difference('Subnet.count') do
post :create, { :subnet => valid_attrs }
end
assert_response :success
assert_response :created
end
test "does not create subnet with non-existent domain" do
test/functional/api/v2/template_combinations_controller_test.rb
assert_equal(template_combination["environment_id"], environments(:production).id)
assert_equal(template_combination["hostgroup_id"], hostgroups(:unusual).id)
assert_equal(template_combination["config_template_id"], templates(:mystring2).id)
assert_response 200
assert_response :created
end
test "should update template combination" do
test/functional/api/v2/usergroups_controller_test.rb
assert_difference('Usergroup.count') do
post :create, { :usergroup => valid_attrs }
end
assert_response :success
assert_response :created
end
test "should update usergroup" do
test/functional/api/v2/users_controller_test.rb
post :create, { :user => {
:admin => true, :login => 'new_admin', :auth_source_id => auth_sources(:one).id }
}
assert_response :success
assert_response :created
assert User.find_by_login('new_admin').admin?
end
end

Also available in: Unified diff