From 056dbd20b0302af827457743e727f543ff19d7d3 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Thu, 18 Apr 2019 22:43:29 +0000 Subject: [server/bashscript] Remove old grep hw data script and add NMVe support. --- server/ipxe/bash_scripts/grepSystemInfo.sh | 275 +++++++++++++++-------- server/ipxe/bash_scripts/grepSystemInfoRework.sh | 171 -------------- 2 files changed, 178 insertions(+), 268 deletions(-) mode change 100644 => 100755 server/ipxe/bash_scripts/grepSystemInfo.sh delete mode 100755 server/ipxe/bash_scripts/grepSystemInfoRework.sh (limited to 'server/ipxe') diff --git a/server/ipxe/bash_scripts/grepSystemInfo.sh b/server/ipxe/bash_scripts/grepSystemInfo.sh old mode 100644 new mode 100755 index 63ca5e2..e4ff609 --- a/server/ipxe/bash_scripts/grepSystemInfo.sh +++ b/server/ipxe/bash_scripts/grepSystemInfo.sh @@ -2,27 +2,43 @@ . /lib/dracut-lib.sh # http://git.openslx.org/openslx-ng/mltk.git/tree/core/modules/hardware-stats/data/opt/openslx/scripts/systemd-hardware_stats # dmidecode | grep -i UUID - -# MAC -# MAC=$(ip addr show | grep -Eo -m 1 'ether\s.*\sbrd') -# MAC=${MAC#"ether "} -# MAC=${MAC%" brd"} - -# UUID -UUID=$(dmidecode -q -s system-uuid | grep -v '^#' | head -n 1 | tr '[a-z]' '[A-Z]') - -# System -MANUFACTURER=$(dmidecode -q -s system-manufacturer) -MODEL=$(dmidecode -q -s system-product-name) -SERIAL=$(dmidecode -q -s system-serial-number) -VENDOR=$(dmidecode | grep -Eo '(Vendor).*') -VENDOR=${VENDOR#"Vendor: "} -# VENDOR=$(dmidecode | grep -Eo '(Vendor).*' | cut -f 2 -d ":") - -# Mainboard -MAINBOARD_MANUFACTURER=$(dmidecode -q -s baseboard-manufacturer) -MAINBOARD_MODEL=$(dmidecode -q -s baseboard-product-name) -MAINBOARD_SERIAL_NUMBER=$(dmidecode -q -s baseboard-serial-number) +TYPE="CLIENT" + +cpu() { + cat << EOF +{ + "model": "$1", + "manufacturer": "$2", + "type": "$3", + "cores": "$4", + "frequency": "$5", + "unit": "$6" +} +EOF +} + +getCpus() { + readarray -t CPU_MODEL <<< "$(dmidecode -q -s processor-version)" + readarray -t CPU_MANUFACTURER <<< "$(dmidecode -q -s processor-manufacturer)" + readarray -t CPU_TYPE <<< "$(dmidecode -q -s processor-family)" + readarray -t CPU_CORES <<< "$(dmidecode -t processor | grep -o 'Core Count:.*' | cut -f3- -d ' ')" + readarray -t CPU_FREQUENCY <<< "$(dmidecode -q -s processor-frequency | cut -f1- -d ' ')" + + CPUS=() + FIRST=true + for i in ${!CPU_MODEL[@]}; do + if [ "$FIRST" == "true" ]; then + FIRST=false + else + CPUS+=", " + fi + + frequency=$(echo ${CPU_FREQUENCY[i]} | awk '{print $1}') + unit=$(echo ${CPU_FREQUENCY[i]} | awk '{print $2}') + CPUS+=$(cpu "${CPU_MODEL[i]}" "${CPU_MANUFACTURER[i]}" "${CPU_TYPE[i]}" "${CPU_CORES[i]}" "$frequency" "$unit") + done + echo ${CPUS[*]} +} # CPU CPU_MODEL=$(dmidecode -q -s processor-version) @@ -33,81 +49,146 @@ CPU_CORES=$(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | sor CPU_FREQUENCY=$(dmidecode -q -s processor-frequency) CPU_FREQUENCY=${CPU_FREQUENCY%" MHz"} -# RAM -# RAM=$(grep -m1 '^MemTotal:' /proc/meminfo | awk '{print $2}') -# RAM=$(( $RAM / 1024 )) -# if [ -z "$RAM" ] || [ "$RAM" -lt 500 ]; then -# # Fallback to dmidecode -# RAM=0 -# for c in $(dmidecode -t 17 | grep -o 'Size:.*MB$' | awk '{print $2}'); do -# RAM=$(( $RAM + $c )) -# done -# fi - -# RAM_SIZE=$(dmidecode -t 17 | grep -o 'Size:.*[MG]B$') -RAM_SIZE=$(dmidecode -t 17 | grep -o 'Size:.*') -RAM_MANUFACTURER=$(dmidecode -t 17 | grep -o 'Manufacturer:.*') -RAM_TYPE=$(dmidecode -t 17 | grep -o 'Type:.*') -RAM_ISECC=$(dmidecode -t 16 | grep -o 'Error Correction Type:.*') -RAM_FORMFACTOR=$(dmidecode -t 17 | grep -o 'Form Factor:.*') - -# HDD / SSD -# hd parm or smartctl from smartmontools -drives=$(ls /dev/sd* | grep -o '/dev/sd.$') - -DRIVES=() -for drive in $drives; do - # drivedata=$(sudo smartctl -i $drive) - # drivedata1=$(sudo hdparm -I $drive) - drivedata=$(mktemp) - smartctl -i $drive >> $drivedata - DRIVE=() - - # Model - #echo $(sudo smartctl -i $drive | grep -o "Device Model: .*") - #echo $(sudo hdparm -I $drive | grep -o "Model Number: .*") - DRIVE_MODEL=$(cat $drivedata | grep -o "Device Model: .*") - DRIVE+=($DRIVE_MODEL) - DRIVE+=('%ATTRIBUTE_SPLITTER%') - - # Serial - #echo $(sudo smartctl -i $drive | grep -o "Serial Number: .*") - #echo $(sudo hdparm -I $drive | grep -o "Serial Number: .*") - DRIVE_SERIAL=$(cat $drivedata | grep -o "Serial Number: .*") - DRIVE+=($DRIVE_SERIAL) - DRIVE+=('%ATTRIBUTE_SPLITTER%') - - # Capacity - #echo $(sudo smartctl -i $drive | grep -o "User Capacity: .*") - #echo $(sudo hdparm -I $drive | grep -o "device size with M = 1000\*1000: .*") - DRIVE_CAPACITY=$(cat $drivedata | grep -o "User Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])') - DRIVE+=($DRIVE_CAPACITY) - DRIVE+=('%ATTRIBUTE_SPLITTER%') - - # Type - #echo $(sudo smartctl -i $drive | grep -o "Rotation Rate: .*") - #echo $(sudo hdparm -Ibash $drive | grep -o "Nominal Media Rotation Rate: .*") - DRIVE_TYPE=$(cat $drivedata | grep -o "Rotation Rate: .*") - DRIVE+=($DRIVE_TYPE) - DRIVE+=('%ATTRIBUTE_SPLITTER%') - - # Form Factor - #echo $(sudo smartctl -i $drive | grep -o "Form Factor: .*") - #echo $(sudo hdparm -I $drive | grep -o "Form Factor: .*") - DRIVE_FORMFACTOR=$(cat $drivedata | grep -o "Form Factor: .*") - DRIVE+=($DRIVE_FORMFACTOR) - DRIVE+=('%ATTRIBUTE_SPLITTER%') - - # Connection - #echo $(sudo smartctl -i $drive | grep -o "SATA Version is: .*") - #echo $(sudo hdparm -I $drive | grep -o "signaling speed .*") - DRIVE_CONNECTION=$(cat $drivedata | grep -o "SATA Version is: .*") - DRIVE+=($DRIVE_CONNECTION) - - DRIVES+=(${DRIVE[*]}) - DRIVES+=("%OBJECT_SPLITTER%") -done +ram() { + cat << EOF +{ + "capacity": "$1", + "unit": "$2", + "manufacturer": "$3", + "type": "$4", + "formfactor": "$5" +} +EOF +} + +getRamModules() { + readarray -t RAM_SIZE <<< "$(dmidecode -t 17 | grep -o 'Size:.*' | cut -f2- -d ' ')" + readarray -t RAM_MANUFACTURER <<< "$(dmidecode -t 17 | grep -o 'Manufacturer:.*' | cut -f2- -d ' ')" + readarray -t RAM_TYPE <<< "$(dmidecode -t 17 | grep -o 'Type:.*' | cut -f2- -d ' ')" + readarray -t RAM_FORMFACTOR <<< "$(dmidecode -t 17 | grep -o 'Form Factor:.*' | cut -f3- -d ' ')" + RAM_MODULES=() + FIRST=true + for i in ${!RAM_SIZE[@]}; do + if [ "${RAM_SIZE[i]}" == 'No Module Installed' ] + then + continue + fi + + if [ "$FIRST" == "true" ]; then + FIRST=false + else + RAM_MODULES+=", " + fi + + size=$(echo ${RAM_SIZE[i]} | awk '{print $1}') + unit=$(echo ${RAM_SIZE[i]} | awk '{print $2}') + RAM_MODULES+=$(ram "$size" "$unit" "${RAM_MANUFACTURER[i]}" "${RAM_TYPE[i]}" "${RAM_FORMFACTOR[i]}") + done + echo ${RAM_MODULES[*]} +} + +drive() { + cat << EOF +{ + "model": "$1", + "serial": "$2", + "capacity": "$3", + "unit": "$4", + "type": "$5", + "formfactor": "$6", + "connection": "$7" +} +EOF +} + +getDrives() { + # HDD / SSD + # hd parm or smartctl from smartmontools + drives=$(ls /dev/sd* | grep -o '/dev/sd.$') + + DRIVES=() + FIRST=true + for drive in $drives; do + if [ "$FIRST" == "true" ]; then + FIRST=false + else + DRIVES+=", " + fi + drivedata=$(mktemp) + smartctl -i $drive >> $drivedata + + DRIVE_MODEL=$(cat $drivedata | grep -o "Device Model: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVE_SERIAL=$(cat $drivedata | grep -o "Serial Number: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVE_CAPACITY=$(cat $drivedata | grep -o "User Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])' | awk '{print $1}') + DRIVE_UNIT=$(cat $drivedata | grep -o "User Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])' | awk '{print $2}') + DRIVE_TYPE=$(cat $drivedata | grep -o "Rotation Rate: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVE_FORMFACTOR=$(cat $drivedata | grep -o "Form Factor: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVE_CONNECTION=$(cat $drivedata | grep -o "SATA Version is: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVES+=$(drive "$DRIVE_MODEL" "$DRIVE_SERIAL" "$DRIVE_CAPACITY" "$DRIVE_UNIT" "$DRIVE_TYPE" "$DRIVE_FORMFACTOR" "$DRIVE_CONNECTION") + done + + # NVME need extra stuff + nvmes=$(ls /dev/nvme* | grep -o '/dev/nvme.$') + for nvme in $nvmes; do + if [ "$FIRST" == "true" ]; then + FIRST=false + else + DRIVES+=", " + fi + + drivedata=$(mktemp) + smartctl -i $nvme >> $drivedata + + DRIVE_MODEL=$(cat $drivedata | grep -o "Model Number: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVE_SERIAL=$(cat $drivedata | grep -o "Serial Number: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') + DRIVE_CAPACITY=$(cat $drivedata | grep -o "Total NVM Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])' | awk '{print $1}') + DRIVE_UNIT=$(cat $drivedata | grep -o "Total NVM Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])' | awk '{print $2}') + DRIVE_TYPE='Solid State Device' + DRIVE_FORMFACTOR='NVMe' + DRIVE_CONNECTION='Other' + DRIVES+=$(drive "$DRIVE_MODEL" "$DRIVE_SERIAL" "$DRIVE_CAPACITY" "$DRIVE_UNIT" "$DRIVE_TYPE" "$DRIVE_FORMFACTOR" "$DRIVE_CONNECTION") + done + + echo ${DRIVES[*]} +} + +# System +# VENDOR=$(dmidecode | grep -Eo '(Vendor).*' | cut -f 2 -d ":") + +# Mainboard +# MAINBOARD_MANUFACTURER=$(dmidecode -q -s baseboard-manufacturer) +# MAINBOARD_MODEL=$(dmidecode -q -s baseboard-product-name) +# MAINBOARD_SERIAL_NUMBER=$(dmidecode -q -s baseboard-serial-number) +UUID=$(dmidecode -q -s system-uuid | grep -v '^#' | head -n 1 | tr '[a-z]' '[A-Z]') +json_data() { + cat << EOF +{ + "client": { + "parents": [], + "type": "$TYPE", + "uuid": "$UUID", + "network": { + "mac": "$(ip addr show | grep -Eo -m 1 'ether\s.*\sbrd' | awk '{print $2}')", + "ip": "$(hostname -I | awk '{print $1}')" + }, + "system": { + "model": "$(dmidecode -q -s system-product-name)", + "manufacturer": "$(dmidecode -q -s system-manufacturer)", + "serialnumber": "$(dmidecode -q -s system-serial-number)" + }, + "cpus": [$(getCpus)], + "ram": { + "modules": [$(getRamModules)], + "isEcc": "$(dmidecode -t 16 | grep -o 'Error Correction Type:.*' | cut -f4- -d ' ')" + }, + "drives": [$(getDrives)] + } +} +EOF +} # Curl -#curl --data "state=6" --insecure https://bas.stfu-kthx.net:8888/api/registrations/$UUID/state -curl -d "name=Client_$UUID&sys_manufacturer=$MANUFACTURER&sys_model=$MODEL&sys_serial=$SERIAL&cpu_model=$CPU_MODEL&cpu_manufacturer=$CPU_MANUFACTURER&cpu_type=$CPU_TYPE&cpu_cores=$CPU_CORES&cpu_frequency=$CPU_FREQUENCY&ram_size=$RAM_SIZE&ram_manufacturer=$RAM_MANUFACTURER&ram_type=$RAM_TYPE&ram_isecc=$RAM_ISECC&ram_formfactor=$RAM_FORMFACTOR&drives=${DRIVES[*]}" -H "Content-Type: application/x-www-form-urlencoded" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registration/$UUID/update +# curl --data "state=6" --insecure https://bas.stfu-kthx.net:8888/api/registrations/$UUID/state +# curl -d "name=Client_$UUID&sys_manufacturer=$MANUFACTURER&sys_model=$MODEL&sys_serial=$SERIAL&cpu_model=$CPU_MODEL&cpu_manufacturer=$CPU_MANUFACTURER&cpu_type=$CPU_TYPE&cpu_cores=$CPU_CORES&cpu_frequency=$CPU_FREQUENCY&ram_size=$RAM_SIZE&ram_manufacturer=$RAM_MANUFACTURER&ram_type=$RAM_TYPE&ram_isecc=$RAM_ISECC&ram_formfactor=$RAM_FORMFACTOR&drives=${DRIVES[*]}" -H "Content-Type: application/x-www-form-urlencoded" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registration/$UUID/update +#echo $(json_data) +curl -d "$(json_data)" -H "Content-Type: application/json" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registration/clients/$UUID \ No newline at end of file diff --git a/server/ipxe/bash_scripts/grepSystemInfoRework.sh b/server/ipxe/bash_scripts/grepSystemInfoRework.sh deleted file mode 100755 index ad553fa..0000000 --- a/server/ipxe/bash_scripts/grepSystemInfoRework.sh +++ /dev/null @@ -1,171 +0,0 @@ -#!/bin/bash -. /lib/dracut-lib.sh -# http://git.openslx.org/openslx-ng/mltk.git/tree/core/modules/hardware-stats/data/opt/openslx/scripts/systemd-hardware_stats -# dmidecode | grep -i UUID -TYPE="CLIENT" - -cpu() { - cat << EOF -{ - "model": "$1", - "manufacturer": "$2", - "type": "$3", - "cores": "$4", - "frequency": "$5", - "unit": "$6" -} -EOF -} - -getCpus() { - readarray -t CPU_MODEL <<< "$(dmidecode -q -s processor-version)" - readarray -t CPU_MANUFACTURER <<< "$(dmidecode -q -s processor-manufacturer)" - readarray -t CPU_TYPE <<< "$(dmidecode -q -s processor-family)" - readarray -t CPU_CORES <<< "$(dmidecode -t processor | grep -o 'Core Count:.*' | cut -f3- -d ' ')" - readarray -t CPU_FREQUENCY <<< "$(dmidecode -q -s processor-frequency | cut -f1- -d ' ')" - - CPUS=() - FIRST=true - for i in ${!CPU_MODEL[@]}; do - if [ "$FIRST" == "true" ]; then - FIRST=false - else - CPUS+=", " - fi - - frequency=$(echo ${CPU_FREQUENCY[i]} | awk '{print $1}') - unit=$(echo ${CPU_FREQUENCY[i]} | awk '{print $2}') - CPUS+=$(cpu "${CPU_MODEL[i]}" "${CPU_MANUFACTURER[i]}" "${CPU_TYPE[i]}" "${CPU_CORES[i]}" "$frequency" "$unit") - done - echo ${CPUS[*]} -} - -# CPU -CPU_MODEL=$(dmidecode -q -s processor-version) -# CPUMODEL=$(grep -m1 '^model name\s*:' /proc/cpuinfo | sed 's/^model name\s*:\s*//;s/\s\s*/ /g;s/^ //;s/ $//') -CPU_MANUFACTURER=$(dmidecode -q -s processor-manufacturer) -CPU_TYPE=$(dmidecode -q -s processor-family) -CPU_CORES=$(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | sort -u | wc -l) -CPU_FREQUENCY=$(dmidecode -q -s processor-frequency) -CPU_FREQUENCY=${CPU_FREQUENCY%" MHz"} - -ram() { - cat << EOF -{ - "capacity": "$1", - "unit": "$2", - "manufacturer": "$3", - "type": "$4", - "formfactor": "$5" -} -EOF -} - -getRamModules() { - readarray -t RAM_SIZE <<< "$(dmidecode -t 17 | grep -o 'Size:.*' | cut -f2- -d ' ')" - readarray -t RAM_MANUFACTURER <<< "$(dmidecode -t 17 | grep -o 'Manufacturer:.*' | cut -f2- -d ' ')" - readarray -t RAM_TYPE <<< "$(dmidecode -t 17 | grep -o 'Type:.*' | cut -f2- -d ' ')" - readarray -t RAM_FORMFACTOR <<< "$(dmidecode -t 17 | grep -o 'Form Factor:.*' | cut -f3- -d ' ')" - RAM_MODULES=() - FIRST=true - for i in ${!RAM_SIZE[@]}; do - if [ "${RAM_SIZE[i]}" == 'No Module Installed' ] - then - continue - fi - - if [ "$FIRST" == "true" ]; then - FIRST=false - else - RAM_MODULES+=", " - fi - - size=$(echo ${RAM_SIZE[i]} | awk '{print $1}') - unit=$(echo ${RAM_SIZE[i]} | awk '{print $2}') - RAM_MODULES+=$(ram "$size" "$unit" "${RAM_MANUFACTURER[i]}" "${RAM_TYPE[i]}" "${RAM_FORMFACTOR[i]}") - done - echo ${RAM_MODULES[*]} -} - -drive() { - cat << EOF -{ - "model": "$1", - "serial": "$2", - "capacity": "$3", - "unit": "$4", - "type": "$5", - "formfactor": "$6", - "connection": "$7" -} -EOF -} - -getDrives() { -# HDD / SSD -# hd parm or smartctl from smartmontools -drives=$(ls /dev/sd* | grep -o '/dev/sd.$') - -DRIVES=() -FIRST=true -for drive in $drives; do - if [ "$FIRST" == "true" ]; then - FIRST=false - else - DRIVES+=", " - fi - drivedata=$(mktemp) - smartctl -i $drive >> $drivedata - - DRIVE_MODEL=$(cat $drivedata | grep -o "Device Model: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') - DRIVE_SERIAL=$(cat $drivedata | grep -o "Serial Number: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') - DRIVE_CAPACITY=$(cat $drivedata | grep -o "User Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])' | awk '{print $1}') - DRIVE_UNIT=$(cat $drivedata | grep -o "User Capacity: .*" | grep -Pzo '(?<=\[)(.*?)(?=\])' | awk '{print $2}') - DRIVE_TYPE=$(cat $drivedata | grep -o "Rotation Rate: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') - DRIVE_FORMFACTOR=$(cat $drivedata | grep -o "Form Factor: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') - DRIVE_CONNECTION=$(cat $drivedata | grep -o "SATA Version is: .*" | cut -f2- -d ":" | sed -e 's/^[[:space:]]*//') - DRIVES+=$(drive "$DRIVE_MODEL" "$DRIVE_SERIAL" "$DRIVE_CAPACITY" "$DRIVE_UNIT" "$DRIVE_TYPE" "$DRIVE_FORMFACTOR" "$DRIVE_CONNECTION") -done -echo ${DRIVES[*]} -} - -# System -# VENDOR=$(dmidecode | grep -Eo '(Vendor).*' | cut -f 2 -d ":") - -# Mainboard -# MAINBOARD_MANUFACTURER=$(dmidecode -q -s baseboard-manufacturer) -# MAINBOARD_MODEL=$(dmidecode -q -s baseboard-product-name) -# MAINBOARD_SERIAL_NUMBER=$(dmidecode -q -s baseboard-serial-number) -UUID=$(dmidecode -q -s system-uuid | grep -v '^#' | head -n 1 | tr '[a-z]' '[A-Z]') -json_data() { - cat << EOF -{ - "client": { - "parents": [], - "type": "$TYPE", - "uuid": "$UUID", - "network": { - "mac": "$(ip addr show | grep -Eo -m 1 'ether\s.*\sbrd' | awk '{print $2}')", - "ip": "$(hostname -I | awk '{print $1}')" - }, - "system": { - "model": "$(dmidecode -q -s system-product-name)", - "manufacturer": "$(dmidecode -q -s system-manufacturer)", - "serialnumber": "$(dmidecode -q -s system-serial-number)" - }, - "cpus": [$(getCpus)], - "ram": { - "modules": [$(getRamModules)], - "isEcc": "$(dmidecode -t 16 | grep -o 'Error Correction Type:.*' | cut -f4- -d ' ')" - }, - "drives": [$(getDrives)] - } -} -EOF -} - -# Curl -# curl --data "state=6" --insecure https://bas.stfu-kthx.net:8888/api/registrations/$UUID/state -# curl -d "name=Client_$UUID&sys_manufacturer=$MANUFACTURER&sys_model=$MODEL&sys_serial=$SERIAL&cpu_model=$CPU_MODEL&cpu_manufacturer=$CPU_MANUFACTURER&cpu_type=$CPU_TYPE&cpu_cores=$CPU_CORES&cpu_frequency=$CPU_FREQUENCY&ram_size=$RAM_SIZE&ram_manufacturer=$RAM_MANUFACTURER&ram_type=$RAM_TYPE&ram_isecc=$RAM_ISECC&ram_formfactor=$RAM_FORMFACTOR&drives=${DRIVES[*]}" -H "Content-Type: application/x-www-form-urlencoded" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registration/$UUID/update -#echo $(json_data) -curl -d "$(json_data)" -H "Content-Type: application/json" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registration/clients/$UUID \ No newline at end of file -- cgit v1.2.3-55-g7522