• Timothy Stack's avatar
    · c61858c7
    Timothy Stack authored
    Make the hurting stop.  Make sshxmlrpc auto-detect things, fails over
    properly, and dump useful information when it is unable to deal with
    the peer.
      * xmlrpc/sshxmlrpc.py: Major update.  It now tries to autoconfigure
        itself by scanning the path for "ssh" and "plink.exe" (although I
        haven't actually tried it on windows).  Environment variables can
        now be used to turn on debugging and set the command to use for
        doing the ssh.  Before running ssh, it will check for an agent or
        a passphrase-less key and prints a warning if it finds neither.
        The last five lines read from the server, as well as the standard
        error output, are stored so they can be dumped later; helpful for
        figuring out what is actually being run on the other side.  The
        protocol layer between ssh and xml-rpc will now respond to a
        "probe" header so that clients can figure out who they are talking
        too.  The server side will now properly detect a closed connection
        and not write anything, which means no more annoying "Write to
        stdout failed" messages.  You can now pass additional options to
        ssh and set the identity.  The module can be run standalone, with
        the default action being to probe the peer:
          $ ./sshxmlrpc.py ssh://boss/xmlrpc
          Probe results for: ssh://boss/xmlrpc
            response time=1.49 s
          Response Headers
            date: Wed Oct 27 16:10:58 2004
    	content-length: 0
    	probe: /usr/testbed/devel/stack/lib/sshxmlrpc.py
    	probe-response: EmulabServer
      * xmlrpc/sshxmlrpc_server.py.in: Set the value returned by a "probe"
        to the name of the invoked module.  This way, the other side can
        figure out who they are talking to (e.g. EmulabServer
        vs. experiment vs. fs vs. osid).
      * event/sched/event-sched.c, event/sched/rpc.cc, event/sched/rpc.h,
        xmlrpc/script_wrapper.py.in: Multiple paths (e.g. xmlrpc,
        $prefix/sbin/sshxmlrpc_server.py) are now probed before giving up.
        Force the use of the user's default identity and protocol one.
        For event-sched, a single connection is now made at startup and
        dropped before going into the event loop.
      * event/sched/GNUmakefile.in: Add a dependency for the install
        target and add -I$(OBJDIR) to the CXXFLAGS.
      * install/ports/ulsshxmlrpcpp/Makefile,
        install/ports/ulsshxmlrpcpp/pkg-descr: Bump version number to 1.1
        and tweak the description.
      * config.h.in, configure, configure.in: Add a "#define TBROOT" that
        has the install prefix.
sshxmlrpc.py 32.6 KB