wait_for_mailbox command to ensure user has mailbox before attempting Gmail commands.

This commit is contained in:
Jay Lee
2021-03-11 14:36:47 -05:00
parent 7e706518c5
commit c12f7f1123
3 changed files with 25 additions and 4 deletions

View File

@@ -11937,6 +11937,8 @@ def ProcessGAMCommand(args):
gapi_directory_users.signout(users)
elif command == 'turnoff2sv':
gapi_directory_users.turn_off_2sv(users)
elif command == 'waitformailbox':
gapi_directory_users.wait_for_mailbox(users)
else:
controlflow.invalid_argument_exit(command, 'gam')
except IndexError:

View File

@@ -41,3 +41,22 @@ def turn_off_2sv(users):
'turnOff',
soft_errors=True,
userKey=user)
def wait_for_mailbox(users):
'''Wait until users mailbox is provisioned.'''
cd = gapi_directory.build()
i = 0
count = len(users)
for user in users:
i += 1
user = gam.normalizeEmailAddressOrUID(user)
while True:
result = gapi.call(cd.users(),
'get',
'fields=isMailboxSetup',
userKey=user)
mailbox_is_setup = result.get('isMailboxSetup')
print(f'{user} mailboxIsSetup: {mailbox_is_setup}')
if mailbox_is_setup:
break
sleep(3)