1 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 3 <html><head><title>Python: module telemetry.core.cros_interface</title> 4 <meta charset="utf-8"> 5 </head><body bgcolor="#f0f0f8"> 6 7 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading"> 8 <tr bgcolor="#7799ee"> 9 <td valign=bottom> <br> 10 <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="telemetry.html"><font color="#ffffff">telemetry</font></a>.<a href="telemetry.core.html"><font color="#ffffff">core</font></a>.cros_interface</strong></big></big></font></td 11 ><td align=right valign=bottom 12 ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="../telemetry/core/cros_interface.py">telemetry/core/cros_interface.py</a></font></td></tr></table> 13 <p><tt>A wrapper around ssh for common operations on a CrOS-based device</tt></p> 14 <p> 15 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 16 <tr bgcolor="#aa55cc"> 17 <td colspan=3 valign=bottom> <br> 18 <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr> 19 20 <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td> 21 <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="logging.html">logging</a><br> 22 <a href="os.html">os</a><br> 23 </td><td width="25%" valign=top><a href="re.html">re</a><br> 24 <a href="shutil.html">shutil</a><br> 25 </td><td width="25%" valign=top><a href="stat.html">stat</a><br> 26 <a href="subprocess.html">subprocess</a><br> 27 </td><td width="25%" valign=top><a href="tempfile.html">tempfile</a><br> 28 </td></tr></table></td></tr></table><p> 29 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 30 <tr bgcolor="#ee77aa"> 31 <td colspan=3 valign=bottom> <br> 32 <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> 33 34 <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td> 35 <td width="100%"><dl> 36 <dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a> 37 </font></dt><dd> 38 <dl> 39 <dt><font face="helvetica, arial"><a href="telemetry.core.cros_interface.html#CrOSInterface">CrOSInterface</a> 40 </font></dt></dl> 41 </dd> 42 <dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>) 43 </font></dt><dd> 44 <dl> 45 <dt><font face="helvetica, arial"><a href="telemetry.core.cros_interface.html#LoginException">LoginException</a> 46 </font></dt><dd> 47 <dl> 48 <dt><font face="helvetica, arial"><a href="telemetry.core.cros_interface.html#DNSFailureException">DNSFailureException</a> 49 </font></dt><dt><font face="helvetica, arial"><a href="telemetry.core.cros_interface.html#KeylessLoginRequiredException">KeylessLoginRequiredException</a> 50 </font></dt></dl> 51 </dd> 52 </dl> 53 </dd> 54 </dl> 55 <p> 56 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 57 <tr bgcolor="#ffc8d8"> 58 <td colspan=3 valign=bottom> <br> 59 <font color="#000000" face="helvetica, arial"><a name="CrOSInterface">class <strong>CrOSInterface</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr> 60 61 <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> 62 <td width="100%">Methods defined here:<br> 63 <dl><dt><a name="CrOSInterface-Chown"><strong>Chown</strong></a>(self, filename)</dt></dl> 64 65 <dl><dt><a name="CrOSInterface-CloseConnection"><strong>CloseConnection</strong></a>(self)</dt></dl> 66 67 <dl><dt><a name="CrOSInterface-CryptohomePath"><strong>CryptohomePath</strong></a>(self, user)</dt><dd><tt>Returns the cryptohome mount point for |user|.</tt></dd></dl> 68 69 <dl><dt><a name="CrOSInterface-FileExistsOnDevice"><strong>FileExistsOnDevice</strong></a>(self, file_name)</dt></dl> 70 71 <dl><dt><a name="CrOSInterface-FilesystemMountedAt"><strong>FilesystemMountedAt</strong></a>(self, path)</dt><dd><tt>Returns the filesystem mounted at |path|</tt></dd></dl> 72 73 <dl><dt><a name="CrOSInterface-FormSSHCommandLine"><strong>FormSSHCommandLine</strong></a>(self, args, extra_ssh_args<font color="#909090">=None</font>)</dt><dd><tt>Constructs a subprocess-suitable command line for `ssh'.</tt></dd></dl> 74 75 <dl><dt><a name="CrOSInterface-GetChromePid"><strong>GetChromePid</strong></a>(self)</dt><dd><tt>Returns pid of main chrome browser process.</tt></dd></dl> 76 77 <dl><dt><a name="CrOSInterface-GetChromeProcess"><strong>GetChromeProcess</strong></a>(self)</dt><dd><tt>Locates the the main chrome browser process.<br> 78 <br> 79 Chrome on cros is usually in /opt/google/chrome, but could be in<br> 80 /usr/local/ for developer workflows - debug chrome is too large to fit on<br> 81 rootfs.<br> 82 <br> 83 Chrome spawns multiple processes for renderers. pids wrap around after they<br> 84 are exhausted so looking for the smallest pid is not always correct. We<br> 85 locate the session_manager's pid, and look for the chrome process that's an<br> 86 immediate child. This is the main browser process.</tt></dd></dl> 87 88 <dl><dt><a name="CrOSInterface-GetFile"><strong>GetFile</strong></a>(self, filename, destfile<font color="#909090">=None</font>)</dt><dd><tt>Copies a local file |filename| to |destfile| on the device.<br> 89 <br> 90 Args:<br> 91 filename: The name of the local source file.<br> 92 destfile: The name of the file to copy to, and if it is not specified<br> 93 then it is the basename of the source file.</tt></dd></dl> 94 95 <dl><dt><a name="CrOSInterface-GetFileContents"><strong>GetFileContents</strong></a>(self, filename)</dt><dd><tt>Get the contents of a file on the device.<br> 96 <br> 97 Args:<br> 98 filename: The name of the file on the device.<br> 99 <br> 100 Returns:<br> 101 A string containing the contents of the file.</tt></dd></dl> 102 103 <dl><dt><a name="CrOSInterface-GetRemotePort"><strong>GetRemotePort</strong></a>(self)</dt></dl> 104 105 <dl><dt><a name="CrOSInterface-IsCryptohomeMounted"><strong>IsCryptohomeMounted</strong></a>(self, username, is_guest)</dt><dd><tt>Returns True iff |user|'s cryptohome is mounted.</tt></dd></dl> 106 107 <dl><dt><a name="CrOSInterface-IsHTTPServerRunningOnPort"><strong>IsHTTPServerRunningOnPort</strong></a>(self, port)</dt></dl> 108 109 <dl><dt><a name="CrOSInterface-IsServiceRunning"><strong>IsServiceRunning</strong></a>(self, service_name)</dt></dl> 110 111 <dl><dt><a name="CrOSInterface-KillAllMatching"><strong>KillAllMatching</strong></a>(self, predicate)</dt></dl> 112 113 <dl><dt><a name="CrOSInterface-ListProcesses"><strong>ListProcesses</strong></a>(self)</dt><dd><tt>Returns (pid, cmd, ppid, state) of all processes on the device.</tt></dd></dl> 114 115 <dl><dt><a name="CrOSInterface-PushContents"><strong>PushContents</strong></a>(self, text, remote_filename)</dt></dl> 116 117 <dl><dt><a name="CrOSInterface-PushFile"><strong>PushFile</strong></a>(self, filename, remote_filename)</dt></dl> 118 119 <dl><dt><a name="CrOSInterface-RestartUI"><strong>RestartUI</strong></a>(self, clear_enterprise_policy)</dt></dl> 120 121 <dl><dt><a name="CrOSInterface-RmRF"><strong>RmRF</strong></a>(self, filename)</dt></dl> 122 123 <dl><dt><a name="CrOSInterface-RunCmdOnDevice"><strong>RunCmdOnDevice</strong></a>(self, args, cwd<font color="#909090">=None</font>, quiet<font color="#909090">=False</font>)</dt></dl> 124 125 <dl><dt><a name="CrOSInterface-TakeScreenShot"><strong>TakeScreenShot</strong></a>(self, screenshot_prefix)</dt><dd><tt>Takes a screenshot, useful for debugging failures.</tt></dd></dl> 126 127 <dl><dt><a name="CrOSInterface-TryLogin"><strong>TryLogin</strong></a>(self)</dt></dl> 128 129 <dl><dt><a name="CrOSInterface-__enter__"><strong>__enter__</strong></a>(self)</dt></dl> 130 131 <dl><dt><a name="CrOSInterface-__exit__"><strong>__exit__</strong></a>(self, *args)</dt></dl> 132 133 <dl><dt><a name="CrOSInterface-__init__"><strong>__init__</strong></a>(self, hostname<font color="#909090">=None</font>, ssh_port<font color="#909090">=None</font>, ssh_identity<font color="#909090">=None</font>)</dt><dd><tt># pylint: disable=R0923</tt></dd></dl> 134 135 <hr> 136 Data descriptors defined here:<br> 137 <dl><dt><strong>__dict__</strong></dt> 138 <dd><tt>dictionary for instance variables (if defined)</tt></dd> 139 </dl> 140 <dl><dt><strong>__weakref__</strong></dt> 141 <dd><tt>list of weak references to the object (if defined)</tt></dd> 142 </dl> 143 <dl><dt><strong>hostname</strong></dt> 144 </dl> 145 <dl><dt><strong>local</strong></dt> 146 </dl> 147 <dl><dt><strong>ssh_port</strong></dt> 148 </dl> 149 </td></tr></table> <p> 150 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 151 <tr bgcolor="#ffc8d8"> 152 <td colspan=3 valign=bottom> <br> 153 <font color="#000000" face="helvetica, arial"><a name="DNSFailureException">class <strong>DNSFailureException</strong></a>(<a href="telemetry.core.cros_interface.html#LoginException">LoginException</a>)</font></td></tr> 154 155 <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> 156 <td width="100%"><dl><dt>Method resolution order:</dt> 157 <dd><a href="telemetry.core.cros_interface.html#DNSFailureException">DNSFailureException</a></dd> 158 <dd><a href="telemetry.core.cros_interface.html#LoginException">LoginException</a></dd> 159 <dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> 160 <dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> 161 <dd><a href="__builtin__.html#object">__builtin__.object</a></dd> 162 </dl> 163 <hr> 164 Data descriptors inherited from <a href="telemetry.core.cros_interface.html#LoginException">LoginException</a>:<br> 165 <dl><dt><strong>__weakref__</strong></dt> 166 <dd><tt>list of weak references to the object (if defined)</tt></dd> 167 </dl> 168 <hr> 169 Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 170 <dl><dt><a name="DNSFailureException-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> 171 172 <hr> 173 Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 174 <dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#DNSFailureException-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl> 175 176 <hr> 177 Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 178 <dl><dt><a name="DNSFailureException-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> 179 180 <dl><dt><a name="DNSFailureException-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> 181 182 <dl><dt><a name="DNSFailureException-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> 183 184 <dl><dt><a name="DNSFailureException-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> 185 <br> 186 Use of negative indices is not supported.</tt></dd></dl> 187 188 <dl><dt><a name="DNSFailureException-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> 189 190 <dl><dt><a name="DNSFailureException-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> 191 192 <dl><dt><a name="DNSFailureException-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> 193 194 <dl><dt><a name="DNSFailureException-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> 195 196 <dl><dt><a name="DNSFailureException-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#DNSFailureException-__str__">__str__</a>() <==> str(x)</tt></dd></dl> 197 198 <dl><dt><a name="DNSFailureException-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> 199 200 <hr> 201 Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 202 <dl><dt><strong>__dict__</strong></dt> 203 </dl> 204 <dl><dt><strong>args</strong></dt> 205 </dl> 206 <dl><dt><strong>message</strong></dt> 207 </dl> 208 </td></tr></table> <p> 209 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 210 <tr bgcolor="#ffc8d8"> 211 <td colspan=3 valign=bottom> <br> 212 <font color="#000000" face="helvetica, arial"><a name="KeylessLoginRequiredException">class <strong>KeylessLoginRequiredException</strong></a>(<a href="telemetry.core.cros_interface.html#LoginException">LoginException</a>)</font></td></tr> 213 214 <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> 215 <td width="100%"><dl><dt>Method resolution order:</dt> 216 <dd><a href="telemetry.core.cros_interface.html#KeylessLoginRequiredException">KeylessLoginRequiredException</a></dd> 217 <dd><a href="telemetry.core.cros_interface.html#LoginException">LoginException</a></dd> 218 <dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> 219 <dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> 220 <dd><a href="__builtin__.html#object">__builtin__.object</a></dd> 221 </dl> 222 <hr> 223 Data descriptors inherited from <a href="telemetry.core.cros_interface.html#LoginException">LoginException</a>:<br> 224 <dl><dt><strong>__weakref__</strong></dt> 225 <dd><tt>list of weak references to the object (if defined)</tt></dd> 226 </dl> 227 <hr> 228 Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 229 <dl><dt><a name="KeylessLoginRequiredException-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> 230 231 <hr> 232 Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 233 <dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#KeylessLoginRequiredException-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl> 234 235 <hr> 236 Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 237 <dl><dt><a name="KeylessLoginRequiredException-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> 238 239 <dl><dt><a name="KeylessLoginRequiredException-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> 240 241 <dl><dt><a name="KeylessLoginRequiredException-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> 242 243 <dl><dt><a name="KeylessLoginRequiredException-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> 244 <br> 245 Use of negative indices is not supported.</tt></dd></dl> 246 247 <dl><dt><a name="KeylessLoginRequiredException-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> 248 249 <dl><dt><a name="KeylessLoginRequiredException-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> 250 251 <dl><dt><a name="KeylessLoginRequiredException-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> 252 253 <dl><dt><a name="KeylessLoginRequiredException-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> 254 255 <dl><dt><a name="KeylessLoginRequiredException-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#KeylessLoginRequiredException-__str__">__str__</a>() <==> str(x)</tt></dd></dl> 256 257 <dl><dt><a name="KeylessLoginRequiredException-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> 258 259 <hr> 260 Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 261 <dl><dt><strong>__dict__</strong></dt> 262 </dl> 263 <dl><dt><strong>args</strong></dt> 264 </dl> 265 <dl><dt><strong>message</strong></dt> 266 </dl> 267 </td></tr></table> <p> 268 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 269 <tr bgcolor="#ffc8d8"> 270 <td colspan=3 valign=bottom> <br> 271 <font color="#000000" face="helvetica, arial"><a name="LoginException">class <strong>LoginException</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr> 272 273 <tr><td bgcolor="#ffc8d8"><tt> </tt></td><td> </td> 274 <td width="100%"><dl><dt>Method resolution order:</dt> 275 <dd><a href="telemetry.core.cros_interface.html#LoginException">LoginException</a></dd> 276 <dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> 277 <dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> 278 <dd><a href="__builtin__.html#object">__builtin__.object</a></dd> 279 </dl> 280 <hr> 281 Data descriptors defined here:<br> 282 <dl><dt><strong>__weakref__</strong></dt> 283 <dd><tt>list of weak references to the object (if defined)</tt></dd> 284 </dl> 285 <hr> 286 Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 287 <dl><dt><a name="LoginException-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> 288 289 <hr> 290 Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 291 <dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#LoginException-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl> 292 293 <hr> 294 Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 295 <dl><dt><a name="LoginException-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> 296 297 <dl><dt><a name="LoginException-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> 298 299 <dl><dt><a name="LoginException-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> 300 301 <dl><dt><a name="LoginException-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> 302 <br> 303 Use of negative indices is not supported.</tt></dd></dl> 304 305 <dl><dt><a name="LoginException-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> 306 307 <dl><dt><a name="LoginException-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> 308 309 <dl><dt><a name="LoginException-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> 310 311 <dl><dt><a name="LoginException-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> 312 313 <dl><dt><a name="LoginException-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#LoginException-__str__">__str__</a>() <==> str(x)</tt></dd></dl> 314 315 <dl><dt><a name="LoginException-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> 316 317 <hr> 318 Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 319 <dl><dt><strong>__dict__</strong></dt> 320 </dl> 321 <dl><dt><strong>args</strong></dt> 322 </dl> 323 <dl><dt><strong>message</strong></dt> 324 </dl> 325 </td></tr></table></td></tr></table><p> 326 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 327 <tr bgcolor="#eeaa77"> 328 <td colspan=3 valign=bottom> <br> 329 <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr> 330 331 <tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td> 332 <td width="100%"><dl><dt><a name="-GetAllCmdOutput"><strong>GetAllCmdOutput</strong></a>(args, cwd<font color="#909090">=None</font>, quiet<font color="#909090">=False</font>)</dt><dd><tt>Open a subprocess to execute a program and returns its output.<br> 333 <br> 334 Args:<br> 335 args: A string or a sequence of program arguments. The program to execute is<br> 336 the string or the first item in the args sequence.<br> 337 cwd: If not None, the subprocess's current directory will be changed to<br> 338 |cwd| before it's executed.<br> 339 <br> 340 Returns:<br> 341 Captures and returns the command's stdout.<br> 342 Prints the command's stderr to logger (which defaults to stdout).</tt></dd></dl> 343 <dl><dt><a name="-HasSSH"><strong>HasSSH</strong></a>()</dt></dl> 344 <dl><dt><a name="-RunCmd"><strong>RunCmd</strong></a>(args, cwd<font color="#909090">=None</font>, quiet<font color="#909090">=False</font>)</dt><dd><tt>Opens a subprocess to execute a program and returns its return value.<br> 345 <br> 346 Args:<br> 347 args: A string or a sequence of program arguments. The program to execute is<br> 348 the string or the first item in the args sequence.<br> 349 cwd: If not None, the subprocess's current directory will be changed to<br> 350 |cwd| before it's executed.<br> 351 <br> 352 Returns:<br> 353 Return code from the command execution.</tt></dd></dl> 354 </td></tr></table> 355 </body></html>