consolecommand

consolecommand — Run an administrative command.

Mode Description

The LiveJournal server has a text-based shell-like admininistration console where less-often used commands can be entered. There's a web interface to this shell online, and this is another gateway to that.

Arguments

  1. [struct](required)

    Containing keys:

    • username(required):

      • [scalar](required) Username of user logging in.

    • auth_method(optional):

      • [scalar](required) Authentication method used for this request. The default value is "clear", for plain-text authentication. "cookie" and any of the challenge-response methods are also acceptable.

    • password(optional):

      • [scalar](required) Deprecated. Password of user logging in in plaintext. If using the "clear" authentication method, either this or "hpassword" must be present.

    • hpassword(optional):

      • [scalar](required) Deprecated. MD5 digest of user's password. Not much more secure than password, but at least it's not in plain text.

    • auth_challenge(optional):

      • [scalar](required) If using challenge-response authentication, this should be the challenge that was issued to you by the server.

    • auth_response(optional):

      • [scalar](required) If using challenge-response authentication, this should be the response hash that you generate, based on the formula required for your challenge.

    • ver(optional):

      • [scalar](required) Protocol version supported by the client; assumed to be 0 if not specified. See Chapter 27, Protocol Versions for details on the protocol version.

    • commands(required):

      • [array](required) Containing items:

        • [scalar](optional; multiple allowed) The commands to send, with double quotes around any arguments with spaces, and double quotes escaped by backslashes, and backslashes escaped with backslashes. Optionally, you can send a listref instead of a string for this argument, in which case, we'll use your argument separation and not parse it ourselves.

Example 5. Sample call to LJ.XMLRPC.consolecommand

POST /interface/xmlrpc HTTP/1.0
User-Agent: XMLRPC Client 1.0
Host: www.livejournal.com
Content-Type: text/xml
Content-Length: 542

<?xml version="1.0"?>
<methodCall>
<methodName>LJ.XMLRPC.consolecommand</methodName>
<params>
<param>

<value><struct>
<member><name>username</name>
<value><string>test</string></value>
</member>
<member><name>password</name>

<value><string>test</string></value>
</member>
<member><name>ver</name>
<value><int>1</int></value>

</member>
<member><name>commands</name>
<value><array>
<data>
<value><string>help print</string></value>

</data>
</array></value>
</member>
</struct></value>
</param>
</params>
</methodCall>


Return Values

  1. [struct](required)

    Containing keys:

    • results(required):

      • [array](required) One stuct returned for each command run, that struct containing both the overall return value, and the line-by-line output of the command, with each line of output being tagged by type (think stdout vs. stderr, but with stdinfo also). The web interface shows 'error' with red, '' (stdout) with black, and 'info' with green. Clients are encouraged to also, if possible. Containing items:

        • [struct](optional; multiple allowed)

          Containing keys:

          • success(required):

            • [scalar](required) Return status of nth command. 0 or 1.

          • output(required):

            • [array](required) Containing items:

              • [scalar](required) Type of output line. Either "" (normal output), "error", or "info", something to be emphasized over normal output.

              • [scalar](required) The text of that line.

Example 6. Sample return value for LJ.XMLRPC.consolecommand

HTTP/1.1 200 OK
Connection: close
Content-length: 1189
Content-Type: text/xml
Date: Tue, 16 Jul 2002 22:59:33 GMT
Server: Apache/1.3.4 (Unix)

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member><name>results</name>

<value><array>
<data>
<value><struct>
<member><name>success</name>
<value><int>1</int></value>

</member>
<member><name>output</name>
<value><array>
<data>
<value><array>
<data>

<value><string></string></value>
<value><string>print ...</string></value>
</data>
</array></value>
<value><array>

<data>
<value><string></string></value>
<value><string>  This is a debugging function.  Given an arbitrary number of</string></value>
</data>
</array></value>

<value><array>
<data>
<value><string></string></value>
<value><string>  meaningless arguments, it'll print each one back to you.  If an</string></value>

</data>
</array></value>
<value><array>
<data>
<value><string></string></value>
<value><string>  argument begins with a bang (!) then it'll be printed to the error</string></value>

</data>
</array></value>
<value><array>
<data>
<value><string></string></value>
<value><string>  stream instead.</string></value>

</data>
</array></value>
</data>
</array></value>
</member>
</struct></value>
</data>

</array></value>
</member>
</struct></value>
</param>
</params>
</methodResponse>