#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.10.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py
#

import sys
import pprint
if sys.version_info[0] > 2:
    from urllib.parse import urlparse
else:
    from urlparse import urlparse
from thrift.transport import TTransport, TSocket, TSSLSocket, THttpClient
from thrift.protocol.TBinaryProtocol import TBinaryProtocol

from procServer import ProcService
from procServer.ttypes import *

if len(sys.argv) <= 1 or sys.argv[1] == '--help':
    print('')
    print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] [-s[sl]] [-novalidate] [-ca_certs certs] [-keyfile keyfile] [-certfile certfile] function [arg1 [arg2...]]')
    print('')
    print('Functions:')
    print('  AppList login(CCUser user)')
    print('  Proc_SyncRsp logout(CCUser user, string appId, string envId)')
    print('  AppList getUserApps(CCUser user)')
    print('  Proc_SyncRsp selectApp(CCUser user, string appId, string evnId, bool forceSelect)')
    print('  Proc_SyncRsp cancelTask(CCUser user, string appId, string evnId)')
    print('  Proc_SyncRsp createSession(CCUser user, string appId, string evnId)')
    print('  Proc_AsyncRsp start(Proc_Command cmd)')
    print('  Proc_AsyncRsp stop(Proc_Command cmd)')
    print('  Proc_AsyncRsp restart(Proc_Command cmd)')
    print('  Proc_AsyncRsp kill(Proc_Command cmd)')
    print('  Proc_AsyncRsp reload(Proc_Command cmd)')
    print('  Proc_AsyncRsp autoproc(Proc_Command cmd)')
    print('  Proc_AsyncRsp noauto(Proc_Command cmd)')
    print('  Proc_AsyncRsp runshell(Proc_Command cmd)')
    print('  Proc_AsyncRsp createcfg(Proc_Command cmd)')
    print('  Proc_AsyncRsp pushcfg(Proc_Command cmd)')
    print('  Proc_AsyncRsp check(Proc_Command cmd)')
    print('  Proc_AsyncRsp listproc(Proc_Command cmd)')
    print('  Proc_AsyncRsp checkagent(Proc_Command cmd)')
    print('  Proc_AsyncRsp diffcfg(Proc_Command cmd)')
    print('  Proc_AsyncRsp getremotecfg(Proc_Command cmd)')
    print('  Proc_SyncRsp checkconf(Proc_Command cmd)')
    print('  Proc_AsyncRsp runcmd(Proc_Command cmd)')
    print('  TaskResponse getCommandResult(string appId, string envId)')
    print('  Proc_SyncRsp getCommandDetail(string uniqueId)')
    print('  Proc_SyncRsp getCfgFileContent(string appId, string envId, string procId)')
    print('  TaskResponse getTaskResultById(string taskId)')
    print('  Proc_SyncRsp history(string appId, string envId, i32 lines)')
    print('  proc_sync_rsp create_session_v2(user_info user, string bk_biz_id, string bk_set_type)')
    print('  proc_async_rsp start_v2(proc_command cmd)')
    print('  proc_async_rsp stop_v2(proc_command cmd)')
    print('  proc_async_rsp restart_v2(proc_command cmd)')
    print('  proc_async_rsp kill_v2(proc_command cmd)')
    print('  proc_async_rsp reload_v2(proc_command cmd)')
    print('  proc_async_rsp auto_v2(proc_command cmd)')
    print('  proc_async_rsp noauto_v2(proc_command cmd)')
    print('  proc_async_rsp create_config_v2(proc_command cmd)')
    print('  proc_async_rsp push_config_v2(proc_command cmd)')
    print('  proc_async_rsp check_v2(proc_command cmd)')
    print('  task_response get_result_by_id_v2(string task_id)')
    print('')
    sys.exit(0)

pp = pprint.PrettyPrinter(indent=2)
host = 'localhost'
port = 9090
uri = ''
framed = False
ssl = False
validate = True
ca_certs = None
keyfile = None
certfile = None
http = False
argi = 1

if sys.argv[argi] == '-h':
    parts = sys.argv[argi + 1].split(':')
    host = parts[0]
    if len(parts) > 1:
        port = int(parts[1])
    argi += 2

