Using do_root_cmd() doesn't really need to sudo to root
if you're already root.
Commit
71dc75bdafe62a098c0493ad62f2d0d2a6ca7946 causes a regression:
when system "foo" has a sudoers config that requires a tty,
init-ceph now fails like this:
sudo: sorry, you must have a tty to run sudo
when it is invoked by root with something like this:
ssh foo /etc/init.d/init-ceph start
Signed-off-by: Jim Schutt <jaschut@sandia.gov>
Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
if [ -z "$ssh" ]; then
[ $verbose -eq 1 ] && echo "--- $host# $1"
ulimit -c unlimited
- sudo bash -c "$1" || { echo "failed: '$1'" ; exit 1; }
+ whoami=`whoami`
+ if [ "$whoami" = "root" ]; then
+ bash -c "$1" || { echo "failed: '$1'" ; exit 1; }
+ else
+ sudo bash -c "$1" || { echo "failed: '$1'" ; exit 1; }
+ fi
else
[ $verbose -eq 1 ] && echo "--- $rootssh $2 \"cd $sshdir ; ulimit -c unlimited ; $1\""
$rootssh $2 "cd $sshdir ; ulimit -c unlimited ; $1" || { echo "failed: '$rootssh $1'" ; exit 1; }