mirror of
https://git.ecdf.ed.ac.uk/win_automation/windows-ansible.git
synced 2026-10-26 20:17:21 +00:00
55 lines
1.5 KiB
Bash
55 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Varialbes Passed By Rundeck
|
|
OS_PROJECT=$1
|
|
WIN_PROJECT=$2
|
|
API_TOKEN=$3
|
|
|
|
# check directory exists
|
|
if [ ! -d /deployments/$OS_PROJECT-$WIN_PROJECT/ ]; then
|
|
>&2 echo "Directory Doesn't exist"
|
|
exit 1
|
|
fi
|
|
|
|
RD_JOB_ID=$(cat /deployments/$OS_PROJECT-$WIN_PROJECT/JOB_ID)
|
|
RD_EXEC_ID=$(cat /deployments/$OS_PROJECT-$WIN_PROJECT/EXEC_ID)
|
|
|
|
|
|
post_request() {
|
|
local INPUT=$1
|
|
local TYPE=$2
|
|
|
|
local UUID=$(echo "$INPUT" | awk '{print $1}')
|
|
local NAME=$(echo "$INPUT" | awk '{print $2}')
|
|
local IPv4=$(echo "$INPUT" | awk '{print $4}' | cut -d '=' -f 2)
|
|
|
|
curl \
|
|
-X POST \
|
|
-H "content-type: application/json" \
|
|
-H "accept: application/json" \
|
|
-H "Authorization: Token $API_TOKEN" \
|
|
-d '{ "job_id":"'$RD_JOB_ID'","execution_id":"'$RD_EXEC_ID'", "status":"ok", "data":{"name":"'$NAME'", "ip":"'$IPv4'", "uuid":"'$UUID'", "type":"'$TYPE'"}}' \
|
|
https://projects.eidf.ac.uk/testportal/job/api/notification
|
|
}
|
|
|
|
main() {
|
|
# Get list of VMs within project
|
|
local TABLE=$(openstack --os-cloud $OS_PROJECT server list | tail -n +4 | head -n -1 | sed 's/|//g')
|
|
|
|
echo "$TABLE" | while read -r line; do
|
|
# Pattern to match user VMs
|
|
if echo "$line" | grep -qE "$OS_PROJECT\-$WIN_PROJECT\-wb|app|gpu"; then
|
|
post_request "$line" "CLIENT"
|
|
|
|
# Pattern to match DC01
|
|
elif echo "$line" | grep -qE "$OS_PROJECT\-$WIN_PROJECT\-dc01"; then
|
|
post_request "$line" "DC"
|
|
|
|
else
|
|
continue
|
|
fi
|
|
done
|
|
}
|
|
|
|
main
|