X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plcsh;fp=plcsh;h=936b94315264670c7a0f57026be855eda039b4df;hb=3dc1e71c2bf090f6536ff8da0f69ed9abaacc364;hp=605877c94bbefd1c57e067ad3c830cd5500279ba;hpb=9a3af0c09c5981d3c32fb798fd02b82190b81bc6;p=plcapi.git diff --git a/plcsh b/plcsh index 605877c..936b943 100755 --- a/plcsh +++ b/plcsh @@ -5,11 +5,12 @@ # Mark Huang # Copyright (C) 2005 The Trustees of Princeton University # -# $Id: plcsh,v 1.3 2007/01/11 20:45:29 mlhuang Exp $ +# $Id: plcsh,v 1.4 2007/01/17 22:14:38 mlhuang Exp $ # import os import sys +from socket import gethostname from optparse import OptionParser from getpass import getpass from traceback import print_exc @@ -22,6 +23,7 @@ parser.add_option("-f", "--config", help = "PLC configuration file") parser.add_option("-h", "--url", help = "API URL") parser.add_option("-c", "--cacert", help = "API SSL certificate") parser.add_option("-m", "--method", help = "API authentication method") +parser.add_option("-s", "--session", help = "API session key") parser.add_option("-u", "--user", help = "API user name") parser.add_option("-p", "--password", help = "API password") parser.add_option("-r", "--role", help = "API role") @@ -44,7 +46,8 @@ try: config = options.config, url = options.url, xmlrpc = options.xmlrpc, cacert = options.cacert, method = options.method, role = options.role, - user = options.user, password = options.password) + user = options.user, password = options.password, + session = options.session) # Register a few more globals for backward compatibility auth = shell.auth api = shell.api @@ -69,6 +72,11 @@ else: elif shell.auth['AuthMethod'] == "anonymous": prompt = "[anonymous]" print "Connected anonymously" + elif shell.auth['AuthMethod'] == "session": + # XXX No way to tell node and user sessions apart from the + # client point of view. + prompt = "[%s]" % gethostname() + print "%s connected using session authentication" % gethostname() else: prompt = "[%s]" % shell.auth['Username'] print "%s connected using %s authentication" % \