mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
wait_for_mailbox command to ensure user has mailbox before attempting Gmail commands.
This commit is contained in:
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
@@ -252,8 +252,8 @@ jobs:
|
|||||||
$gam csv sample.csv gam update group $newgroup add member ~email
|
$gam csv sample.csv gam update group $newgroup add member ~email
|
||||||
$gam info group $newgroup
|
$gam info group $newgroup
|
||||||
$gam user $gam_user check serviceaccount
|
$gam user $gam_user check serviceaccount
|
||||||
# confirm mailbox is working before continuing
|
# confirm mailbox is provisoned before continuing
|
||||||
rc=0; while [ "${rc}" == "0" ]; do $gam user $newuser show labels 2>&1 | grep ERROR; rc=$?; done
|
$gam user $newuser wait_for_mailbox
|
||||||
$gam user $newuser imap on
|
$gam user $newuser imap on
|
||||||
$gam user $newuser show imap
|
$gam user $newuser show imap
|
||||||
$gam user $newuser delegate to "${newbase}-bulkuser-01"
|
$gam user $newuser delegate to "${newbase}-bulkuser-01"
|
||||||
@@ -268,10 +268,10 @@ jobs:
|
|||||||
$gam user $gam_user insertemail subject "GHA insert $newbase" file gam.py labels INBOX,UNREAD # yep body is gam code
|
$gam user $gam_user insertemail subject "GHA insert $newbase" file gam.py labels INBOX,UNREAD # yep body is gam code
|
||||||
$gam user $gam_user sendemail subject "GHA send $gam_user $newbase" file gam.py recipient admin@pdl.jaylee.us
|
$gam user $gam_user sendemail subject "GHA send $gam_user $newbase" file gam.py recipient admin@pdl.jaylee.us
|
||||||
$gam user $gam_user draftemail subject "GHA draft $newbase" message "Draft message test"
|
$gam user $gam_user draftemail subject "GHA draft $newbase" message "Draft message test"
|
||||||
|
$gam csv sample.csv gam user ~email wait_for_mailbox
|
||||||
$gam users "$gam_user $newbase-bulkuser-01 $newbase-bulkuser-02 $newbase-bulkuser-03" delete messages query in:anywhere maxtodelete 99999 doit
|
$gam users "$gam_user $newbase-bulkuser-01 $newbase-bulkuser-02 $newbase-bulkuser-03" delete messages query in:anywhere maxtodelete 99999 doit
|
||||||
$gam users "$newbase-bulkuser-04 $newbase-bulkuser-05 $newbase-bulkuser-06" trash messages query in:anywhere maxtotrash 99999 doit
|
$gam users "$newbase-bulkuser-04 $newbase-bulkuser-05 $newbase-bulkuser-06" trash messages query in:anywhere maxtotrash 99999 doit
|
||||||
# disabling as we see a lot of errors here
|
$gam users "$newbase-bulkuser-07 $newbase-bulkuser-08 $newbase-bulkuser-09" modify messages query in:anywhere maxtomodify 99999 addlabel IMPORTANT addlabel STARRED doit
|
||||||
# $gam users "$newbase-bulkuser-07 $newbase-bulkuser-08 $newbase-bulkuser-09" modify messages query in:anywhere maxtomodify 99999 addlabel IMPORTANT addlabel STARRED doit
|
|
||||||
$gam user $newuser delete label --ALL_LABELS--
|
$gam user $newuser delete label --ALL_LABELS--
|
||||||
$gam create feature name Whiteboard-$newbase
|
$gam create feature name Whiteboard-$newbase
|
||||||
$gam create feature name VC-$newbase
|
$gam create feature name VC-$newbase
|
||||||
|
|||||||
@@ -11937,6 +11937,8 @@ def ProcessGAMCommand(args):
|
|||||||
gapi_directory_users.signout(users)
|
gapi_directory_users.signout(users)
|
||||||
elif command == 'turnoff2sv':
|
elif command == 'turnoff2sv':
|
||||||
gapi_directory_users.turn_off_2sv(users)
|
gapi_directory_users.turn_off_2sv(users)
|
||||||
|
elif command == 'waitformailbox':
|
||||||
|
gapi_directory_users.wait_for_mailbox(users)
|
||||||
else:
|
else:
|
||||||
controlflow.invalid_argument_exit(command, 'gam')
|
controlflow.invalid_argument_exit(command, 'gam')
|
||||||
except IndexError:
|
except IndexError:
|
||||||
|
|||||||
@@ -41,3 +41,22 @@ def turn_off_2sv(users):
|
|||||||
'turnOff',
|
'turnOff',
|
||||||
soft_errors=True,
|
soft_errors=True,
|
||||||
userKey=user)
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user