You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by sa...@apache.org on 2017/02/14 23:41:53 UTC

[04/50] [abbrv] phoenix git commit: PHOENIX-3567 Use argparse for sqlline

PHOENIX-3567 Use argparse for sqlline


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/4f97085e
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/4f97085e
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/4f97085e

Branch: refs/heads/encodecolumns2
Commit: 4f97085ee4f206589d0ce160c55d9ed0187ec989
Parents: 3d1abf5
Author: Josh Elser <el...@apache.org>
Authored: Thu Jan 5 12:34:48 2017 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Mon Jan 16 16:18:36 2017 -0500

----------------------------------------------------------------------
 bin/phoenix_utils.py |  5 +++++
 bin/sqlline-thin.py  | 17 ++++++++--------
 bin/sqlline.py       | 52 ++++++++++++++++++++---------------------------
 3 files changed, 35 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/4f97085e/bin/phoenix_utils.py
----------------------------------------------------------------------
diff --git a/bin/phoenix_utils.py b/bin/phoenix_utils.py
index 2da094f..580a78b 100755
--- a/bin/phoenix_utils.py
+++ b/bin/phoenix_utils.py
@@ -198,6 +198,11 @@ def shell_quote(args):
         import pipes
         return " ".join([pipes.quote(v) for v in args])
 
