diff options
author | Siddharth Rakesh <sidrakesh@google.com> | 2015-06-19 15:24:19 -0700 |
---|---|---|
committer | Siddharth Rakesh <sidrakesh@google.com> | 2015-06-19 15:24:19 -0700 |
commit | 31014d26aa2757de26e9f395bab84220a593070e (patch) | |
tree | 74b50fc1ec32cff3d9a647824397ea151bf7bafe /test/cpp | |
parent | 12c65b1a7e3d6707b703d6294144c63c9dac122d (diff) |
flags handled using python_gflags
Diffstat (limited to 'test/cpp')
-rwxr-xr-x | test/cpp/qps/run_perf_db_test.py | 73 |
1 files changed, 45 insertions, 28 deletions
diff --git a/test/cpp/qps/run_perf_db_test.py b/test/cpp/qps/run_perf_db_test.py index 634555546a..fd0d397a66 100755 --- a/test/cpp/qps/run_perf_db_test.py +++ b/test/cpp/qps/run_perf_db_test.py @@ -39,15 +39,23 @@ import json import time import subprocess import fnmatch +import gflags CLIENT_ID = '1018396037782-tv81fshn76nemr24uuhuginceb9hni2m.apps.googleusercontent.com' CLIENT_SECRET = '_HGHXg4DAA59r4w4x8p6ARzD' GRANT_TYPE = 'http://oauth.net/grant_type/device/1.0' -ACCESS_TOKENS_DIR = '/usr/local/auth_access_tokens' +DEFAULT_ACCESS_TOKENS_DIR = '/usr/local/auth_access_tokens' AUTH_TOKEN_LINK = 'https://www.googleapis.com/oauth2/v3/token' GOOGLE_ACCOUNTS_LINK = 'https://accounts.google.com/o/oauth2/device/code' USER_INFO_LINK = 'https://www.googleapis.com/oauth2/v1/userinfo' +FLAGS = gflags.FLAGS + +gflags.DEFINE_string('test', None, 'Name of the test') +gflags.DEFINE_string('email', None, 'gmail id') +gflags.DEFINE_string('server_address', 'localhost:50052', 'Address of the performance database server') +gflags.DEFINE_string('tokens_dir', DEFAULT_ACCESS_TOKENS_DIR, 'Location of the access tokens') + # Fetches JSON reply object, given a url and parameters def fetchJSON(url, paramDict): if len(paramDict) == 0: @@ -136,7 +144,7 @@ def refreshAccessToken(refreshToken, userTokFile): # return fresh access token return data['access_token'] -def reauthenticate(): +def reauthenticate(tokensDir): # Request parameters paramDict = {'client_id':CLIENT_ID, 'scope':'email profile'} JSONBody = fetchJSON(GOOGLE_ACCOUNTS_LINK, paramDict) @@ -158,7 +166,7 @@ def reauthenticate(): time.sleep(data['interval']) # File to write tokens - newUserTokFile = ACCESS_TOKENS_DIR + '/' + getUserId(authData['access_token']) + newUserTokFile = tokensDir + '/' + getUserId(authData['access_token']) # Write tokens to file with open(newUserTokFile, "w") as data_file: @@ -168,12 +176,12 @@ def reauthenticate(): return authData['access_token'] # Fetch a working access token given user entered email id; authntication may be required -def getAccessToken(email): +def getAccessToken(email, tokensDir): # Get unique user id from email address userId = getUserIdFromEmail(email) # Token file - userTokFile = ACCESS_TOKENS_DIR + '/' + userId + userTokFile = tokensDir + '/' + userId accessToken = '' @@ -182,7 +190,7 @@ def getAccessToken(email): accessToken = useAccessToken(userTokFile) else: # User authentication required - accessToken = reauthenticate() + accessToken = reauthenticate(tokensDir) return accessToken @@ -235,42 +243,51 @@ def getSysInfo(): return sysInfo -def main(): - # If tokens directory does not exist, creates it - if not os.path.exists(ACCESS_TOKENS_DIR): - subprocess.call(['sudo', 'mkdir', ACCESS_TOKENS_DIR]) - subprocess.call(['sudo', 'chmod', '777', ACCESS_TOKENS_DIR]) +def main(argv): + try: + argv = FLAGS(argv) + except Exception, e: + print '%s\\nUsage: %s ARGS\\n%s' % (e, sys.argv[0], FLAGS) + sys.exit(1) - if len(sys.argv) > 1: - test = sys.argv[1] - else: - test = raw_input('Enter the test path/name: ') + tokensDir = FLAGS.tokens_dir - if len(sys.argv) > 2: - email = sys.argv[2] - else: - email = raw_input('Enter your e-mail id: ') + # If tokens directory does not exist, creates it + if not os.path.exists(tokensDir): + os.makedirs(tokensDir) try: # Fetch working access token - accessToken = getAccessToken(email) - except Exception, e: - print 'Error in authentication' + accessToken = getAccessToken(FLAGS.email, tokensDir) + except AttributeError: + print '\nError: Please provide email address as an argument\n' + sys.exit(1) + except: + print '\nError in authentication\n' + sys.exit(1) # Address of the performance database server - serverAddress = 'sidrakesh.mtv.google.corp.com:50052' + serverAddress = FLAGS.server_address + # Get path to test try: - testPath = findTestPath(test) # Get path to test - testName = testPath.split('/')[-1] # Get test name + testPath = findTestPath(FLAGS.test) + except TypeError: + print '\nError: Please provide test name/path as argument\n' + sys.exit(1) - sysInfo = getSysInfo() # get the system information + # Get name of the test + testName = testPath.split('/')[-1] + # Get the system information + sysInfo = getSysInfo() + + try: print '\nBeginning test:\n' # Run the test subprocess.call([testPath, '--report_metrics_db=true', '--access_token='+accessToken, '--test_name='+testName, '--sys_info='+str(sysInfo).strip('[]'), '--server_address='+serverAddress]) except OSError: - print 'Could not execute the test, please check test name' + print 'Could not execute the test' if __name__ == "__main__": - main()
\ No newline at end of file + main(sys.argv)
\ No newline at end of file |