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
else:
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]:
GC_Values[GC_CUSTOMER_ID] = MY_CUSTOMER
return service
@ -1725,7 +1728,7 @@ def doPrintDomains():
results = gapi.call(cd.domains(),
'list',
customer=GC_Values[GC_CUSTOMER_ID])
for domain in results['domains']:
for domain in results.get('domains', []):
domain_attributes = {}
domain['type'] = ['secondary', 'primary'][domain['isPrimary']]
for attr in domain:
@ -10443,15 +10446,21 @@ def doGetUserInfo(user_email=None):
for alias in user['nonEditableAliases']:
print(f' {alias}')
if getGroups:
groups = gapi.get_all_pages(cd.groups(),
'list',
'groups',
userKey=user_email,
fields='groups(name,email),nextPageToken')
if groups:
print(f'Groups: ({len(groups)})')
for group in groups:
print(f' {group["name"]} <{group["email"]}>')
throw_reasons = [gapi_errors.ErrorReason.FORBIDDEN]
try:
groups = gapi.get_all_pages(
cd.groups(),
'list',
'groups',
userKey=user_email,
fields='groups(name,email),nextPageToken',
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:
print('Licenses:')
lic = buildGAPIObject('licensing')

View File

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

View File

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