telemetry.core.cros_interface | index telemetry/core/cros_interface.py

`A wrapper around ssh for common operations on a CrOS-based device`

Modules
`` |  |

logging os | re shutil | stat subprocess | tempfile

Classes
`` |  |

__builtin__.object
  CrOSInterface
exceptions.Exception(exceptions.BaseException)
  LoginException
    DNSFailureException
    KeylessLoginRequiredException

class CrOSInterface(__builtin__.object)
`` |  | Methods defined here:

Chown(self, filename)

CloseConnection(self)

CryptohomePath(self, user)
  `Returns the cryptohome mount point for |user|.`

FileExistsOnDevice(self, file_name)

FilesystemMountedAt(self, path)
  `Returns the filesystem mounted at |path|`

FormSSHCommandLine(self, args, extra_ssh_args=None)
  `Constructs a subprocess-suitable command line for `ssh'.`

GetChromePid(self)
  `Returns pid of main chrome browser process.`

GetChromeProcess(self)
  `Locates the the main chrome browser process.
  Chrome on cros is usually in /opt/google/chrome, but could be in
  /usr/local/ for developer workflows - debug chrome is too large to fit on
  rootfs.
  Chrome spawns multiple processes for renderers. pids wrap around after they
  are exhausted so looking for the smallest pid is not always correct. We
  locate the session_manager's pid, and look for the chrome process that's an
  immediate child. This is the main browser process.`

GetFile(self, filename, destfile=None)
  `Copies a local file |filename| to |destfile| on the device.
  Args:
  filename: The name of the local source file.
  destfile: The name of the file to copy to, and if it is not specified
  then it is the basename of the source file.`

GetFileContents(self, filename)
  `Get the contents of a file on the device.
  Args:
  filename: The name of the file on the device.
  Returns:
  A string containing the contents of the file.`

GetRemotePort(self)

IsCryptohomeMounted(self, username, is_guest)
  `Returns True iff |user|'s cryptohome is mounted.`

IsHTTPServerRunningOnPort(self, port)

IsServiceRunning(self, service_name)

KillAllMatching(self, predicate)

ListProcesses(self)
  `Returns (pid, cmd, ppid, state) of all processes on the device.`

PushContents(self, text, remote_filename)

PushFile(self, filename, remote_filename)

RestartUI(self, clear_enterprise_policy)

RmRF(self, filename)

RunCmdOnDevice(self, args, cwd=None, quiet=False)

TakeScreenShot(self, screenshot_prefix)
  `Takes a screenshot, useful for debugging failures.`

TryLogin(self)

__enter__(self)

__exit__(self, *args)

__init__(self, hostname=None, ssh_port=None, ssh_identity=None)
  `# pylint: disable=R0923`

Data descriptors defined here:

__dict__
  `dictionary for instance variables (if defined)`

__weakref__
  `list of weak references to the object (if defined)`

hostname

local

ssh_port

class DNSFailureException(LoginException)
`` |  |

Method resolution order:
  DNSFailureException
  LoginException
  exceptions.Exception
  exceptions.BaseException
  __builtin__.object

Data descriptors inherited from LoginException:

__weakref__
  `list of weak references to the object (if defined)`

Methods inherited from exceptions.Exception:

__init__(...)
  `x.__init__(...) initializes x; see help(type(x)) for signature`

Data and other attributes inherited from exceptions.Exception:

__new__ = <built-in method __new__ of type object>
  `T.__new__(S, ...) -> a new object with type S, a subtype of T`

Methods inherited from exceptions.BaseException:

__delattr__(...)
  `x.__delattr__('name') <==> del x.name`

__getattribute__(...)
  `x.__getattribute__('name') <==> x.name`

__getitem__(...)
  `x.__getitem__(y) <==> x[y]`

__getslice__(...)
  `x.__getslice__(i, j) <==> x[i:j]
  Use of negative indices is not supported.`