if sys.argv[argi] == '-u':
    url = urlparse(sys.argv[argi + 1])
    parts = url[1].split(':')
    host = parts[0]
    if len(parts) > 1:
        port = int(parts[1])
    else:
        port = 80
    uri = url[2]
    if url[4]:
        uri += '?%s' % url[4]
    http = True
    argi += 2

if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
    framed = True
    argi += 1

if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl':
    ssl = True
    argi += 1

if sys.argv[argi] == '-novalidate':
    validate = False
    argi += 1

if sys.argv[argi] == '-ca_certs':
    ca_certs = sys.argv[argi+1]
    argi += 2

if sys.argv[argi] == '-keyfile':
    keyfile = sys.argv[argi+1]
    argi += 2

if sys.argv[argi] == '-certfile':
    certfile = sys.argv[argi+1]
    argi += 2

cmd = sys.argv[argi]
args = sys.argv[argi + 1:]

if http:
    transport = THttpClient.THttpClient(host, port, uri)
else:
    if ssl:
        socket = TSSLSocket.TSSLSocket(host, port, validate=validate, ca_certs=ca_certs, keyfile=keyfile, certfile=certfile)
    else:
        socket = TSocket.TSocket(host, port)
    if framed:
        transport = TTransport.TFramedTransport(socket)
    else:
        transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol(transport)
client = ProcService.Client(protocol)
transport.open()

if cmd == 'login':
    if len(args) != 1:
        print('login requires 1 args')
        sys.exit(1)
    pp.pprint(client.login(eval(args[0]),))

elif cmd == 'logout':
    if len(args) != 3:
        print('logout requires 3 args')
        sys.exit(1)
    pp.pprint(client.logout(eval(args[0]), args[1], args[2],))

elif cmd == 'getUserApps':
    if len(args) != 1:
        print('getUserApps requires 1 args')
        sys.exit(1)
    pp.pprint(client.getUserApps(eval(args[0]),))

elif cmd == 'selectApp':
    if len(args) != 4:
        print('selectApp requires 4 args')
        sys.exit(1)
    pp.pprint(client.selectApp(eval(args[0]), args[1], args[2], eval(args[3]),))

elif cmd == 'cancelTask':
    if len(args) != 3:
        print('cancelTask requires 3 args')
        sys.exit(1)
    pp.pprint(client.cancelTask(eval(args[0]), args[1], args[2],))

elif cmd == 'createSession':
    if len(args) != 3:
        print('createSession requires 3 args')
        sys.exit(1)
    pp.pprint(client.createSession(eval(args[0]), args[1], args[2],))

elif cmd == 'start':
    if len(args) != 1:
        print('start requires 1 args')
        sys.exit(1)
    pp.pprint(client.start(eval(args[0]),))

elif cmd == 'stop':
    if len(args) != 1:
        print('stop requires 1 args')
        sys.exit(1)
    pp.pprint(client.stop(eval(args[0]),))

elif cmd == 'restart':
    if len(args) != 1:
        print('restart requires 1 args')
        sys.exit(1)
    pp.pprint(client.restart(eval(args[0]),))

elif cmd == 'kill':
    if len(args) != 1:
        print('kill requires 1 args')
        sys.exit(1)
    pp.pprint(client.kill(eval(args[0]),))

elif cmd == 'reload':
    if len(args) != 1:
        print('reload requires 1 args')
        sys.exit(1)
    pp.pprint(client.reload(eval(args[0]),))

elif cmd == 'autoproc':
    if len(args) != 1:
        print('autoproc requires 1 args')
        sys.exit(1)
    pp.pprint(client.autoproc(eval(args[0]),))

elif cmd == 'noauto':
    if len(args) != 1:
        print('noauto requires 1 args')
        sys.exit(1)
    pp.pprint(client.noauto(eval(args[0]),))

elif cmd == 'runshell':
    if len(args) != 1:
        print('runshell requires 1 args')
        sys.exit(1)
    pp.pprint(client.runshell(eval(args[0]),))

elif cmd == 'createcfg':
    if len(args) != 1:
        print('createcfg requires 1 args')
        sys.exit(1)
    pp.pprint(client.createcfg(eval(args[0]),))

elif cmd == 'pushcfg':
    if len(args) != 1:
        print('pushcfg requires 1 args')
        sys.exit(1)
    pp.pprint(client.pushcfg(eval(args[0]),))

