#!/usr/bin/env python
#
# Autogenerated by Thrift Compiler (0.18.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 hive_metastore import ThriftHiveMetastore
from hive_metastore.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('  string getMetaConf(string key)')
    print('  void setMetaConf(string key, string value)')
    print('  void create_catalog(CreateCatalogRequest catalog)')
    print('  void alter_catalog(AlterCatalogRequest rqst)')
    print('  GetCatalogResponse get_catalog(GetCatalogRequest catName)')
    print('  GetCatalogsResponse get_catalogs()')
    print('  void drop_catalog(DropCatalogRequest catName)')
    print('  void create_database(Database database)')
    print('  Database get_database(string name)')
    print('  void drop_database(string name, bool deleteData, bool cascade)')
    print('   get_databases(string pattern)')
    print('   get_all_databases()')
    print('  void alter_database(string dbname, Database db)')
    print('  Type get_type(string name)')
    print('  bool create_type(Type type)')
    print('  bool drop_type(string type)')
    print('   get_type_all(string name)')
    print('   get_fields(string db_name, string table_name)')
    print('   get_fields_with_environment_context(string db_name, string table_name, EnvironmentContext environment_context)')
    print('   get_schema(string db_name, string table_name)')
    print('   get_schema_with_environment_context(string db_name, string table_name, EnvironmentContext environment_context)')
    print('  void create_table(Table tbl)')
    print('  void create_table_with_environment_context(Table tbl, EnvironmentContext environment_context)')
    print('  void create_table_with_constraints(Table tbl,  primaryKeys,  foreignKeys,  uniqueConstraints,  notNullConstraints,  defaultConstraints,  checkConstraints)')
    print('  void drop_constraint(DropConstraintRequest req)')
    print('  void add_primary_key(AddPrimaryKeyRequest req)')
    print('  void add_foreign_key(AddForeignKeyRequest req)')
    print('  void add_unique_constraint(AddUniqueConstraintRequest req)')
    print('  void add_not_null_constraint(AddNotNullConstraintRequest req)')
    print('  void add_default_constraint(AddDefaultConstraintRequest req)')
    print('  void add_check_constraint(AddCheckConstraintRequest req)')
    print('  void drop_table(string dbname, string name, bool deleteData)')
    print('  void drop_table_with_environment_context(string dbname, string name, bool deleteData, EnvironmentContext environment_context)')
    print('  void truncate_table(string dbName, string tableName,  partNames)')
    print('   get_tables(string db_name, string pattern)')
    print('   get_tables_by_type(string db_name, string pattern, string tableType)')
    print('   get_materialized_views_for_rewriting(string db_name)')
    print('   get_table_meta(string db_patterns, string tbl_patterns,  tbl_types)')
    print('   get_all_tables(string db_name)')
    print('  Table get_table(string dbname, string tbl_name)')
    print('   get_table_objects_by_name(string dbname,  tbl_names)')
    print('  GetTableResult get_table_req(GetTableRequest req)')
    print('  GetTablesResult get_table_objects_by_name_req(GetTablesRequest req)')
    print('  Materialization get_materialization_invalidation_info(CreationMetadata creation_metadata, string validTxnList)')
    print('  void update_creation_metadata(string catName, string dbname, string tbl_name, CreationMetadata creation_metadata)')
    print('   get_table_names_by_filter(string dbname, string filter, i16 max_tables)')
    print('  void alter_table(string dbname, string tbl_name, Table new_tbl)')
    print('  void alter_table_with_environment_context(string dbname, string tbl_name, Table new_tbl, EnvironmentContext environment_context)')
    print('  void alter_table_with_cascade(string dbname, string tbl_name, Table new_tbl, bool cascade)')
    print('  AlterTableResponse alter_table_req(AlterTableRequest req)')
    print('  Partition add_partition(Partition new_part)')
    print('  Partition add_partition_with_environment_context(Partition new_part, EnvironmentContext environment_context)')
    print('  i32 add_partitions( new_parts)')
    print('  i32 add_partitions_pspec( new_parts)')
    print('  Partition append_partition(string db_name, string tbl_name,  part_vals)')
    print('  AddPartitionsResult add_partitions_req(AddPartitionsRequest request)')
    print('  Partition append_partition_with_environment_context(string db_name, string tbl_name,  part_vals, EnvironmentContext environment_context)')
    print('  Partition append_partition_by_name(string db_name, string tbl_name, string part_name)')
    print('  Partition append_partition_by_name_with_environment_context(string db_name, string tbl_name, string part_name, EnvironmentContext environment_context)')
    print('  bool drop_partition(string db_name, string tbl_name,  part_vals, bool deleteData)')
    print('  bool drop_partition_with_environment_context(string db_name, string tbl_name,  part_vals, bool deleteData, EnvironmentContext environment_context)')
    print('  bool drop_partition_by_name(string db_name, string tbl_name, string part_name, bool deleteData)')
    print('  bool drop_partition_by_name_with_environment_context(string db_name, string tbl_name, string part_name, bool deleteData, EnvironmentContext environment_context)')
    print('  DropPartitionsResult drop_partitions_req(DropPartitionsRequest req)')
    print('  Partition get_partition(string db_name, string tbl_name,  part_vals)')
    print('  Partition exchange_partition( partitionSpecs, string source_db, string source_table_name, string dest_db, string dest_table_name)')
    print('   exchange_partitions( partitionSpecs, string source_db, string source_table_name, string dest_db, string dest_table_name)')
    print('  Partition get_partition_with_auth(string db_name, string tbl_name,  part_vals, string user_name,  group_names)')
    print('  Partition get_partition_by_name(string db_name, string tbl_name, string part_name)')
    print('   get_partitions(string db_name, string tbl_name, i16 max_parts)')
    print('   get_partitions_with_auth(string db_name, string tbl_name, i16 max_parts, string user_name,  group_names)')
    print('   get_partitions_pspec(string db_name, string tbl_name, i32 max_parts)')
    print('   get_partition_names(string db_name, string tbl_name, i16 max_parts)')
    print('  PartitionValuesResponse get_partition_values(PartitionValuesRequest request)')
    print('   get_partitions_ps(string db_name, string tbl_name,  part_vals, i16 max_parts)')
    print('   get_partitions_ps_with_auth(string db_name, string tbl_name,  part_vals, i16 max_parts, string user_name,  group_names)')
    print('   get_partition_names_ps(string db_name, string tbl_name,  part_vals, i16 max_parts)')
    print('   get_partitions_by_filter(string db_name, string tbl_name, string filter, i16 max_parts)')
    print('   get_part_specs_by_filter(string db_name, string tbl_name, string filter, i32 max_parts)')
    print('  PartitionsByExprResult get_partitions_by_expr(PartitionsByExprRequest req)')
    print('  i32 get_num_partitions_by_filter(string db_name, string tbl_name, string filter)')
    print('   get_partitions_by_names(string db_name, string tbl_name,  names)')
    print('  void alter_partition(string db_name, string tbl_name, Partition new_part)')
    print('  void alter_partitions(string db_name, string tbl_name,  new_parts)')
    print('  void alter_partitions_with_environment_context(string db_name, string tbl_name,  new_parts, EnvironmentContext environment_context)')
    print('  void alter_partition_with_environment_context(string db_name, string tbl_name, Partition new_part, EnvironmentContext environment_context)')
    print('  AlterPartitionsResponse alter_partitions_req(AlterPartitionsRequest req)')
    print('  void rename_partition(string db_name, string tbl_name,  part_vals, Partition new_part)')
    print('  bool partition_name_has_valid_characters( part_vals, bool throw_exception)')
    print('  string get_config_value(string name, string defaultValue)')
    print('   partition_name_to_vals(string part_name)')
    print('   partition_name_to_spec(string part_name)')
    print('  void markPartitionForEvent(string db_name, string tbl_name,  part_vals, PartitionEventType eventType)')
    print('  bool isPartitionMarkedForEvent(string db_name, string tbl_name,  part_vals, PartitionEventType eventType)')
    print('  PrimaryKeysResponse get_primary_keys(PrimaryKeysRequest request)')
    print('  ForeignKeysResponse get_foreign_keys(ForeignKeysRequest request)')
    print('  UniqueConstraintsResponse get_unique_constraints(UniqueConstraintsRequest request)')
    print('  NotNullConstraintsResponse get_not_null_constraints(NotNullConstraintsRequest request)')
    print('  DefaultConstraintsResponse get_default_constraints(DefaultConstraintsRequest request)')
    print('  CheckConstraintsResponse get_check_constraints(CheckConstraintsRequest request)')
    print('  bool update_table_column_statistics(ColumnStatistics stats_obj)')
    print('  bool update_partition_column_statistics(ColumnStatistics stats_obj)')
    print('  SetPartitionsStatsResponse update_table_column_statistics_req(SetPartitionsStatsRequest req)')
    print('  SetPartitionsStatsResponse update_partition_column_statistics_req(SetPartitionsStatsRequest req)')
    print('  ColumnStatistics get_table_column_statistics(string db_name, string tbl_name, string col_name)')
    print('  ColumnStatistics get_partition_column_statistics(string db_name, string tbl_name, string part_name, string col_name)')
    print('  TableStatsResult get_table_statistics_req(TableStatsRequest request)')
    print('  PartitionsStatsResult get_partitions_statistics_req(PartitionsStatsRequest request)')
    print('  AggrStats get_aggr_stats_for(PartitionsStatsRequest request)')
    print('  bool set_aggr_stats_for(SetPartitionsStatsRequest request)')
    print('  bool delete_partition_column_statistics(string db_name, string tbl_name, string part_name, string col_name)')
    print('  bool delete_table_column_statistics(string db_name, string tbl_name, string col_name)')
    print('  void create_function(Function func)')
    print('  void drop_function(string dbName, string funcName)')
    print('  void alter_function(string dbName, string funcName, Function newFunc)')
    print('   get_functions(string dbName, string pattern)')
    print('  Function get_function(string dbName, string funcName)')
    print('  GetAllFunctionsResponse get_all_functions()')
    print('  bool create_role(Role role)')
    print('  bool drop_role(string role_name)')
    print('   get_role_names()')
    print('  bool grant_role(string role_name, string principal_name, PrincipalType principal_type, string grantor, PrincipalType grantorType, bool grant_option)')
    print('  bool revoke_role(string role_name, string principal_name, PrincipalType principal_type)')
    print('   list_roles(string principal_name, PrincipalType principal_type)')
    print('  GrantRevokeRoleResponse grant_revoke_role(GrantRevokeRoleRequest request)')
    print('  GetPrincipalsInRoleResponse get_principals_in_role(GetPrincipalsInRoleRequest request)')
    print('  GetRoleGrantsForPrincipalResponse get_role_grants_for_principal(GetRoleGrantsForPrincipalRequest request)')
    print('  PrincipalPrivilegeSet get_privilege_set(HiveObjectRef hiveObject, string user_name,  group_names)')
    print('   list_privileges(string principal_name, PrincipalType principal_type, HiveObjectRef hiveObject)')
    print('  bool grant_privileges(PrivilegeBag privileges)')
    print('  bool revoke_privileges(PrivilegeBag privileges)')
    print('  GrantRevokePrivilegeResponse grant_revoke_privileges(GrantRevokePrivilegeRequest request)')
    print('  GrantRevokePrivilegeResponse refresh_privileges(HiveObjectRef objToRefresh, string authorizer, GrantRevokePrivilegeRequest grantRequest)')
    print('   set_ugi(string user_name,  group_names)')
    print('  string get_delegation_token(string token_owner, string renewer_kerberos_principal_name)')
    print('  i64 renew_delegation_token(string token_str_form)')
    print('  void cancel_delegation_token(string token_str_form)')
    print('  bool add_token(string token_identifier, string delegation_token)')
    print('  bool remove_token(string token_identifier)')
    print('  string get_token(string token_identifier)')
    print('   get_all_token_identifiers()')
    print('  i32 add_master_key(string key)')
    print('  void update_master_key(i32 seq_number, string key)')
    print('  bool remove_master_key(i32 key_seq)')
    print('   get_master_keys()')
    print('  GetOpenTxnsResponse get_open_txns()')
    print('  GetOpenTxnsInfoResponse get_open_txns_info()')
    print('  OpenTxnsResponse open_txns(OpenTxnRequest rqst)')
    print('  void abort_txn(AbortTxnRequest rqst)')
    print('  void abort_txns(AbortTxnsRequest rqst)')
    print('  void commit_txn(CommitTxnRequest rqst)')
    print('  void repl_tbl_writeid_state(ReplTblWriteIdStateRequest rqst)')
    print('  GetValidWriteIdsResponse get_valid_write_ids(GetValidWriteIdsRequest rqst)')
    print('  AllocateTableWriteIdsResponse allocate_table_write_ids(AllocateTableWriteIdsRequest rqst)')
    print('  LockResponse lock(LockRequest rqst)')
    print('  LockResponse check_lock(CheckLockRequest rqst)')
    print('  void unlock(UnlockRequest rqst)')
    print('  ShowLocksResponse show_locks(ShowLocksRequest rqst)')
    print('  void heartbeat(HeartbeatRequest ids)')
    print('  HeartbeatTxnRangeResponse heartbeat_txn_range(HeartbeatTxnRangeRequest txns)')
    print('  void compact(CompactionRequest rqst)')
    print('  CompactionResponse compact2(CompactionRequest rqst)')
    print('  ShowCompactResponse show_compact(ShowCompactRequest rqst)')
    print('  void add_dynamic_partitions(AddDynamicPartitions rqst)')
    print('  NotificationEventResponse get_next_notification(NotificationEventRequest rqst)')
    print('  CurrentNotificationEventId get_current_notificationEventId()')
    print('  NotificationEventsCountResponse get_notification_events_count(NotificationEventsCountRequest rqst)')
    print('  FireEventResponse fire_listener_event(FireEventRequest rqst)')
    print('  void flushCache()')
    print('  CmRecycleResponse cm_recycle(CmRecycleRequest request)')
    print('  GetFileMetadataByExprResult get_file_metadata_by_expr(GetFileMetadataByExprRequest req)')
    print('  GetFileMetadataResult get_file_metadata(GetFileMetadataRequest req)')
    print('  PutFileMetadataResult put_file_metadata(PutFileMetadataRequest req)')
    print('  ClearFileMetadataResult clear_file_metadata(ClearFileMetadataRequest req)')
    print('  CacheFileMetadataResult cache_file_metadata(CacheFileMetadataRequest req)')
    print('  string get_metastore_db_uuid()')
    print('  WMCreateResourcePlanResponse create_resource_plan(WMCreateResourcePlanRequest request)')
    print('  WMGetResourcePlanResponse get_resource_plan(WMGetResourcePlanRequest request)')
    print('  WMGetActiveResourcePlanResponse get_active_resource_plan(WMGetActiveResourcePlanRequest request)')
    print('  WMGetAllResourcePlanResponse get_all_resource_plans(WMGetAllResourcePlanRequest request)')
    print('  WMAlterResourcePlanResponse alter_resource_plan(WMAlterResourcePlanRequest request)')
    print('  WMValidateResourcePlanResponse validate_resource_plan(WMValidateResourcePlanRequest request)')
    print('  WMDropResourcePlanResponse drop_resource_plan(WMDropResourcePlanRequest request)')
    print('  WMCreateTriggerResponse create_wm_trigger(WMCreateTriggerRequest request)')
    print('  WMAlterTriggerResponse alter_wm_trigger(WMAlterTriggerRequest request)')
    print('  WMDropTriggerResponse drop_wm_trigger(WMDropTriggerRequest request)')
    print('  WMGetTriggersForResourePlanResponse get_triggers_for_resourceplan(WMGetTriggersForResourePlanRequest request)')
    print('  WMCreatePoolResponse create_wm_pool(WMCreatePoolRequest request)')
    print('  WMAlterPoolResponse alter_wm_pool(WMAlterPoolRequest request)')
    print('  WMDropPoolResponse drop_wm_pool(WMDropPoolRequest request)')
    print('  WMCreateOrUpdateMappingResponse create_or_update_wm_mapping(WMCreateOrUpdateMappingRequest request)')
    print('  WMDropMappingResponse drop_wm_mapping(WMDropMappingRequest request)')
    print('  WMCreateOrDropTriggerToPoolMappingResponse create_or_drop_wm_trigger_to_pool_mapping(WMCreateOrDropTriggerToPoolMappingRequest request)')
    print('  void create_ischema(ISchema schema)')
    print('  void alter_ischema(AlterISchemaRequest rqst)')
    print('  ISchema get_ischema(ISchemaName name)')
    print('  void drop_ischema(ISchemaName name)')
    print('  void add_schema_version(SchemaVersion schemaVersion)')
    print('  SchemaVersion get_schema_version(SchemaVersionDescriptor schemaVersion)')
    print('  SchemaVersion get_schema_latest_version(ISchemaName schemaName)')
    print('   get_schema_all_versions(ISchemaName schemaName)')
    print('  void drop_schema_version(SchemaVersionDescriptor schemaVersion)')
    print('  FindSchemasByColsResp get_schemas_by_cols(FindSchemasByColsRqst rqst)')
    print('  void map_schema_version_to_serde(MapSchemaVersionToSerdeRequest rqst)')
    print('  void set_schema_version_state(SetSchemaVersionStateRequest rqst)')
    print('  void add_serde(SerDeInfo serde)')
    print('  SerDeInfo get_serde(GetSerdeRequest rqst)')
    print('  LockResponse get_lock_materialization_rebuild(string dbName, string tableName, i64 txnId)')
    print('  bool heartbeat_lock_materialization_rebuild(string dbName, string tableName, i64 txnId)')
    print('  void add_runtime_stats(RuntimeStat stat)')
    print('   get_runtime_stats(GetRuntimeStatsRequest rqst)')
    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 = ThriftHiveMetastore.Client(protocol)
transport.open()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

transport.close()
