@@ -237,7 +237,7 @@ def atomic_form_field_changed
237237 build_automate_tree ( :automate_catalog ) if automate_tree_needed?
238238 if params [ :st_prov_type ] # build request screen for selected item type
239239 @_params [ :org_controller ] = "service_template"
240- if ansible_playbook ?
240+ if ansible_playbook_type? || terraform_template_type ?
241241 @record = ServiceTemplate . new
242242 # waiting for back-end PR to be merged to implement this
243243 # if false
@@ -285,7 +285,10 @@ def atomic_form_field_changed
285285
286286 render :update do |page |
287287 page << javascript_prologue
288- if @edit [ :new ] [ :st_prov_type ] == "generic_ansible_playbook"
288+ if @edit [ :new ] [ :st_prov_type ] == "generic_terraform_template"
289+ page . replace ( "form_div" , :partial => "tt_react_form" )
290+ page << javascript_hide ( "form_buttons_div" )
291+ elsif @edit [ :new ] [ :st_prov_type ] == "generic_ansible_playbook"
289292 page . replace ( "form_div" , :partial => "st_angular_form" )
290293 page << javascript_hide ( "form_buttons_div" )
291294 else
@@ -370,6 +373,7 @@ def explorer
370373 end
371374 template_locals = { :locals => { :controller => "catalog" } }
372375 template_locals [ :locals ] . merge! ( fetch_playbook_details ) if need_ansible_locals?
376+ template_locals [ :locals ] . merge! ( fetch_terraform_template_details ) if need_terraform_locals?
373377 template_locals [ :locals ] . merge! ( fetch_ct_details ) if need_container_template_locals?
374378 template_locals [ :locals ] . merge! ( fetch_ovf_template_details ) if need_ovf_template_locals?
375379
@@ -890,7 +894,7 @@ def resource_action_entry_point(resource_action)
890894 def build_tenants_tree
891895 tenants = @record ? @record . additional_tenants : Tenant . where ( :id => @edit [ :new ] [ :tenant_ids ] )
892896 catalog_bundle = @edit . present? && @edit [ :key ] && @edit [ :key ] . starts_with? ( 'st_edit' ) # Get the info if adding/editing Catalog Item or Bundle; not important if only displaying
893- TreeBuilderTenants . new ( 'tenants_tree' , @sb , true , :additional_tenants => tenants , :selectable => @edit . present? , :ansible_playbook => ansible_playbook_type? , :catalog_bundle => catalog_bundle )
897+ TreeBuilderTenants . new ( 'tenants_tree' , @sb , true , :additional_tenants => tenants , :selectable => @edit . present? , :show_tenant_tree => ansible_playbook_type? || terraform_template_type ?, :catalog_bundle => catalog_bundle )
894898 end
895899
896900 def svc_catalog_provision_finish_submit_endpoint
@@ -905,15 +909,25 @@ def ansible_playbook_type?
905909 elsif @edit
906910 @edit [ :new ] [ :st_prov_type ]
907911 end
912+ if prov_type == 'generic_ansible_playbook'
913+ @current_region = MiqRegion . my_region . region
914+ end
908915 prov_type == 'generic_ansible_playbook'
909916 end
910917
911- def ansible_playbook?
912- ansible_playbook = ansible_playbook_type?
913- @current_region = MiqRegion . my_region . region if ansible_playbook
914- ansible_playbook
918+ def terraform_template_type?
919+ prov_type = if params [ :st_prov_type ]
920+ params [ :st_prov_type ]
921+ elsif @record
922+ @record . prov_type
923+ elsif @edit
924+ @edit [ :new ] [ :st_prov_type ]
925+ end
926+ if prov_type == 'generic_terraform_template'
927+ @current_region = MiqRegion . my_region . region
928+ end
929+ prov_type == 'generic_terraform_template'
915930 end
916- helper_method :ansible_playbook?
917931
918932 # Get all the available Catalogs
919933 def available_catalogs
@@ -1904,7 +1918,7 @@ def get_node_info_handle_leaf_node(id)
19041918 @no_wf_msg = _ ( "Request is missing for selected item" )
19051919 end
19061920 end
1907- unless @record . prov_type == "generic_ansible_playbook"
1921+ unless @record . prov_type == "generic_ansible_playbook" || @record . prov_type == "generic_terraform_template"
19081922 @sb [ :dialog_label ] = _ ( "No Dialog" )
19091923 @sb [ :fqname ] = nil
19101924 @sb [ :reconfigure_fqname ] = nil
@@ -2173,11 +2187,11 @@ def fetch_playbook_details
21732187 playbook_details [ :provisioning ] [ :network_credential ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedAnsible ::AutomationManager ::NetworkCredential , provision [ :network_credential_id ] ) if provision [ :network_credential_id ]
21742188 playbook_details [ :provisioning ] [ :cloud_credential ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedAnsible ::AutomationManager ::CloudCredential , provision [ :cloud_credential_id ] ) if provision [ :cloud_credential_id ]
21752189 playbook_details [ :provisioning ] [ :vault_credential ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedAnsible ::AutomationManager ::VaultCredential , provision [ :vault_credential_id ] ) if provision [ :vault_credential_id ]
2176- fetch_dialog ( playbook_details , provision [ :dialog_id ] , :provisioning )
21772190 playbook_details [ :provisioning ] [ :execution_ttl ] = provision [ :execution_ttl ]
21782191 playbook_details [ :provisioning ] [ :verbosity ] = provision [ :verbosity ]
21792192 playbook_details [ :provisioning ] [ :log_output ] = provision [ :log_output ]
21802193 playbook_details [ :provisioning ] [ :become_enabled ] = provision [ :become_enabled ] == true ? _ ( 'Yes' ) : _ ( 'No' )
2194+ fetch_dialog ( playbook_details , provision [ :dialog_id ] , :provisioning )
21812195
21822196 if @record . config_info [ :retirement ]
21832197 retirement = @record . config_info [ :retirement ]
@@ -2199,6 +2213,38 @@ def fetch_playbook_details
21992213 playbook_details
22002214 end
22012215
2216+ def fetch_terraform_template_details
2217+ terraform_template_details = { }
2218+ provision = @record . config_info [ :provision ]
2219+ terraform_template_details [ :provisioning ] = { }
2220+ terraform_template_details [ :provisioning ] [ :repository ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedTerraform ::AutomationManager ::ConfigurationScriptSource , provision [ :repository_id ] )
2221+ terraform_template_details [ :provisioning ] [ :template ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedTerraform ::AutomationManager ::ConfigurationScriptPayload , provision [ :configuration_script_payload_id ] )
2222+ terraform_template_details [ :provisioning ] [ :credential ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedTerraform ::AutomationManager ::Credential , provision [ :credential_id ] )
2223+ terraform_template_details [ :provisioning ] [ :network_credential ] = fetch_name_from_object ( ManageIQ ::Providers ::EmbeddedTerraform ::AutomationManager ::NetworkCredential , provision [ :network_credential_id ] ) if provision [ :network_credential_id ]
2224+ terraform_template_details [ :provisioning ] [ :execution_ttl ] = provision [ :execution_ttl ]
2225+ terraform_template_details [ :provisioning ] [ :verbosity ] = provision [ :verbosity ]
2226+ terraform_template_details [ :provisioning ] [ :log_output ] = provision [ :log_output ]
2227+ terraform_template_details [ :provisioning ] [ :become_enabled ] = provision [ :become_enabled ] == true ? _ ( 'Yes' ) : _ ( 'No' )
2228+ fetch_dialog ( terraform_template_details , provision [ :dialog_id ] , :provisioning )
2229+
2230+ # if @record.config_info[:retirement]
2231+ # retirement = @record.config_info[:retirement]
2232+ # terraform_template_details[:retirement] = {}
2233+ # terraform_template_details[:retirement][:remove_resources] = retirement[:remove_resources]
2234+ # if retirement[:repository_id]
2235+ # terraform_template_details[:retirement][:repository] = fetch_name_from_object(ManageIQ::Providers::EmbeddedTerraform::AutomationManager::ConfigurationScriptSource, retirement[:repository_id])
2236+ # terraform_template_details[:retirement][:template] = fetch_name_from_object(ManageIQ::Providers::EmbeddedTerraform::AutomationManager::ConfigurationScriptPayload, retirement[:configuration_script_payload_id])
2237+ # terraform_template_details[:retirement][:credential] = fetch_name_from_object(ManageIQ::Providers::EmbeddedTerraform::AutomationManager::Credential, retirement[:credential_id])
2238+ # terraform_template_details[:retirement][:network_credential] = fetch_name_from_object(ManageIQ::Providers::EmbeddedTerraform::AutomationManager::NetworkCredential, retirement[:network_credential_id]) if retirement[:network_credential_id]
2239+ # end
2240+ # terraform_template_details[:retirement][:execution_ttl] = retirement[:execution_ttl]
2241+ # terraform_template_details[:retirement][:verbosity] = retirement[:verbosity]
2242+ # terraform_template_details[:retirement][:log_output] = retirement[:log_output]
2243+ # terraform_template_details[:retirement][:become_enabled] = retirement[:become_enabled] == true ? _('Yes') : _('No')
2244+ # end
2245+ terraform_template_details
2246+ end
2247+
22022248 def fetch_dialog ( playbook_details , dialog_id , key )
22032249 return nil if dialog_id . nil?
22042250
@@ -2303,8 +2349,10 @@ def replace_right_cell(options = {})
23032349 content = if @tagging
23042350 action_url = x_active_tree == :ot_tree ? "ot_tags_edit" : "st_tags_edit"
23052351 r [ :partial => "layouts/x_tagging" , :locals => { :action_url => action_url } ]
2352+ elsif action && %w[ at_st_new st_new ] . include? ( action ) && terraform_template_type?
2353+ r [ :partial => "tt_react_form" ]
23062354 elsif action && %w[ at_st_new st_new ] . include? ( action )
2307- r [ :partial => ansible_playbook ? ? "st_angular_form" : "st_form" ]
2355+ r [ :partial => ansible_playbook_type ? ? "st_angular_form" : "st_form" ]
23082356 elsif action && %w[ ownership ] . include? ( action )
23092357 r [ :partial => @refresh_partial ]
23102358 elsif action && %w[ st_catalog_new st_catalog_edit ] . include? ( action )
@@ -2321,6 +2369,7 @@ def replace_right_cell(options = {})
23212369 else
23222370 template_locals = { :controller => "catalog" }
23232371 template_locals . merge! ( fetch_playbook_details ) if need_ansible_locals?
2372+ template_locals . merge! ( fetch_terraform_template_details ) if need_terraform_locals?
23242373 template_locals . merge! ( fetch_ct_details ) if need_container_template_locals?
23252374 template_locals . merge! ( fetch_ovf_template_details ) if need_ovf_template_locals?
23262375 r [ :partial => "catalog/#{ x_active_tree } _show" , :locals => template_locals ]
@@ -2344,7 +2393,7 @@ def replace_right_cell(options = {})
23442393 presenter . hide ( :toolbar ) . show ( :paging_div )
23452394 # incase it was hidden for summary screen, and incase there were no records on show_list
23462395 presenter . remove_paging
2347- if ( action == 'at_st_new' && ansible_playbook? ) || %w[ st_catalog_new st_catalog_edit copy_catalog ] . include? ( action )
2396+ if ( action == 'at_st_new' && ( ansible_playbook_type? || terraform_template_type? ) ) || %w[ st_catalog_new st_catalog_edit copy_catalog ] . include? ( action )
23482397 presenter . hide ( :form_buttons_div )
23492398 else
23502399 presenter . show ( :form_buttons_div )
@@ -2407,6 +2456,12 @@ def need_ansible_locals?
24072456 @record . prov_type == "generic_ansible_playbook"
24082457 end
24092458
2459+ def need_terraform_locals?
2460+ x_active_tree == :sandt_tree &&
2461+ TreeBuilder . get_model_for_prefix ( @nodetype ) == "ServiceTemplate" &&
2462+ @record . prov_type == "generic_terraform_template"
2463+ end
2464+
24102465 def need_container_template_locals?
24112466 x_active_tree == :sandt_tree &&
24122467 TreeBuilder . get_model_for_prefix ( @nodetype ) == "ServiceTemplate" &&
0 commit comments