| Index: chrome/test/pyautolib/chromeos/suid_actions.py
|
| diff --git a/chrome/test/pyautolib/chromeos/suid_actions.py b/chrome/test/pyautolib/chromeos/suid_actions.py
|
| index fe8d311bfb1319500e14283489f91eb54a031490..96e8ede4f43895879f9dc0920a0f09944b9c6dd7 100755
|
| --- a/chrome/test/pyautolib/chromeos/suid_actions.py
|
| +++ b/chrome/test/pyautolib/chromeos/suid_actions.py
|
| @@ -12,15 +12,19 @@ Usage:
|
| sudo python suid_actions.py --action=CleanFlimflamDirs
|
| """
|
|
|
| +import logging
|
| import optparse
|
| import os
|
| import shutil
|
| import sys
|
|
|
| -
|
| sys.path.append('/usr/local') # to import autotest libs.
|
| from autotest.cros import cryptohome
|
|
|
| +# TODO(bartfab): Remove when crosbug.com/20709 is fixed.
|
| +sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir))
|
| +from pyauto import AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE
|
| +
|
|
|
| class SuidAction(object):
|
| """Helper to perform some super-user actions on ChromeOS."""
|
| @@ -65,6 +69,38 @@ class SuidAction(object):
|
| """Remove any existing cryptohome vaults."""
|
| cryptohome.remove_all_vaults()
|
|
|
| + def TryToDisableLocalStateAutoClearing(self):
|
| + """Try to disable clearing of the local state on session manager startup.
|
| +
|
| + This will fail if rootfs verification is on.
|
| + TODO(bartfab): Remove this method when crosbug.com/20709 is fixed.
|
| + """
|
| + os.system('mount -o remount,rw /')
|
| + os.remove(AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE)
|
| + os.system('mount -o remount,ro /')
|
| + if os.path.exists(AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE):
|
| + logging.debug('Failed to remove %s. Session manager will clear local '
|
| + 'state on startup.' % AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE)
|
| + else:
|
| + logging.debug('Removed %s. Session manager will not clear local state on '
|
| + 'startup.' % AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE)
|
| +
|
| + def TryToEnableLocalStateAutoClearing(self):
|
| + """Try to enable clearing of the local state on session manager startup.
|
| +
|
| + This will fail if rootfs verification is on.
|
| + TODO(bartfab): Remove this method when crosbug.com/20709 is fixed.
|
| + """
|
| + os.system('mount -o remount,rw /')
|
| + open(AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE, 'w').close()
|
| + os.system('mount -o remount,ro /')
|
| + if os.path.exists(AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE):
|
| + logging.debug('Created %s. Session manager will clear local state on '
|
| + 'startup.' % AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE)
|
| + else:
|
| + logging.debug('Failed to create %s. Session manager will not clear local '
|
| + 'state on startup.' % AUTO_CLEAR_LOCAL_STATE_MAGIC_FILE)
|
| +
|
|
|
| if __name__ == '__main__':
|
| sys.exit(SuidAction().Run())
|
|
|