update_machine()
{
- machine=$1
+ machine="$1"
sed "s/#MACHINENAME#/$machine/g" "$TEMPLATE" | \
sed "s,#BINDIR#,$BINDIR,g" >| "$MACHINETMP"
if ! cmp -s "$MACHINEDIR/$machine" "$MACHINETMP"; then
update_moiragroup()
{
- group=$1
+ group="$1"
# Should perhaps replace with LDAP, but fine for now.
# We should do more careful error checking so we don't take away
# all bits and delete the moira-acl files whenever there's an AFS
# outage.
- pts membership -nameorid "system:$group" -noauth | tail -n+2 | \
- sed 's/\./\//; s/^ //; s/$/@ATHENA.MIT.EDU/g' >| "$MOIRATMP"
+ pts membership system:"$group" -noauth | tail -n+2 | \
+ sed 's/\./\//' | \
+ sed 's/^ //' | \
+ sed 's/$/@ATHENA.MIT.EDU/g' >| "$MOIRATMP"
if test -s "$MOIRATMP"; then
if ! cmp -s "$MOIRADIR/$group" "$MOIRATMP"; then
mv "$MOIRATMP" "$MOIRADIR/$group"
# This extracts the list of all moira lists we care about, and updates those.
grep -R moira "$ACLDIR/" /etc/remctl/acl/ | perl -pe 's/.*moira-acl\/(.*)/$1/g' >| "$AUTOMOIRALIST"
;;
- all)
+ unregister)
+ machine="$2"
+ rm -f "$ACLDIR"/"$machine"
+ rm -f "$MACHINEDIR"/"$machine"
+ "$0" web
+ ;;
+ register)
+ machine="$2"
+ if [ "$machine" == "Domain-0" ]; then
+ echo "No, you can't control Domain 0"
+ exit 1
+ fi
+ if [ -e /etc/xen/"$machine" ]; then
+ echo "Machine already exists outside database"
+ exit 1
+ fi
+ if [ -e "$ACLDIR"/"$machine" ]; then
+ echo "Machine already registered"
+ exit 1
+ fi
+ echo "include /etc/remctl/acl/web" > "$ACLDIR/$machine"
+ "$0" web
+ ;;
+ web)
+ "$0" auto_machine_list
+ "$0" all_machines
+ ;;
+ remctl-moira-update|all)
"$0" auto_machine_list
"$0" all_machines
"$0" auto_moira_list