-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforeman.sh
More file actions
27 lines (24 loc) · 1002 Bytes
/
Copy pathforeman.sh
File metadata and controls
27 lines (24 loc) · 1002 Bytes
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
FOREMAN_HOST="foreman"
get_tag() {
local _host="${HOSTNAME}.${DOMAINNAME}"
local _key=$1
[[ -z $2 ]] && local _host="${HOSTNAME}.${DOMAINNAME}" || local _host=$2
local _url="http://${FOREMAN_HOST}/api/v2/hosts/${_host}/parameters/${_key}"
local json_out=$(curl -s -H "Accept: application/json" $_url)
[[ -z "$(echo "${json_out}" |grep error)" ]] || { return 1; }
echo $json_out | grep -Po '"value":"(.*)"' | cut -d '"' -f4;
return 0;
}
set_tag() {
local _key=$1
local _value=$2
[[ -z $3 ]] && local _host="${HOSTNAME}.${DOMAINNAME}" || local _host=$3
local _url="http://${FOREMAN_HOST}/api/v2/hosts/${_host}/parameters";
local _method=""
local _tag_value=$(get_tag ${_key})
[[ $? -eq 0 ]] && { echo "Updating ${_key}.."; _method='-X PUT'; _url="${_url}/${_key}"; }
curl -s ${_method} -H "Accept:application/json" \
-H 'Content-Type: application/json' \
-d "{ \"parameter\": { \"name\": \"${_key}\", \"value\": \"${_value}\" } }" \
$_url;
}