From: Jan Provaznik<jprovazn(a)redhat.com>
Task
https://www.aeolusproject.org/redmine/issues/1769
---
src/app/controllers/deployments_controller.rb | 16 +++++++++++++++-
src/app/views/deployments/_launch_new.haml | 5 ++++-
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/app/controllers/deployments_controller.rb
b/src/app/controllers/deployments_controller.rb
index 640eb76..9052f9c 100644
--- a/src/app/controllers/deployments_controller.rb
+++ b/src/app/controllers/deployments_controller.rb
@@ -25,6 +25,7 @@ class DeploymentsController< ApplicationController
@pool = Pool.find(params[:pool_id]) or raise "Invalid pool"
require_privilege(Privilege::CREATE, Deployment)
@deployment = Deployment.new(:pool_id => @pool.id)
+ @suggested_deployables = SuggestedDeployable.list_for_user(current_user,
Privilege::USE)
init_new_deployment_attrs
respond_to do |format|
format.js { render :partial => 'launch_new' }
@@ -51,8 +52,10 @@ class DeploymentsController< ApplicationController
@deployment = Deployment.new(params[:deployment])
@pool = @deployment.pool
require_privilege(Privilege::CREATE, Deployment, @pool)
- @deployment.import_xml_from_url(params[:deployable][:url]) if
params[:deployable]&& params[:deployable][:url]
+ url = get_deployable_url
+ @deployment.import_xml_from_url(url) if url
@deployment.deployable_xml.validate!
+ @suggested_deployables = SuggestedDeployable.list_for_user(current_user,
Privilege::USE)
respond_to do |format|
format.js { render :partial => 'new' }
format.html
@@ -255,4 +258,15 @@ class DeploymentsController< ApplicationController
:conditions => {:provider_id => nil}
)
end
+
+ def get_deployable_url
+ if params[:suggested_deployable_id].to_s == 'custom'
+ url = params[:deployable] ? params[:deployable][:url] : nil
+ else
+ sdeployable = SuggestedDeployable.find(params[:suggested_deployable_id])
+ require_privilege(Privilege::USE, sdeployable)
+ url = sdeployable.url
+ end
+ url
+ end
end
diff --git a/src/app/views/deployments/_launch_new.haml
b/src/app/views/deployments/_launch_new.haml
index 9341945..a05408c 100644
--- a/src/app/views/deployments/_launch_new.haml
+++ b/src/app/views/deployments/_launch_new.haml
@@ -11,7 +11,10 @@
%p
What do you want to launch?
%p
- Provide the URL of the Deployable definition
+ Select the Deployable definition
+ = select_tag :suggested_deployable_id, options_for_select([['custom -- type
bellow', 'custom']] + @suggested_deployables.map {|d| [d.name, d.id]},
params[:suggested_deployable_id])
+ %p
+ Or provide the URL of the Deployable definition
= text_field('deployable', 'url')
%p
Name your deployment