-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsync-fip.sh
executable file
·36 lines (29 loc) · 1.62 KB
/
sync-fip.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env bash
source lib/process-resource.sh
if [[ $1 == "--config" ]] ; then
mkdir "${TMPDIR%/}/fip"
cat lib/sync-fip.config.json
else
type=$(jq -r '.[0].type' "${BINDING_CONTEXT_PATH}")
if [[ "$type" == "Event" ]] ; then
resourceName=$(jq -r '.[0].object.metadata.name' "${BINDING_CONTEXT_PATH}")
echo "Processing resource ${resourceName} on event"
failoverIpCommand=$(jq -r '.[0].object.spec.getFailoverIpCommand' "${BINDING_CONTEXT_PATH}")
targetServerIp=$(jq -r '.[0].object.spec.getTargetServerMainIpCommand' "${BINDING_CONTEXT_PATH}")
dryRun=$(jq -r '.[0].object.spec.dryRun' ${BINDING_CONTEXT_PATH})
process_resource "$failoverIpCommand" "$targetServerIp" "$dryRun" "$resourceName"
fi
if [[ "$type" == "Schedule" ]] ; then
countResourceOnSchedule=$(jq -r '.[0].snapshots["failoverip-policy"] | length' "${BINDING_CONTEXT_PATH}")
echo "Processing ${countResourceOnSchedule} resources on schedule"
for ((i=0;i<countResourceOnSchedule;i++)); do
resourceName=$(jq -r '.[0].snapshots["failoverip-policy"].['$i'].object.metadata.name' "${BINDING_CONTEXT_PATH}")
failoverIpCommand=$(jq -r '.[0].snapshots["failoverip-policy"].['$i'].object.spec.getFailoverIpCommand' "${BINDING_CONTEXT_PATH}")
targetServerIp=$(jq -r '.[0].snapshots["failoverip-policy"].['$i'].object.spec.getTargetServerMainIpCommand' "${BINDING_CONTEXT_PATH}")
dryRun=$(jq -r '.[0].snapshots["failoverip-policy"].['$i'].object.spec.dryRun' "${BINDING_CONTEXT_PATH}")
process_resource "$failoverIpCommand" "$targetServerIp" "$dryRun" "$resourceName"
done
fi
rm -f "${TMPDIR%/}"/fip/*
fi
exit 0