#!/bin/bash
+# $Id$
+# $URL$
#
# priority: 100
#
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: network,v 1.1 2006/04/06 21:51:59 mlhuang Exp $
-#
# Source function library and configuration
. /etc/plc.d/functions
. /etc/planetlab/plc_config
+# Be verbose
+set -x
+
+[ "$PLC_HOSTS_ENABLED" -ne 1 ] && exit 0
+
case "$1" in
start)
MESSAGE=$"Generating network files"
dialog "$MESSAGE"
+ mv -f /etc/hosts /etc/hosts_plc.backup
+ hfile=$(mktemp)
# Minimal /etc/hosts
- echo "127.0.0.1 localhost.localdomain localhost" >/etc/hosts
- (
- for server in API BOOT WWW ; do
- hostname=PLC_${server}_HOST
+ for server in DB API BOOT WWW ; do
+ hostname=PLC_${server}_HOST
+ ip=PLC_${server}_IP
+ if [ -n "${!ip}" ] ; then
+ echo "${!ip} ${!hostname}"
+ else
ip=$(gethostbyname ${!hostname})
if [ -n "$ip" ] ; then
- echo "$ip $hostname"
+ echo "$ip ${!hostname}"
fi
- done
- ) >>/etc/hosts
+ fi
+ done > $hfile
+ echo "#generated by /etc/plc.d/network" >/etc/hosts
+ echo "127.0.0.1 localhost.localdomain localhost" >> /etc/hosts
+ sort -u $hfile >> /etc/hosts
+ chmod +r /etc/hosts
+ rm -f $hfile
- # Set up nameservers
- (
- [ -n "$PLC_NET_DNS1" ] && echo "nameserver $PLC_NET_DNS1"
- [ -n "$PLC_NET_DNS2" ] && echo "nameserver $PLC_NET_DNS2"
- ) >/etc/resolv.conf
+ result "$MESSAGE"
+ ;;
+ stop)
+ MESSAGE=$"Reverting network files"
+ if [ -f /etc/hosts_plc.backup ] ; then
+ mv -f /etc/hosts_plc.backup /etc/hosts
+ fi
+ dialog "$MESSAGE"
result "$MESSAGE"
;;
esac