__reduce__(...)

__repr__(...)
  `x.__repr__() <==> repr(x)`

__setattr__(...)
  `x.__setattr__('name', value) <==> x.name = value`

__setstate__(...)

__str__(...)
  `x.__str__() <==> str(x)`

__unicode__(...)

Data descriptors inherited from exceptions.BaseException:

__dict__

args

message

class KeylessLoginRequiredException(LoginException)
`` |  |

Method resolution order:
  KeylessLoginRequiredException
  LoginException
  exceptions.Exception
  exceptions.BaseException
  __builtin__.object

Data descriptors inherited from LoginException:

__weakref__
  `list of weak references to the object (if defined)`

Methods inherited from exceptions.Exception:

__init__(...)
  `x.__init__(...) initializes x; see help(type(x)) for signature`

Data and other attributes inherited from exceptions.Exception:

__new__ = <built-in method __new__ of type object>
  `T.__new__(S, ...) -> a new object with type S, a subtype of T`

Methods inherited from exceptions.BaseException:

__delattr__(...)
  `x.__delattr__('name') <==> del x.name`

__getattribute__(...)
  `x.__getattribute__('name') <==> x.name`

__getitem__(...)
  `x.__getitem__(y) <==> x[y]`

__getslice__(...)
  `x.__getslice__(i, j) <==> x[i:j]
  Use of negative indices is not supported.`

__reduce__(...)

__repr__(...)
  `x.__repr__() <==> repr(x)`

__setattr__(...)
  `x.__setattr__('name', value) <==> x.name = value`

__setstate__(...)

__str__(...)
  `x.__str__() <==> str(x)`

__unicode__(...)

Data descriptors inherited from exceptions.BaseException:

__dict__

args

message

class LoginException(exceptions.Exception)
`` |  |

Method resolution order:
  LoginException
  exceptions.Exception
  exceptions.BaseException
  __builtin__.object

Data descriptors defined here:

__weakref__
  `list of weak references to the object (if defined)`

Methods inherited from exceptions.Exception:

__init__(...)
  `x.__init__(...) initializes x; see help(type(x)) for signature`

Data and other attributes inherited from exceptions.Exception:

__new__ = <built-in method __new__ of type object>
  `T.__new__(S, ...) -> a new object with type S, a subtype of T`

Methods inherited from exceptions.BaseException:

__delattr__(...)
  `x.__delattr__('name') <==> del x.name`

__getattribute__(...)
  `x.__getattribute__('name') <==> x.name`

__getitem__(...)
  `x.__getitem__(y) <==> x[y]`

__getslice__(...)
  `x.__getslice__(i, j) <==> x[i:j]
  Use of negative indices is not supported.`

__reduce__(...)

__repr__(...)
  `x.__repr__() <==> repr(x)`

__setattr__(...)
  `x.__setattr__('name', value) <==> x.name = value`

__setstate__(...)

__str__(...)
  `x.__str__() <==> str(x)`

__unicode__(...)

Data descriptors inherited from exceptions.BaseException:

__dict__

args

message

Functions
`` |  |

GetAllCmdOutput(args, cwd=None, quiet=False)
  `Open a subprocess to execute a program and returns its output.
  Args:
  args: A string or a sequence of program arguments. The program to execute is
  the string or the first item in the args sequence.
  cwd: If not None, the subprocess's current directory will be changed to
  |cwd| before it's executed.
  Returns:
  Captures and returns the command's stdout.
  Prints the command's stderr to logger (which defaults to stdout).`

HasSSH()

RunCmd(args, cwd=None, quiet=False)
  `Opens a subprocess to execute a program and returns its return value.
  Args:
  args: A string or a sequence of program arguments. The program to execute is
  the string or the first item in the args sequence.
  cwd: If not None, the subprocess's current directory will be changed to
  |cwd| before it's executed.
  Returns:
  Return code from the command execution.`