From 752d9c18bb531544f28bdbfd00b5eb922e07d3d8 Mon Sep 17 00:00:00 2001 From: Jannik Schönartz Date: Mon, 25 Mar 2019 05:43:55 +0000 Subject: [external-backends/idoit] Add server rack segmentation & add multiple ip support --- server/ipxe/bash_scripts/addServer.sh | 158 +++++++++++++++++++++-- server/ipxe/bash_scripts/grepSystemInfoRework.sh | 2 +- server/ipxe/registration.ipxe | 2 +- 3 files changed, 148 insertions(+), 14 deletions(-) (limited to 'server/ipxe') diff --git a/server/ipxe/bash_scripts/addServer.sh b/server/ipxe/bash_scripts/addServer.sh index ad6e3aa..69088bf 100755 --- a/server/ipxe/bash_scripts/addServer.sh +++ b/server/ipxe/bash_scripts/addServer.sh @@ -1,21 +1,90 @@ #!/bin/bash -json_data() -{ - cat << EOF + + +# We mostly do not care about the return value in function local variable +# assignments. So we can write the declaration and assignment in one line. + + + +die() { + echo -e "$*" 1>&2 + exit 1 +} + + + +usage() { + local file="$(basename "$0")" + + die "$file {-r|--rack}=" \ + "{-s|--slot}=" \ + "[{-b|--bay}=]" \ + "[{-i|--interface=}]" \ + "[--rack-height=]" +} + + + +parse_mgmt() { + local host="$1"; shift + + local dev="$(ipmitool lan print 1)" + cat < 47 || slot < 1 )) && die "Error: Slot not in valid range!" + + + +# json_data +curl -d "$(json_data)" -H "Content-Type: application/json" -X POST --insecure https://bas.intra.uni-freiburg.de/api/registration/clients diff --git a/server/ipxe/bash_scripts/grepSystemInfoRework.sh b/server/ipxe/bash_scripts/grepSystemInfoRework.sh index bdc59b8..ad553fa 100755 --- a/server/ipxe/bash_scripts/grepSystemInfoRework.sh +++ b/server/ipxe/bash_scripts/grepSystemInfoRework.sh @@ -168,4 +168,4 @@ EOF # 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/$UUID \ No newline at end of file +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/registration.ipxe b/server/ipxe/registration.ipxe index 40d6a2a..53f4b01 100644 --- a/server/ipxe/registration.ipxe +++ b/server/ipxe/registration.ipxe @@ -27,7 +27,7 @@ goto start :automatic params param ipxe true -param client { "type": "CLIENT", "uuid": "${uuid}", "purpose": "Pool PC", "network": { "ip": "${net0/ip}", "mac": "${net0/mac}" } } +param client { "type": "CLIENT", "uuid": "${uuid}", "purpose": "Pool PC", "networks": [{ "ip": "${net0/ip}", "mac": "${net0/mac}" }] } chain https://bas.intra.uni-freiburg.de/api/registration##params :key -- cgit v1.2.3-55-g7522