#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.14.1)
#
# 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 iotdb.thrift.datanode import IDataNodeRPCService
from iotdb.thrift.datanode.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('  TSendFragmentInstanceResp sendFragmentInstance(TSendFragmentInstanceReq req)')
    print('  TSendBatchPlanNodeResp sendBatchPlanNode(TSendBatchPlanNodeReq req)')
    print('  TFragmentInstanceInfoResp fetchFragmentInstanceInfo(TFetchFragmentInstanceInfoReq req)')
    print('  TCancelResp cancelQuery(TCancelQueryReq req)')
    print('  TCancelResp cancelPlanFragment(TCancelPlanFragmentReq req)')
    print('  TCancelResp cancelFragmentInstance(TCancelFragmentInstanceReq req)')
    print('  TSchemaFetchResponse fetchSchema(TSchemaFetchRequest req)')
    print('  TLoadResp sendTsFilePieceNode(TTsFilePieceReq req)')
    print('  TLoadResp sendLoadCommand(TLoadCommandReq req)')
    print('  TSStatus createSchemaRegion(TCreateSchemaRegionReq req)')
    print('  TSStatus createDataRegion(TCreateDataRegionReq req)')
    print('  TSStatus invalidatePartitionCache(TInvalidateCacheReq req)')
    print('  TSStatus invalidateSchemaCache(TInvalidateCacheReq req)')
    print('  TSStatus deleteRegion(TConsensusGroupId consensusGroupId)')
    print('  TSStatus changeRegionLeader(TRegionLeaderChangeReq req)')
    print('  TSStatus createNewRegionPeer(TCreatePeerReq req)')
    print('  TSStatus addRegionPeer(TMaintainPeerReq req)')
    print('  TSStatus removeRegionPeer(TMaintainPeerReq req)')
    print('  TSStatus deleteOldRegionPeer(TMaintainPeerReq req)')
    print('  TSStatus disableDataNode(TDisableDataNodeReq req)')
    print('  TSStatus stopDataNode()')
    print('  TDataNodeHeartbeatResp getDataNodeHeartBeat(TDataNodeHeartbeatReq req)')
    print('  TSStatus updateRegionCache(TRegionRouteReq req)')
    print('  TSStatus createFunction(TCreateFunctionInstanceReq req)')
    print('  TSStatus dropFunction(TDropFunctionInstanceReq req)')
    print('  TSStatus createTriggerInstance(TCreateTriggerInstanceReq req)')
    print('  TSStatus activeTriggerInstance(TActiveTriggerInstanceReq req)')
    print('  TSStatus inactiveTriggerInstance(TInactiveTriggerInstanceReq req)')
    print('  TSStatus dropTriggerInstance(TDropTriggerInstanceReq req)')
    print('  TSStatus updateTriggerLocation(TUpdateTriggerLocationReq req)')
    print('  TFireTriggerResp fireTrigger(TFireTriggerReq req)')
    print('  TSStatus invalidatePermissionCache(TInvalidatePermissionCacheReq req)')
    print('  TSStatus createPipePlugin(TCreatePipePluginInstanceReq req)')
    print('  TSStatus dropPipePlugin(TDropPipePluginInstanceReq req)')
    print('  TSStatus merge()')
    print('  TSStatus flush(TFlushReq req)')
    print('  TSStatus settle(TSettleReq req)')
    print('  TSStatus clearCache()')
    print('  TSStatus loadConfiguration()')
    print('  TSStatus setSystemStatus(string status)')
    print('  TSStatus killQueryInstance(string queryId)')
    print('  TSStatus setTTL(TSetTTLReq req)')
    print('  TSStatus updateConfigNodeGroup(TUpdateConfigNodeGroupReq req)')
    print('  TSStatus updateTemplate(TUpdateTemplateReq req)')
    print('  TSStatus constructSchemaBlackList(TConstructSchemaBlackListReq req)')
    print('  TSStatus rollbackSchemaBlackList(TRollbackSchemaBlackListReq req)')
    print('  TSStatus invalidateMatchedSchemaCache(TInvalidateMatchedSchemaCacheReq req)')
    print('  TFetchSchemaBlackListResp fetchSchemaBlackList(TFetchSchemaBlackListReq req)')
    print('  TSStatus deleteDataForDeleteSchema(TDeleteDataForDeleteSchemaReq req)')
    print('  TSStatus deleteTimeSeries(TDeleteTimeSeriesReq req)')
    print('  TSStatus constructSchemaBlackListWithTemplate(TConstructSchemaBlackListWithTemplateReq req)')
    print('  TSStatus rollbackSchemaBlackListWithTemplate(TRollbackSchemaBlackListWithTemplateReq req)')
    print('  TSStatus deactivateTemplate(TDeactivateTemplateReq req)')
    print('  TCountPathsUsingTemplateResp countPathsUsingTemplate(TCountPathsUsingTemplateReq req)')
    print('  TCheckTimeSeriesExistenceResp checkTimeSeriesExistence(TCheckTimeSeriesExistenceReq req)')
    print('  TSStatus constructViewSchemaBlackList(TConstructViewSchemaBlackListReq req)')
    print('  TSStatus rollbackViewSchemaBlackList(TRollbackViewSchemaBlackListReq req)')
    print('  TSStatus deleteViewSchema(TDeleteViewSchemaReq req)')
    print('  TSStatus alterView(TAlterViewReq req)')
    print('  TPushPipeMetaResp pushPipeMeta(TPushPipeMetaReq req)')
    print('  TPushPipeMetaResp pushSinglePipeMeta(TPushSinglePipeMetaReq req)')
    print('  TPipeHeartbeatResp pipeHeartbeat(TPipeHeartbeatReq req)')
    print('  TSStatus executeCQ(TExecuteCQ req)')
    print('  TSStatus setSpaceQuota(TSetSpaceQuotaReq req)')
    print('  TSStatus setThrottleQuota(TSetThrottleQuotaReq req)')
    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 = IDataNodeRPCService.Client(protocol)
transport.open()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

transport.close()
