diff --git a/elements/ironic-discoverd-ramdisk/README.rst b/elements/ironic-discoverd-ramdisk/README.rst deleted file mode 100644 index a8040fc1..00000000 --- a/elements/ironic-discoverd-ramdisk/README.rst +++ /dev/null @@ -1,27 +0,0 @@ -======================== -ironic-discoverd-ramdisk -======================== - -.. warning:: - This element is deprecated. Please use the ironic-agent element - instead. - -ironic-inspector [1] is a project for conducting hardware properties -discovery via booting a special ramdisk and interrogating hardware -from within it. - -This ramdisk collects hardware information from the machine -it's booted on and posts it to the URL provided via -kernel argument 'discoverd_callback_url'. - -The hardware information collected by the ramdisk are: - -* BMC IP address (may be required for associating with existing node in Ironic) -* CPU count and architecture -* Memory amount in MiB -* Hard drive size in GiB -* IP and mac addresses for all NICs except the loopback - -The machine is halted at the end of the process. - -[1] https://pypi.python.org/pypi/ironic-inspector diff --git a/elements/ironic-discoverd-ramdisk/binary-deps.d/ironic-discoverd-ramdisk b/elements/ironic-discoverd-ramdisk/binary-deps.d/ironic-discoverd-ramdisk deleted file mode 100644 index d0404f68..00000000 --- a/elements/ironic-discoverd-ramdisk/binary-deps.d/ironic-discoverd-ramdisk +++ /dev/null @@ -1,7 +0,0 @@ -curl -dmidecode -fdisk -ipmitool -jq -lscpu -wc diff --git a/elements/ironic-discoverd-ramdisk/element-deps b/elements/ironic-discoverd-ramdisk/element-deps deleted file mode 100644 index 7076aba9..00000000 --- a/elements/ironic-discoverd-ramdisk/element-deps +++ /dev/null @@ -1 +0,0 @@ -package-installs diff --git a/elements/ironic-discoverd-ramdisk/init.d/80-ironic-discoverd-ramdisk b/elements/ironic-discoverd-ramdisk/init.d/80-ironic-discoverd-ramdisk deleted file mode 100644 index 4d70c724..00000000 --- a/elements/ironic-discoverd-ramdisk/init.d/80-ironic-discoverd-ramdisk +++ /dev/null @@ -1,114 +0,0 @@ -DISCOVERD_URL=$(get_kernel_parameter discoverd_callback_url) - -if [ -z "$DISCOVERD_URL" ]; then - # Some old ramdisks are around - DISCOVERD_URL=$(get_kernel_parameter ironic_callback_url) - if [ -z "$DISCOVERD_URL" ]; then - echo "No discoverd_callback_url supplied" - troubleshoot - else - echo "WARNING: deprecated option ironic_callback_url" - echo "WARNING: use discoverd_callback_url instead" - fi -fi - -echo '{"interfaces":{}}' > data.json - -function update() { - jq "$1" data.json > temp.json || troubleshoot - mv temp.json data.json -} - -for iface in $(ls /sys/class/net/ | grep -v lo) -do - MAC=$(ip link show $iface | awk '/ether/ {print $2}') - IP=$(ip addr show $iface | awk '/inet / { sub(/\/.*/, "", $2); print $2 }') - if [ ! -z "$MAC" ]; then - update ".interfaces[\"$iface\"] = {mac: \"$MAC\", ip: \"$IP\"}" - fi -done - -# NOTE(dtantsur): workaround for IPMI device not present on some systems -function modprobe_ipmi() { - modprobe ipmi_$1 || echo "WARNING: modprobe ipmi_$1 failed, ipmitool call may fail later" -} - -modprobe_ipmi msghandler -modprobe_ipmi devintf -modprobe_ipmi si - -BMC_ADDRESS=$(ipmitool lan print | grep -e "IP Address [^S]" | awk '{ print $4 }') -update ".ipmi_address = \"$BMC_ADDRESS\"" - -CPU_ARCH=$(lscpu | grep Architecture | awk '{ print $2 }') -update ".cpu_arch = \"$CPU_ARCH\"" - -RAM=0 -if hash dmidecode 2>/dev/null; then - for i in $(dmidecode --type memory | grep Size | awk '{ print $2; }' | grep -E '[0-9]+'); - do - RAM=$(( RAM + $i )); - done -elif hash lshw 2>/dev/null; then - # dmidecode does not exist for ppc, but lshw should (for both) - MEMORY=$(lshw -c memory -short -quiet | grep -i 'system memory' | awk '{ print $3; }') - if [[ "${MEMORY}" =~ GiB$ ]]; then - RAMGB=${MEMORY::-3} - RAM=$(( RAMGB * 1024 )); - elif [[ "${MEMORY}" =~ MiB$ ]]; then - RAM=${MEMORY::-3} - fi -fi -[ ${RAM} -gt 0 ] && update ".memory_mb = $RAM" - -CPUS=$(cat /proc/cpuinfo | grep processor | wc -l) -update ".cpus = $CPUS" - -DISK_BYTES=$(fdisk -l | grep Disk | awk '{print $5}' | head -n 1) -# NOTE(dtantsur): -1 is required to give Ironic some spacing for partitioning and may be removed later -DISK_SIZE=$(($DISK_BYTES/1024/1024/1024 - 1)) -update ".local_gb = $DISK_SIZE" - -BOOTIF=$(get_kernel_parameter BOOTIF) -update ".boot_interface = \"$BOOTIF\"" - -echo Collected: -cat data.json - -RESULT=$(eval curl -i -X POST \ - "-H 'Accept: application/json'" \ - "-H 'Content-Type: application/json'" \ - "-d @data.json" \ - "$DISCOVERD_URL") || troubleshoot -# CURL can't return error code on 4xx error -if echo $RESULT | grep "HTTP/1.0 4"; then - echo "Ironic API returned error: $RESULT" - troubleshoot -fi - -JSON_RESP=$(echo $RESULT | tr '\r' '\n' | tail -n1) # drop HTTP headers - -if echo "$JSON_RESP" | jq '.ipmi_setup_credentials' | grep -q true; then - USERNAME=$(echo "$JSON_RESP" | jq -r '.ipmi_username') - if [ -z "$USERNAME" ]; then - echo "Empty IPMI user name" - troubleshoot - fi - PASSWORD=$(echo "$JSON_RESP" | jq -r '.ipmi_password') - if [ -z "$PASSWORD" ]; then - echo "Empty IPMI password" - troubleshoot - fi - - echo "Assigning IPMI credentials: user $USERNAME" - ipmitool user set name 2 $USERNAME - ipmitool user set password 2 $PASSWORD - # Assign priviledges just in case - ipmitool channel setaccess 1 2 link=on ipmi=on callin=on privilege=4 - ipmitool user enable 2 -fi - -echo "Node is now discovered! Halting..." -# Give user a chance of seeing the output -sleep 5 -poweroff -f diff --git a/elements/ironic-discoverd-ramdisk/package-installs.yaml b/elements/ironic-discoverd-ramdisk/package-installs.yaml deleted file mode 100644 index 824cb2f0..00000000 --- a/elements/ironic-discoverd-ramdisk/package-installs.yaml +++ /dev/null @@ -1,12 +0,0 @@ -curl: -# dmidecode does not exist for ppc* arches so add includes for non ppc -dmidecode: - arch: x86_64 -dmidecode: - arch: i386 -dmidecode: - arch: amd64 -ipmitool: -jq: -lshw: -util-linux: