Skip to content
This repository has been archived by the owner on Jul 9, 2020. It is now read-only.

Commit

Permalink
Fixes #24425 - Templates for modularity actions
Browse files Browse the repository at this point in the history
This commit contains rex templates for modularity related actions.
  • Loading branch information
parthaa committed Aug 7, 2018
1 parent 8deda37 commit e7871fe
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 0 deletions.
50 changes: 50 additions & 0 deletions job_templates/module_action_-_ansible_default.erb
@@ -0,0 +1,50 @@
<%#
kind: job_template
name: Module Action - Ansible Default
model: JobTemplate
job_category: Modules
description_format: "Module %{action} %{module_spec}"
provider_type: Ansible
template_inputs:
- name: pre_script
description: A script to run prior to the module action
input_type: user
required: false
advanced: true
- name: action
description: 'The module action: enable, disable, install, update, or remove, lock, unlock'
input_type: user
required: true
options: "\nlist\ninfo\nenable\ndisable\ninstall\nupdate\nremove\nprovides\nlock\nunlock\nprofile\nstreams"
- name: module_spec
description: The module specification. module:stream/profile
input_type: user
required: false
- name: options
description: Other optional flags for the action
input_type: user
required: false
- name: post_script
description: A script to run after the module action
input_type: user
required: false
advanced: true
%>
<% command = "dnf -y module #{input(:action)} #{input(:module_spec)} #{input(:options)}" %>

---
- hosts: all
<%- if input('pre_script').present? -%>
pre_tasks:
- shell: "<%= input('pre_script') %>"
<%- end -%>
tasks:
- shell: |
<%= indent(8) { command } %>
register: out
- debug: var=out
<%- if input('post_script').present? -%>
post_tasks:
- shell: "<%= input('post_script') %>"
<%- end -%>
67 changes: 67 additions & 0 deletions job_templates/module_action_-_ssh_default.erb
@@ -0,0 +1,67 @@
<%#
kind: job_template
name: Module Action - SSH Default
model: JobTemplate
job_category: Modules
description_format: "%{action} %{module_spec}"
provider_type: Ansible
template_inputs:
- name: pre_script
description: A script to run prior to the module action
input_type: user
required: false
advanced: true
- name: action
description: 'The module action: enable, disable, install, update, or remove, lock, unlock'
input_type: user
required: true
options: "\nlist\ninfo\nenable\ndisable\ninstall\nupdate\nremove\nprovides\nlock\nunlock\nprofile\nstreams"
- name: module_spec
description: The module specification. module:stream/profile
input_type: user
required: false
- name: options
description: Other optional flags for the action
input_type: user
required: false
- name: post_script
description: A script to run after the module action
input_type: user
required: false
advanced: true
%>
<%
supported_families = ['Redhat']
render_error(N_('Unsupported or no operating system found for this host.')) unless @host.operatingsystem && supported_families.include?(@host.operatingsystem.family)
-%>
#!/bin/bash

# Helper function that exits with a particular message and code.
#
# Usage:
# exit_with_message "Could not do a thing" 2
#
function exit_with_message {
echo "${1}, exiting..."
exit $2
}

<% unless input("pre_script").blank? -%>
# Pre Script
<%= input("pre_script") %>
RETVAL=$?
[ $RETVAL -eq 0 ] || exit_with_message "Pre script failed" $RETVAL
<% end -%>

# Action
dnf -y module <%= input("action") %> <%= input("module_spec") %> <%= input("options") %>
RETVAL=$?
[ $RETVAL -eq 0 ] || exit_with_message " module action failed" $RETVAL

<% unless input("post_script").blank? -%>
# Post Script
<%= input("post_script") %>
RETVAL=$?
[ $RETVAL -eq 0 ] || exit_with_message "Post script failed" $RETVAL
<% end -%>

0 comments on commit e7871fe

Please sign in to comment.