From 64eec6741cea5e4b4dd9fe859a36b46b8e353889 Mon Sep 17 00:00:00 2001 From: Ulas Kozat Date: Mon, 13 Jun 2016 11:04:35 -0700 Subject: Added cliport support for domino-cli.py to be able to run multiple domino clients in non-interactive mode Change-Id: I38dd5061d60739ba2e37c50e8887abe69fa0b137 Signed-off-by: Ulas Kozat --- DominoClient.py | 8 ++++++-- DominoServer.py | 2 +- domino-cli.py | 20 ++++++++++---------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/DominoClient.py b/DominoClient.py index a31e074..19aaa65 100755 --- a/DominoClient.py +++ b/DominoClient.py @@ -142,6 +142,10 @@ class DominoClientCLIService(threading.Thread): self.interactive = interactive def process_input(self, args): + if len(args) == 0: + print 'Empty API body' + return + try: if args[0] == 'heartbeat': self.dominoclient.heartbeat() @@ -408,11 +412,11 @@ def main(argv): try: opts, args = getopt.getopt(argv,"hc:p:i:l:",["conf=","port=","ipaddr=","log=","iac=","cliport="]) except getopt.GetoptError: - print 'DominoClient.py -c/--conf -p/--port -i/--ipaddr -l/--log --iac=true/false' + print 'DominoClient.py -c/--conf -p/--port -i/--ipaddr -l/--log --iac=true/false --cliport ' sys.exit(2) for opt, arg in opts: if opt == '-h': - print 'DominoClient.py -c/--conf -p/--port -i/--ipaddr -l/--log --iac=true/false' + print 'DominoClient.py -c/--conf -p/--port -i/--ipaddr -l/--log --iac=true/false --cliport ' sys.exit() elif opt in ("-c", "--conf"): configfile = arg diff --git a/DominoServer.py b/DominoServer.py index fc9f0ad..c7d58ef 100755 --- a/DominoServer.py +++ b/DominoServer.py @@ -380,7 +380,7 @@ def main(argv): sys.exit(2) for opt, arg in opts: if opt == '-h': - print 'DominoClient.py -c/--conf -p/--port -i/--ipaddr -l/--log ' + print 'DominoServer.py -c/--conf -l/--log ' sys.exit() elif opt in ("-c", "--conf"): configfile = arg diff --git a/domino-cli.py b/domino-cli.py index 3edf22c..5e55d38 100755 --- a/domino-cli.py +++ b/domino-cli.py @@ -12,6 +12,7 @@ # limitations under the License. import sys, glob, getopt +import getopt sys.path.insert(0, glob.glob('./lib')[0]) @@ -27,18 +28,13 @@ from thrift.protocol import TBinaryProtocol #Load configuration parameters from domino_conf import * -def main(argv): -# try: -# if argv[0] == 'heartbeat': -# print 'Heartbeat input' -# except IndexError as ex: -# print 'Insufficient number of arguments entered' -# except: -# print('Error: %s', sys.exc_info()[0]) +def main(argv, cli_port): + #cli_port = DOMINO_CLI_PORT try: # Make socket - transport = TSocket.TSocket('localhost', DOMINO_CLI_PORT) + # NOTE that domino-cli.py and DominoClient.py are assumed to be run in the same machine + transport = TSocket.TSocket('localhost', cli_port) # Buffering is critical. Raw sockets are very slow transport = TTransport.TBufferedTransport(transport) # Wrap in a protocol @@ -58,4 +54,8 @@ def main(argv): print '%s' % (tx.message) if __name__ == "__main__": - main(sys.argv[1:]) + if len(sys.argv) >= 2: + main(sys.argv[2:], sys.argv[1]) + else: + print 'domino-cli.py ...' + sys.exit(2) -- cgit 1.2.3-korg