Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ulisse/labmanager-systemd
1 result
Show changes
Commits on Source (5)
#!/bin/bash #!/bin/bash
API_BASE_URL=https://labmanager-api.edu-al.unipmn.it/api/1.0 API_BASE_URL=https://labmanager-api.edu-al.unipmn.it/api/1.0
# curl uses an increasing delay. 5 retries are tried in about 30 seconds, MAX_RETRY=5
# so it's too quick for us. I increased it to 7, which is about 2 minutes.
# Note: the same variable was also used in the `retry` function.
MAX_RETRY=7
RETRY_DELAY=5 RETRY_DELAY=5
NORMAL_CONFIG_NAME=normale NORMAL_CONFIG_NAME=normale
DEBUG=0 DEBUG=0
...@@ -52,7 +49,7 @@ debug() { ...@@ -52,7 +49,7 @@ debug() {
# authenticate and get the token # authenticate and get the token
getTokenJSON() { getTokenJSON() {
# store the whole response with the status at the end # store the whole response with the status at the end
HTTP_RESPONSE=$(curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "HTTPSTATUS:%{http_code}" --max-time 10 -X POST -H "Content-Type: application/json" -d "{\"login\":\"guest\",\"pwd\":\"\"}" ${API_BASE_URL}/login) HTTP_RESPONSE=$(curl -s -k -w "HTTPSTATUS:%{http_code}" --max-time 10 -X POST -H "Content-Type: application/json" -d "{\"login\":\"guest\",\"pwd\":\"\"}" ${API_BASE_URL}/login)
ret=$? ret=$?
if [[ $ret != 0 ]]; then if [[ $ret != 0 ]]; then
...@@ -95,14 +92,14 @@ stop() { ...@@ -95,14 +92,14 @@ stop() {
# get configuration from WS # get configuration from WS
getConfigVars() { getConfigVars() {
echo "Authenticating to WS..." echo "Authenticating to WS..."
TOKEN_JSON=`getTokenJSON` TOKEN_JSON=`retry getTokenJSON`
if [[ "$TOKEN_JSON" == "" ]]; then if [[ "$TOKEN_JSON" == "" ]]; then
return 2 return 2
fi fi
TOKEN=`echo ${TOKEN_JSON} | jsonValue token 1` TOKEN=`echo ${TOKEN_JSON} | jsonValue token 1`
MACHINE_NAME=`hostname` MACHINE_NAME=`hostname`
echo "Getting machine configuration..." echo "Getting machine configuration..."
MACHINE_JSON=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k --max-time 10 -H "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/name/${MACHINE_NAME}` MACHINE_JSON=`retry /usr/bin/curl -s -k --max-time 10 -H "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/name/${MACHINE_NAME}`
MACHINE_ID=`echo $MACHINE_JSON | jsonValue id 1` MACHINE_ID=`echo $MACHINE_JSON | jsonValue id 1`
MACHINE_CONFIGS_ID=`echo $MACHINE_JSON | jsonValue configs_id 1` MACHINE_CONFIGS_ID=`echo $MACHINE_JSON | jsonValue configs_id 1`
CONFIG_NAME=`echo $MACHINE_JSON | jsonValue name 2` CONFIG_NAME=`echo $MACHINE_JSON | jsonValue name 2`
...@@ -135,7 +132,7 @@ getConfigFile() { ...@@ -135,7 +132,7 @@ getConfigFile() {
echo "Error downloading config file (machine_id empty, maybe it is not in LabManager's DB)" echo "Error downloading config file (machine_id empty, maybe it is not in LabManager's DB)"
return 1 return 1
fi fi
HTTP_STATUS=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "%{http_code}" -o /local/esame-machine.conf --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/configfile` HTTP_STATUS=`retry /usr/bin/curl -s -k -w "%{http_code}" -o /local/esame-machine.conf --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/configfile`
if [[ $HTTP_STATUS -ne 200 ]] if [[ $HTTP_STATUS -ne 200 ]]
then then
echo "Error downloading config file (http_status=$HTTP_STATUS)" echo "Error downloading config file (http_status=$HTTP_STATUS)"
...@@ -149,7 +146,7 @@ getConfigFile() { ...@@ -149,7 +146,7 @@ getConfigFile() {
getIpConfigFile() { getIpConfigFile() {
echo "Downloading machine iptables config file..." echo "Downloading machine iptables config file..."
# get ipconfig file # get ipconfig file
HTTP_STATUS=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "%{http_code}" -o /local/iptables --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/ipconfigfile` HTTP_STATUS=`retry /usr/bin/curl -s -k -w "%{http_code}" -o /local/iptables --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/ipconfigfile`
if [[ $HTTP_STATUS -ne 200 ]] if [[ $HTTP_STATUS -ne 200 ]]
then then
echo "Error downloading iptables config file (http_status=$HTTP_STATUS)" echo "Error downloading iptables config file (http_status=$HTTP_STATUS)"
...@@ -162,7 +159,7 @@ getIpConfigFile() { ...@@ -162,7 +159,7 @@ getIpConfigFile() {
updateCurrentConfigId() { updateCurrentConfigId() {
# Update this machine's current config id # Update this machine's current config id
HTTP_STATUS=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "%{http_code}" -o /dev/null --max-time 10 -H "Content-Type: application/json" -H "Authorization: Bearer ${TOKEN}" \ HTTP_STATUS=`/usr/bin/curl -s -k -w "%{http_code}" -o /dev/null --max-time 10 -H "Content-Type: application/json" -H "Authorization: Bearer ${TOKEN}" \
-X PUT -d "{\"current_configs_id\":\"$MACHINE_CONFIGS_ID\"}" ${API_BASE_URL}/machines/${MACHINE_ID}/currentconfig` -X PUT -d "{\"current_configs_id\":\"$MACHINE_CONFIGS_ID\"}" ${API_BASE_URL}/machines/${MACHINE_ID}/currentconfig`
if [[ $HTTP_STATUS -ne 200 ]] if [[ $HTTP_STATUS -ne 200 ]]
......
#!/bin/bash #!/bin/bash
API_BASE_URL=https://labmanager-api.edu-al.unipmn.it/api/1.0 API_BASE_URL=https://labmanager-api.edu-al.unipmn.it/api/1.0
# curl uses an increasing delay. 5 retries are tried in about 30 seconds, MAX_RETRY=5
# so it's too quick for us. I increased it to 7, which is about 2 minutes.
# Note: the same variable was also used in the `retry` function.
MAX_RETRY=7
RETRY_DELAY=5 RETRY_DELAY=5
NORMAL_CONFIG_NAME=normale NORMAL_CONFIG_NAME=normale
DEBUG=0 DEBUG=0
...@@ -52,7 +49,7 @@ function debug() { ...@@ -52,7 +49,7 @@ function debug() {
# authenticate and get the token # authenticate and get the token
function getTokenJSON() { function getTokenJSON() {
# store the whole response with the status at the end # store the whole response with the status at the end
HTTP_RESPONSE=$(curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "HTTPSTATUS:%{http_code}" --max-time 10 -X POST -H "Content-Type: application/json" -d "{\"login\":\"guest\",\"pwd\":\"\"}" ${API_BASE_URL}/login) HTTP_RESPONSE=$(curl -s -k -w "HTTPSTATUS:%{http_code}" --max-time 10 -X POST -H "Content-Type: application/json" -d "{\"login\":\"guest\",\"pwd\":\"\"}" ${API_BASE_URL}/login)
ret=$? ret=$?
if [[ $ret != 0 ]]; then if [[ $ret != 0 ]]; then
...@@ -95,14 +92,14 @@ stop() { ...@@ -95,14 +92,14 @@ stop() {
# get configuration from WS # get configuration from WS
getConfigVars() { getConfigVars() {
echo "Authenticating to WS..." echo "Authenticating to WS..."
TOKEN_JSON=`getTokenJSON` TOKEN_JSON=`retry getTokenJSON`
if [[ "$TOKEN_JSON" == "" ]]; then if [[ "$TOKEN_JSON" == "" ]]; then
return 2 return 2
fi fi
TOKEN=`echo ${TOKEN_JSON} | jsonValue token 1` TOKEN=`echo ${TOKEN_JSON} | jsonValue token 1`
MACHINE_NAME=`hostname` MACHINE_NAME=`hostname`
echo "Getting machine configuration..." echo "Getting machine configuration..."
MACHINE_JSON=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k --max-time 10 -H "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/name/${MACHINE_NAME}` MACHINE_JSON=`retry /usr/bin/curl -s -k --max-time 10 -H "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/name/${MACHINE_NAME}`
MACHINE_ID=`echo $MACHINE_JSON | jsonValue id 1` MACHINE_ID=`echo $MACHINE_JSON | jsonValue id 1`
MACHINE_CONFIGS_ID=`echo $MACHINE_JSON | jsonValue configs_id 1` MACHINE_CONFIGS_ID=`echo $MACHINE_JSON | jsonValue configs_id 1`
CONFIG_NAME=`echo $MACHINE_JSON | jsonValue name 2` CONFIG_NAME=`echo $MACHINE_JSON | jsonValue name 2`
...@@ -128,7 +125,7 @@ getConfigFile() { ...@@ -128,7 +125,7 @@ getConfigFile() {
echo "Error downloading config file (machine_id empty, maybe it is not in LabManager's DB)" echo "Error downloading config file (machine_id empty, maybe it is not in LabManager's DB)"
return 1 return 1
fi fi
HTTP_STATUS=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "%{http_code}" -o /local/esame-machine.conf --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/configfile` HTTP_STATUS=`retry /usr/bin/curl -s -k -w "%{http_code}" -o /local/esame-machine.conf --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/configfile`
if [[ $HTTP_STATUS -ne 200 ]] if [[ $HTTP_STATUS -ne 200 ]]
then then
echo "Error downloading config file (http_status=$HTTP_STATUS)" echo "Error downloading config file (http_status=$HTTP_STATUS)"
...@@ -142,7 +139,7 @@ getConfigFile() { ...@@ -142,7 +139,7 @@ getConfigFile() {
getIpConfigFile() { getIpConfigFile() {
echo "Downloading machine iptables config file..." echo "Downloading machine iptables config file..."
# get ipconfig file # get ipconfig file
HTTP_STATUS=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "%{http_code}" -o /local/iptables --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/ipconfigfile` HTTP_STATUS=`retry /usr/bin/curl -s -k -w "%{http_code}" -o /local/iptables --max-time 10 --header "Authorization: Bearer ${TOKEN}" -X GET ${API_BASE_URL}/machines/${MACHINE_ID}/ipconfigfile`
if [[ $HTTP_STATUS -ne 200 ]] if [[ $HTTP_STATUS -ne 200 ]]
then then
echo "Error downloading iptables config file (http_status=$HTTP_STATUS)" echo "Error downloading iptables config file (http_status=$HTTP_STATUS)"
...@@ -155,7 +152,7 @@ getIpConfigFile() { ...@@ -155,7 +152,7 @@ getIpConfigFile() {
updateCurrentConfigId() { updateCurrentConfigId() {
# Update this machine's current config id # Update this machine's current config id
HTTP_STATUS=`/usr/bin/curl --retry-connrefused --retry ${MAX_RETRY} -s -k -w "%{http_code}" -o /dev/null --max-time 10 -H "Content-Type: application/json" -H "Authorization: Bearer ${TOKEN}" \ HTTP_STATUS=`/usr/bin/curl -s -k -w "%{http_code}" -o /dev/null --max-time 10 -H "Content-Type: application/json" -H "Authorization: Bearer ${TOKEN}" \
-X PUT -d "{\"current_configs_id\":\"$MACHINE_CONFIGS_ID\"}" ${API_BASE_URL}/machines/${MACHINE_ID}/currentconfig` -X PUT -d "{\"current_configs_id\":\"$MACHINE_CONFIGS_ID\"}" ${API_BASE_URL}/machines/${MACHINE_ID}/currentconfig`
if [[ $HTTP_STATUS -ne 200 ]] if [[ $HTTP_STATUS -ne 200 ]]
......