elif cmd == 'check':
    if len(args) != 1:
        print('check requires 1 args')
        sys.exit(1)
    pp.pprint(client.check(eval(args[0]),))

elif cmd == 'listproc':
    if len(args) != 1:
        print('listproc requires 1 args')
        sys.exit(1)
    pp.pprint(client.listproc(eval(args[0]),))

elif cmd == 'checkagent':
    if len(args) != 1:
        print('checkagent requires 1 args')
        sys.exit(1)
    pp.pprint(client.checkagent(eval(args[0]),))

elif cmd == 'diffcfg':
    if len(args) != 1:
        print('diffcfg requires 1 args')
        sys.exit(1)
    pp.pprint(client.diffcfg(eval(args[0]),))

elif cmd == 'getremotecfg':
    if len(args) != 1:
        print('getremotecfg requires 1 args')
        sys.exit(1)
    pp.pprint(client.getremotecfg(eval(args[0]),))

elif cmd == 'checkconf':
    if len(args) != 1:
        print('checkconf requires 1 args')
        sys.exit(1)
    pp.pprint(client.checkconf(eval(args[0]),))

elif cmd == 'runcmd':
    if len(args) != 1:
        print('runcmd requires 1 args')
        sys.exit(1)
    pp.pprint(client.runcmd(eval(args[0]),))

elif cmd == 'getCommandResult':
    if len(args) != 2:
        print('getCommandResult requires 2 args')
        sys.exit(1)
    pp.pprint(client.getCommandResult(args[0], args[1],))

elif cmd == 'getCommandDetail':
    if len(args) != 1:
        print('getCommandDetail requires 1 args')
        sys.exit(1)
    pp.pprint(client.getCommandDetail(args[0],))

elif cmd == 'getCfgFileContent':
    if len(args) != 3:
        print('getCfgFileContent requires 3 args')
        sys.exit(1)
    pp.pprint(client.getCfgFileContent(args[0], args[1], args[2],))

elif cmd == 'getTaskResultById':
    if len(args) != 1:
        print('getTaskResultById requires 1 args')
        sys.exit(1)
    pp.pprint(client.getTaskResultById(args[0],))

elif cmd == 'history':
    if len(args) != 3:
        print('history requires 3 args')
        sys.exit(1)
    pp.pprint(client.history(args[0], args[1], eval(args[2]),))

elif cmd == 'create_session_v2':
    if len(args) != 3:
        print('create_session_v2 requires 3 args')
        sys.exit(1)
    pp.pprint(client.create_session_v2(eval(args[0]), args[1], args[2],))

elif cmd == 'start_v2':
    if len(args) != 1:
        print('start_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.start_v2(eval(args[0]),))

elif cmd == 'stop_v2':
    if len(args) != 1:
        print('stop_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.stop_v2(eval(args[0]),))

elif cmd == 'restart_v2':
    if len(args) != 1:
        print('restart_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.restart_v2(eval(args[0]),))

elif cmd == 'kill_v2':
    if len(args) != 1:
        print('kill_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.kill_v2(eval(args[0]),))

elif cmd == 'reload_v2':
    if len(args) != 1:
        print('reload_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.reload_v2(eval(args[0]),))

elif cmd == 'auto_v2':
    if len(args) != 1:
        print('auto_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.auto_v2(eval(args[0]),))

elif cmd == 'noauto_v2':
    if len(args) != 1:
        print('noauto_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.noauto_v2(eval(args[0]),))

elif cmd == 'create_config_v2':
    if len(args) != 1:
        print('create_config_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.create_config_v2(eval(args[0]),))

elif cmd == 'push_config_v2':
    if len(args) != 1:
        print('push_config_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.push_config_v2(eval(args[0]),))

elif cmd == 'check_v2':
    if len(args) != 1:
        print('check_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.check_v2(eval(args[0]),))

elif cmd == 'get_result_by_id_v2':
    if len(args) != 1:
        print('get_result_by_id_v2 requires 1 args')
        sys.exit(1)
    pp.pprint(client.get_result_by_id_v2(args[0],))

else:
    print('Unrecognized method %s' % cmd)
    sys.exit(1)

transport.close()
