Handle G Suite Essentials unverified domain better

This commit is contained in:
Jay Lee
2020-05-14 09:38:21 -04:00
parent e89a926d53
commit b68b773b95
3 changed files with 35 additions and 17 deletions

View File

@ -940,6 +940,9 @@ def buildGAPIObject(api):
GC_Values[GC_CUSTOMER_ID] = MY_CUSTOMER GC_Values[GC_CUSTOMER_ID] = MY_CUSTOMER
else: else:
GC_Values[GC_DOMAIN] = _getValueFromOAuth('hd', credentials=credentials) GC_Values[GC_DOMAIN] = _getValueFromOAuth('hd', credentials=credentials)
if GC_Values[GC_DOMAIN] == 'Unknown':
GC_Values[GC_DOMAIN] = getEmailAddressDomain(
_getValueFromOAuth('email'))
if not GC_Values[GC_CUSTOMER_ID]: if not GC_Values[GC_CUSTOMER_ID]:
GC_Values[GC_CUSTOMER_ID] = MY_CUSTOMER GC_Values[GC_CUSTOMER_ID] = MY_CUSTOMER
return service return service
@ -1725,7 +1728,7 @@ def doPrintDomains():
results = gapi.call(cd.domains(), results = gapi.call(cd.domains(),
'list', 'list',
customer=GC_Values[GC_CUSTOMER_ID]) customer=GC_Values[GC_CUSTOMER_ID])
for domain in results['domains']: for domain in results.get('domains', []):
domain_attributes = {} domain_attributes = {}
domain['type'] = ['secondary', 'primary'][domain['isPrimary']] domain['type'] = ['secondary', 'primary'][domain['isPrimary']]
for attr in domain: for attr in domain:
@ -10443,15 +10446,21 @@ def doGetUserInfo(user_email=None):
for alias in user['nonEditableAliases']: for alias in user['nonEditableAliases']:
print(f' {alias}') print(f' {alias}')
if getGroups: if getGroups:
groups = gapi.get_all_pages(cd.groups(), throw_reasons = [gapi_errors.ErrorReason.FORBIDDEN]
'list', try:
'groups', groups = gapi.get_all_pages(
userKey=user_email, cd.groups(),
fields='groups(name,email),nextPageToken') 'list',
if groups: 'groups',
print(f'Groups: ({len(groups)})') userKey=user_email,
for group in groups: fields='groups(name,email),nextPageToken',
print(f' {group["name"]} <{group["email"]}>') throw_reasons=throw_reasons)
if groups:
print(f'Groups: ({len(groups)})')
for group in groups:
print(f' {group["name"]} <{group["email"]}>')
except gapi.errors.GapiForbiddenError:
print('No access to show user groups.')
if getLicenses: if getLicenses:
print('Licenses:') print('Licenses:')
lic = buildGAPIObject('licensing') lic = buildGAPIObject('licensing')

View File

@ -14,11 +14,16 @@ def doGetCustomerInfo():
customerKey=GC_Values[GC_CUSTOMER_ID]) customerKey=GC_Values[GC_CUSTOMER_ID])
print(f'Customer ID: {customer_info["id"]}') print(f'Customer ID: {customer_info["id"]}')
print(f'Primary Domain: {customer_info["customerDomain"]}') print(f'Primary Domain: {customer_info["customerDomain"]}')
result = gapi.call(cd.domains(), try:
'get', result = gapi.call(
customer=customer_info['id'], cd.domains(),
domainName=customer_info['customerDomain'], 'get',
fields='verified') customer=customer_info['id'],
domainName=customer_info['customerDomain'],
fields='verified',
throw_reasons=[gapi.errors.ErrorReason.DOMAIN_NOT_FOUND])
except gapi.errors.GapiDomainNotFoundError:
result = {'verified': False}
print(f'Primary Domain Verified: {result["verified"]}') print(f'Primary Domain Verified: {result["verified"]}')
# If customer has changed primary domain customerCreationTime is date # If customer has changed primary domain customerCreationTime is date
# of current primary being added, not customer create date. # of current primary being added, not customer create date.
@ -66,7 +71,9 @@ def doGetCustomerInfo():
customerId = None customerId = None
rep = gapi_reports.buildGAPIObject() rep = gapi_reports.buildGAPIObject()
usage = None usage = None
throw_reasons = [gapi.errors.ErrorReason.INVALID] throw_reasons = [
gapi.errors.ErrorReason.INVALID, gapi.errors.ErrorReason.FORBIDDEN
]
while True: while True:
try: try:
result = gapi.call(rep.customerUsageReports(), result = gapi.call(rep.customerUsageReports(),
@ -78,6 +85,8 @@ def doGetCustomerInfo():
except gapi.errors.GapiInvalidError as e: except gapi.errors.GapiInvalidError as e:
tryDate = gapi_reports._adjust_date(str(e)) tryDate = gapi_reports._adjust_date(str(e))
continue continue
except gapi.errors.GapiForbiddenError:
return
warnings = result.get('warnings', []) warnings = result.get('warnings', [])
fullDataRequired = ['accounts'] fullDataRequired = ['accounts']
usage = result.get('usageReports') usage = result.get('usageReports')

View File

@ -130,7 +130,7 @@ SKUS = {
'1010060001': { '1010060001': {
'product': 'Google-Apps', 'product': 'Google-Apps',
'aliases': ['d4e', 'driveenterprise', 'drive4enterprise'], 'aliases': ['d4e', 'driveenterprise', 'drive4enterprise'],
'displayName': 'Drive Enterprise' 'displayName': 'G Suite Essentials'
}, },
'Google-Drive-storage-20GB': { 'Google-Drive-storage-20GB': {
'product': 'Google-Drive-storage', 'product': 'Google-Drive-storage',