From: Scott Baker <smbaker@gmail.com>
Date: Wed, 11 Jun 2014 02:54:17 +0000 (-0700)
Subject: gracefully handle missing bigquery keys
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=c337ac3537fed3f0f1056998935e83f89c686837;p=plstackapi.git

gracefully handle missing bigquery keys
---

diff --git a/planetstack/hpc_wizard/bigquery_analytics.py b/planetstack/hpc_wizard/bigquery_analytics.py
index a0a0275..4a90c2b 100644
--- a/planetstack/hpc_wizard/bigquery_analytics.py
+++ b/planetstack/hpc_wizard/bigquery_analytics.py
@@ -6,6 +6,7 @@ import json
 import httplib2
 import threading
 import os
+import sys
 import time
 import traceback
 
@@ -28,10 +29,12 @@ PROJECT_NUMBER = '549187599759'
 try:
     FLOW = flow_from_clientsecrets('/opt/planetstack/hpc_wizard/client_secrets.json',
                                    scope='https://www.googleapis.com/auth/bigquery')
+    BIGQUERY_AVAILABLE = True
 except:
-    print "exception while initializing bigquery flow"
+    print >> sys.stderr, "exception while initializing bigquery flow"
     traceback.print_exc()
     FLOW = None
+    BIGQUERY_AVAILABLE = False
 
 MINUTE_MS = 60*1000
 HOUR_MS = 60*60*1000
@@ -93,7 +96,7 @@ class BigQueryAnalytics:
  	credentials = storage.get()
 
 	if credentials is None or credentials.invalid:
-		credentials = run(FLOW, storage)
+            credentials = run(FLOW, storage)
 
 	http = httplib2.Http()
 	http = credentials.authorize(http)
@@ -111,6 +114,10 @@ class BigQueryAnalytics:
             field["name"] = reverse_mappings[self.tableName].get(field["name"], field["name"])
 
     def run_query(self, query):
+        if not BIGQUERY_AVAILABLE:
+            print >> sys.stderr, "bigquery_analytics: bigquery flow is not available. returning empty result."
+            return []
+
         response = self.run_query_raw(query)
 
         fieldNames = []