mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-09 06:03:35 +00:00
Handle both date error messages in gam report
This commit is contained in:
36
src/gam.py
36
src/gam.py
@ -964,18 +964,27 @@ def geturl(url, dst):
|
|||||||
closeFile(f)
|
closeFile(f)
|
||||||
|
|
||||||
def showReport():
|
def showReport():
|
||||||
|
|
||||||
|
def _adjustDate(errMsg):
|
||||||
|
match_date = re.match(u'Data for dates later than (.*) is not yet available. Please check back later', errMsg)
|
||||||
|
if not match_date:
|
||||||
|
match_date = re.match(u'Start date can not be later than (.*)', errMsg)
|
||||||
|
if not match_date:
|
||||||
|
systemErrorExit(4, errMsg)
|
||||||
|
return str(match_date.group(1))
|
||||||
|
|
||||||
rep = buildGAPIObject(u'reports')
|
rep = buildGAPIObject(u'reports')
|
||||||
report = sys.argv[2].lower()
|
report = sys.argv[2].lower()
|
||||||
customerId = GC_Values[GC_CUSTOMER_ID]
|
customerId = GC_Values[GC_CUSTOMER_ID]
|
||||||
if customerId == MY_CUSTOMER:
|
if customerId == MY_CUSTOMER:
|
||||||
customerId = None
|
customerId = None
|
||||||
date = filters = parameters = actorIpAddress = startTime = endTime = eventName = None
|
try_date = filters = parameters = actorIpAddress = startTime = endTime = eventName = None
|
||||||
to_drive = False
|
to_drive = False
|
||||||
userKey = u'all'
|
userKey = u'all'
|
||||||
i = 3
|
i = 3
|
||||||
while i < len(sys.argv):
|
while i < len(sys.argv):
|
||||||
if sys.argv[i].lower() == u'date':
|
if sys.argv[i].lower() == u'date':
|
||||||
date = sys.argv[i+1]
|
try_date = sys.argv[i+1]
|
||||||
i += 2
|
i += 2
|
||||||
elif sys.argv[i].lower() == u'start':
|
elif sys.argv[i].lower() == u'start':
|
||||||
startTime = sys.argv[i+1]
|
startTime = sys.argv[i+1]
|
||||||
@ -1004,15 +1013,14 @@ def showReport():
|
|||||||
else:
|
else:
|
||||||
print u'ERROR: %s is not a valid argument to "gam report"' % sys.argv[i]
|
print u'ERROR: %s is not a valid argument to "gam report"' % sys.argv[i]
|
||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
try_date = date
|
|
||||||
if try_date == None:
|
if try_date == None:
|
||||||
try_date = datetime.date.today()
|
try_date = str(datetime.date.today())
|
||||||
if report in [u'users', u'user']:
|
if report in [u'users', u'user']:
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
page_message = u'Got %%num_items%% users\n'
|
page_message = u'Got %%num_items%% users\n'
|
||||||
usage = callGAPIpages(rep.userUsageReport(), u'get', u'usageReports', page_message=page_message, throw_reasons=[u'invalid'],
|
usage = callGAPIpages(rep.userUsageReport(), u'get', u'usageReports', page_message=page_message, throw_reasons=[u'invalid'],
|
||||||
date=str(try_date), userKey=userKey, customerId=customerId, filters=filters, parameters=parameters)
|
date=try_date, userKey=userKey, customerId=customerId, filters=filters, parameters=parameters)
|
||||||
break
|
break
|
||||||
except googleapiclient.errors.HttpError, e:
|
except googleapiclient.errors.HttpError, e:
|
||||||
error = json.loads(e.content)
|
error = json.loads(e.content)
|
||||||
@ -1020,16 +1028,11 @@ def showReport():
|
|||||||
message = error[u'error'][u'errors'][0][u'message']
|
message = error[u'error'][u'errors'][0][u'message']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise
|
raise
|
||||||
match_date = re.match(u'Data for dates later than (.*) is not yet available. Please check back later', message)
|
try_date = _adjustDate(message)
|
||||||
if not match_date:
|
|
||||||
print u'Error: %s' % message
|
|
||||||
sys.exit(4)
|
|
||||||
else:
|
|
||||||
try_date = match_date.group(1)
|
|
||||||
user_attributes = []
|
user_attributes = []
|
||||||
titles = [u'email', u'date']
|
titles = [u'email', u'date']
|
||||||
for user_report in usage:
|
for user_report in usage:
|
||||||
row = {u'email': user_report[u'entity'][u'userEmail'], u'date': str(try_date)}
|
row = {u'email': user_report[u'entity'][u'userEmail'], u'date': try_date}
|
||||||
try:
|
try:
|
||||||
for report_item in user_report[u'parameters']:
|
for report_item in user_report[u'parameters']:
|
||||||
items = report_item.values()
|
items = report_item.values()
|
||||||
@ -1050,7 +1053,7 @@ def showReport():
|
|||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
usage = callGAPIpages(rep.customerUsageReports(), u'get', u'usageReports', throw_reasons=[u'invalid'],
|
usage = callGAPIpages(rep.customerUsageReports(), u'get', u'usageReports', throw_reasons=[u'invalid'],
|
||||||
customerId=customerId, date=str(try_date), parameters=parameters)
|
customerId=customerId, date=try_date, parameters=parameters)
|
||||||
break
|
break
|
||||||
except googleapiclient.errors.HttpError, e:
|
except googleapiclient.errors.HttpError, e:
|
||||||
error = json.loads(e.content)
|
error = json.loads(e.content)
|
||||||
@ -1058,12 +1061,7 @@ def showReport():
|
|||||||
message = error[u'error'][u'errors'][0][u'message']
|
message = error[u'error'][u'errors'][0][u'message']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise
|
raise
|
||||||
match_date = re.match(u'Data for dates later than (.*) is not yet available. Please check back later', message)
|
try_date = _adjustDate(message)
|
||||||
if not match_date:
|
|
||||||
print u'Error: %s' % message
|
|
||||||
sys.exit(4)
|
|
||||||
else:
|
|
||||||
try_date = match_date.group(1)
|
|
||||||
cust_attributes = [{u'name': u'name', u'value': u'value', u'client_id': u'client_id'}]
|
cust_attributes = [{u'name': u'name', u'value': u'value', u'client_id': u'client_id'}]
|
||||||
titles = [u'name', u'value', u'client_id']
|
titles = [u'name', u'value', u'client_id']
|
||||||
auth_apps = list()
|
auth_apps = list()
|
||||||
|
Reference in New Issue
Block a user