+def common_sqlline_args(parser):
+    parser.add_argument('-v', '--verbose', help='Verbosity on sqlline.', default='true')
+    parser.add_argument('-c', '--color', help='Color setting for sqlline.', default='true')
+    parser.add_argument('-fc', '--fastconnect', help='Fetch all schemas on initial connection', default='false')
+
 if __name__ == "__main__":
     setPath()
     print "phoenix_class_path:", phoenix_class_path

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4f97085e/bin/sqlline-thin.py
----------------------------------------------------------------------
diff --git a/bin/sqlline-thin.py b/bin/sqlline-thin.py
index e4cb540..47384d8 100755
--- a/bin/sqlline-thin.py
+++ b/bin/sqlline-thin.py
@@ -42,14 +42,16 @@ parser = argparse.ArgumentParser(description='Launches the Apache Phoenix Thin C
 parser.add_argument('url', nargs='?', help='The URL to the Phoenix Query Server.', default='http://localhost:8765')
 # Positional argument "sqlfile" is optional
 parser.add_argument('sqlfile', nargs='?', help='A file of SQL commands to execute.', default='')
-parser.add_argument('-u', '--user', help='Username for database authentication (unsupported).', default='none')
-parser.add_argument('-p', '--password', help='Password for database authentication (unsupported).', default='none')
+# Avatica wire authentication
 parser.add_argument('-a', '--authentication', help='Mechanism for HTTP authentication.', choices=('SPNEGO', 'BASIC', 'DIGEST', 'NONE'), default='')
+# Avatica wire serialization
 parser.add_argument('-s', '--serialization', help='Serialization type for HTTP API.', choices=('PROTOBUF', 'JSON'), default=None)
+# Avatica authentication
 parser.add_argument('-au', '--auth-user', help='Username for HTTP authentication.')
 parser.add_argument('-ap', '--auth-password', help='Password for HTTP authentication.')
-parser.add_argument('-v', '--verbose', help='Verbosity on sqlline.', default='true')
-parser.add_argument('-c', '--color', help='Color setting for sqlline.', default='true')
+# Common arguments across sqlline.py and sqlline-thin.py
+phoenix_utils.common_sqlline_args(parser)
+# Parse the args
 args=parser.parse_args()
 
 phoenix_utils.setPath()
@@ -58,9 +60,6 @@ url = args.url
 sqlfile = args.sqlfile
 serialization_key = 'phoenix.queryserver.serialization'
 
-def usage_and_exit():
-    sys.exit("usage: sqlline-thin.py [host[:port]] [sql_file]")
-
 def cleanup_url(url):
     parsed = urlparse.urlparse(url)
     if parsed.scheme == "":
@@ -161,8 +160,8 @@ java_cmd = java + ' $PHOENIX_OPTS ' + \
     os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
     os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
     " org.apache.phoenix.queryserver.client.SqllineWrapper -d org.apache.phoenix.queryserver.client.Driver " + \
-    ' -u "' + jdbc_url + '"' + " -n " + args.user + " -p " + args.password + \
-    " --color=" + colorSetting + " --fastConnect=false --verbose=" + args.verbose + \
+    ' -u "' + jdbc_url + '"' + " -n none -p none " + \
+    " --color=" + colorSetting + " --fastConnect=" + args.fastconnect + " --verbose=" + args.verbose + \
     " --incremental=false --isolation=TRANSACTION_READ_COMMITTED " + sqlfile
 
 exitcode = subprocess.call(java_cmd, shell=True)

http://git-wip-us.apache.org/repos/asf/phoenix/blob/4f97085e/bin/sqlline.py
----------------------------------------------------------------------
diff --git a/bin/sqlline.py b/bin/sqlline.py
index 474968f..7a724de 100755
--- a/bin/sqlline.py
+++ b/bin/sqlline.py
@@ -24,6 +24,7 @@ import subprocess
 import sys
 import phoenix_utils
 import atexit
+import argparse
 
 global childProc
 childProc = None
@@ -37,36 +38,26 @@ atexit.register(kill_child)
 
 phoenix_utils.setPath()
 
-def printUsage():
-    print "\nUsage: sqlline.py [zookeeper] \
-[optional_sql_file] \nExample: \n 1. sqlline.py \n \
-2. sqlline.py localhost:2181:/hbase \n 3. sqlline.py \
-localhost:2181:/hbase ../examples/stock_symbol.sql \n \
-4. sqlline.py ../examples/stock_symbol.sql"
-    sys.exit(-1)
-
-if len(sys.argv) > 3:
-    printUsage()
+parser = argparse.ArgumentParser(description='Launches the Apache Phoenix Client.')
+# Positional argument 'zookeepers' is optional
+parser.add_argument('zookeepers', nargs='?', help='The ZooKeeper quorum string', default='localhost:2181:/hbase')
+# Positional argument 'sqlfile' is optional
+parser.add_argument('sqlfile', nargs='?', help='A file of SQL commands to execute', default='')
+# Common arguments across sqlline.py and sqlline-thin.py
+phoenix_utils.common_sqlline_args(parser)
+# Parse the args
+args=parser.parse_args()
 
-sqlfile = ""
-zookeeper = ""
+zookeeper = args.zookeepers
+sqlfile = args.sqlfile
 
 # HBase configuration folder path (where hbase-site.xml reside) for
 # HBase/Phoenix client side property override
 hbase_config_path = os.getenv('HBASE_CONF_DIR', phoenix_utils.current_dir)
 
-if len(sys.argv) == 2:
-    if os.path.isfile(sys.argv[1]):
-        sqlfile = sys.argv[1]
-    else:
-        zookeeper = sys.argv[1]
-
-if len(sys.argv) == 3:
-    if os.path.isfile(sys.argv[1]):
-        printUsage()
-    else:
-        zookeeper = sys.argv[1]
-        sqlfile = sys.argv[2]
+if sqlfile and not os.path.isfile(sqlfile):
+    parser.print_help()
+    sys.exit(-1)
 
 if sqlfile:
     sqlfile = "--run=" + phoenix_utils.shell_quote([sqlfile])
@@ -101,19 +92,20 @@ if java_home:
 else:
     java = 'java'
 
-colorSetting = "true"
+colorSetting = args.color
 # disable color setting for windows OS
 if os.name == 'nt':
     colorSetting = "false"
 
 java_cmd = java + ' $PHOENIX_OPTS ' + \
-    ' -cp "' + hbase_config_path + os.pathsep + phoenix_utils.hbase_conf_dir + os.pathsep + phoenix_utils.phoenix_client_jar + os.pathsep + phoenix_utils.hadoop_common_jar + os.pathsep + phoenix_utils.hadoop_hdfs_jar + \
+    ' -cp "' + hbase_config_path + os.pathsep + phoenix_utils.hbase_conf_dir + os.pathsep + phoenix_utils.phoenix_client_jar + \
+    os.pathsep + phoenix_utils.hadoop_common_jar + os.pathsep + phoenix_utils.hadoop_hdfs_jar + \
     os.pathsep + phoenix_utils.hadoop_conf + os.pathsep + phoenix_utils.hadoop_classpath + '" -Dlog4j.configuration=file:' + \
     os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
-    " sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver \
--u jdbc:phoenix:" + phoenix_utils.shell_quote([zookeeper]) + \
-    " -n none -p none --color=" + colorSetting + " --fastConnect=false --verbose=true \
---incremental=false --isolation=TRANSACTION_READ_COMMITTED " + sqlfile
+    " sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver" + \
+    " -u jdbc:phoenix:" + phoenix_utils.shell_quote([zookeeper]) + \
+    " -n none -p none --color=" + colorSetting + " --fastConnect=" + args.fastconnect + \
+    " --verbose=" + args.verbose + " --incremental=false --isolation=TRANSACTION_READ_COMMITTED " + sqlfile
 
 childProc = subprocess.Popen(java_cmd, shell=True)
 #Wait for child process exit