fabrica/fabrica

109 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
WORKDIR="./terraform"
TERRA="terraform"
PACKER_ROOT="./packer"
# FIXME
function needGitPull()
{
br=$(git branch --show-current)
diff=$(git rev-list HEAD...origin/master --count)
return ${diff}
}
function trun()
{
#needGitPull
cd ${WORKDIR}
if [[ ${?} -ne 0 ]]
then
echo "Branch is not up 2 date !"
echo "--> Git pull needed !"
return 1
fi
VAR_FILES=$(ls *.tfvars)
OPTS=""
for fl in ${VAR_FILES}
do
OPTS="${OPTS} -var-file ${fl}"
done
${TERRA} ${1} ${OPTS}
res=${?}
cd -
return ${res}
}
function plan()
{
trun plan
return $?
}
function apply()
{
trun apply
return $?
}
function destroy()
{
trun destroy
return $?
}
function taint()
{
target=$1
resource=$2
cd ${WORKDIR}
$TERRA taint module.${resource}.opennebula_template.vm_template
$TERRA taint module.${resource}.opennebula_virtual_machine.vm
$TERRA taint module.${resource}.opennebula_image.system
cd -
}
function taint_all()
{
target=$1
resource=$2
cd ${WORKDIR}
$TERRA taint module.${resource}.opennebula_template.vm_template
$TERRA taint module.${resource}.opennebula_virtual_machine.vm
$TERRA taint module.${resource}.opennebula_image.system
$TERRA taint module.${resource}.opennebula_image.data
cd -
}
function init()
{
trun init
return ${?}
}
function build()
{
target=$2
cd ${PACKER_ROOT}
echo "Building ${target}"
make ${target}
return ${?}
}
function publish()
{
target=$2
echo "FIXME for publish"
}
$1 $@
exit ${?}