#!/bin/bash
+set -e
if ! test -f /root/node.json ; then
- arv node create --node "{\"hostname\": \"$(hostname)\"}" > /root/node.json
+ python - <<EOF
+import arvados, json, socket
+fqdn = socket.getfqdn()
+hostname, _, domain = fqdn.partition('.')
+ip_address = socket.gethostbyname(fqdn)
+node = arvados.api('v1').nodes().create(body={'hostname': hostname, 'domain': domain, 'ip_address': ip_address}).execute()
+with open('/root/node.json', 'w') as node_file:
+ json.dump(node, node_file, indent=2)
+EOF
# Make sure /dev/fuse permissions are correct (the device appears after fuse is loaded)
chmod 1660 /dev/fuse && chgrp fuse /dev/fuse
@@ -83,10 +124,10 @@ UUID=`grep \"uuid\" /root/node.json |cut -f4 -d\"`
PING_SECRET=`grep \"ping_secret\" /root/node.json |cut -f4 -d\"`
if ! test -f /etc/cron.d/node_ping ; then
- echo "*/5 * * * * root /usr/bin/curl -k -d ping_secret=$PING_SECRET https://api/arvados/v1/nodes/$UUID/ping" > /etc/cron.d/node_ping
+ echo "*/5 * * * * root /usr/bin/curl -k -d ping_secret=$PING_SECRET https://$ARVADOS_API_HOST/arvados/v1/nodes/$UUID/ping" > /etc/cron.d/node_ping
fi
-/usr/bin/curl -k -d ping_secret=$PING_SECRET https://api/arvados/v1/nodes/$UUID/ping?ping_secret=$PING_SECRET
+/usr/bin/curl -k -d ping_secret=$PING_SECRET https://$ARVADOS_API_HOST/arvados/v1/nodes/$UUID/ping?ping_secret=$PING_SECRET