[PATCH conductor 14/20] Changes format of XML on input of create action
pblaho at redhat.com
pblaho at redhat.com
Fri Jun 8 00:38:07 UTC 2012
From: Petr Blaho <pblaho at redhat.com>
https://www.aeolusproject.org/redmine/issues/3248
Now create action accepts provider type id as an attribut
of provider_type node - <provider_type id="1" />
(before only <provider_type_id>1</provider_type_id> worked)
---
src/app/controllers/providers_controller.rb | 10 ++++++++++
.../step_definitions/provider_api_steps.rb | 2 +-
src/spec/controllers/providers_controller_spec.rb | 4 +++-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/app/controllers/providers_controller.rb b/src/app/controllers/providers_controller.rb
index 3ed37b1..a741d6e 100644
--- a/src/app/controllers/providers_controller.rb
+++ b/src/app/controllers/providers_controller.rb
@@ -102,11 +102,21 @@ class ProvidersController < ApplicationController
def create
@title = t("providers.new.new_provider")
require_privilege(Privilege::CREATE, Provider)
+
if params[:provider].has_key?(:provider_type_deltacloud_driver)
provider_type = params[:provider].delete(:provider_type_deltacloud_driver)
provider_type = ProviderType.find_by_deltacloud_driver(provider_type)
params[:provider][:provider_type_id] = provider_type.id
end
+
+ # looking for ProviderType based on content of provider_type tag in xml
+ if params[:provider].has_key?(:provider_type) && params[:provider][:provider_type].has_key?(:id)
+ provider_type_hash = params[:provider].delete(:provider_type)
+ provider_type_id = provider_type_hash[:id]
+ provider_type = ProviderType.find_by_id(provider_type_id)
+ params[:provider][:provider_type_id] = provider_type.id
+ end
+
@provider = Provider.new(params[:provider])
if @provider.save
diff --git a/src/features/step_definitions/provider_api_steps.rb b/src/features/step_definitions/provider_api_steps.rb
index 8ca44f7..5b7f5fd 100644
--- a/src/features/step_definitions/provider_api_steps.rb
+++ b/src/features/step_definitions/provider_api_steps.rb
@@ -55,7 +55,7 @@ When /^I create provider with correct data via XML$/ do
<provider>
<name>#{@provider.name}</name>
<url>#{@provider.url}</url>
- <provider_type_id>#{@provider.provider_type_id}</provider_type_id>
+ <provider_type id="#{@provider.provider_type_id}" />
</provider>
]
diff --git a/src/spec/controllers/providers_controller_spec.rb b/src/spec/controllers/providers_controller_spec.rb
index b71a0a1..1ee608d 100644
--- a/src/spec/controllers/providers_controller_spec.rb
+++ b/src/spec/controllers/providers_controller_spec.rb
@@ -231,7 +231,9 @@ describe ProvidersController do
before(:each) do
post :create, :provider => { :name => provider.name,
:url => provider.url,
- :provider_type_id => provider.provider_type.id
+ :provider_type => {
+ :id => provider.provider_type.id
+ }
}
end
--
1.7.7.6
More information about the aeolus-devel
mailing list