summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJannik Schönartz2019-04-19 00:43:29 +0200
committerJannik Schönartz2019-04-19 00:43:29 +0200
commit056dbd20b0302af827457743e727f543ff19d7d3 (patch)
tree45f0fbb7f4025925f1cfe1d63b60fb1fbf1ce04a
parent[webapp/groups] clear table filters if group id changes (diff)
downloadbas-056dbd20b0302af827457743e727f543ff19d7d3.tar.gz
bas-056dbd20b0302af827457743e727f543ff19d7d3.tar.xz
bas-056dbd20b0302af827457743e727f543ff19d7d3.zip
[server/bashscript] Remove old grep hw data script and add NMVe support.
-rwxr-xr-x[-rw-r--r--]server/ipxe/bash_scripts/grepSystemInfo.sh275
-rwxr-xr-xserver/ipxe/bash_scripts/grepSystemInfoRework.sh171
2 files changed, 178 insertions, 268 deletions
diff --git a/server/ipxe/bash_scripts/grepSystemInfo.sh b/server/ipxe/bash_scripts/grepSystemInfo.sh
index 63ca5e2..e4ff609 100644..100755
--- 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