AERPAW event triggers to create new request, message or email objects
All emails are shown as sent by the AERPAW Ops email address denoted by: EMAIL_ADMIN_USER
Unless the AERPAW Ops account is actively participating in projects it should not receive any emails defined below (it should only be the sender)
User account
Account creation
[x] Create new user account
Create: message
Create: email (contents show below)
Notes:
Logged in User is creating his/her own account, and they are the one who gets the message and the mail.
Q: From him/herself? Or from AERPAW Ops?
A: from AERPAW Ops assuming EMAIL_ADMIN_USER matches the appropriate email address
Q: Should/Does AERPAW Ops also get mail?
A: No, since this information will already be found in the "Sent" folder
message_subject = '[AERPAW] Welcome {0} to the AERPAW portal!'.format(user.display_name)
message_body = """
Hi {0},
Welcome to the AERPAW Portal
User manuals, tutorials, and other relevant documentation can be found at the following links;
please refer to relevant instructions before attempting to use this Portal.
- AERPAW Main Site: https://aerpaw.org/
- AERPAW User Manual: https://sites.google.com/ncsu.edu/aerpaw-wiki/
- AERPAW Acceptable Use Policy: https://sites.google.com/ncsu.edu/aerpaw-wiki/aerpaw-user-manual/2-experiment-web-portal/2-5-acceptable-use-policy-aup
Thank you for joining AERPAW,
- AERPAW Ops
""".format(user.display_name)
Role requests
[x] Request Experimenter role
Create: request
Create: message
Create: email (contents show below)
Notes:
Q: Logged in User is creating his/her own account, and they are the one who gets the message and the mail.
A: Logged in user gets message and email
Q: Is approval automatic? Or does AERPAW Ops need to approve ? (In latter case, they also need to get a mail)
A: only site_admin can approve the request - all users with site_admin will get the request, message, and email
message_subject = '[AERPAW] Request for Experimenter role: {0}'.format(user_display_name)
message_body = """
Hi {0},
Your request to be granted the role of Experimenter has been forwarded to AERPAW Ops.
You will receive another email when your request has been addressed.
As noted in the AERPAW User Manual, this can take a variable amount of time, from minutes to hours.
""".format(user_display_name)
[x] Response Experimenter role
Update: request
Create: message
Create: email (contents show below)
Notes:
Q: This is when AERPAW Ops approves/declines? Or automatic approval?
A: site_admin role approves/denies request manually from portal - this updates the request object
Q: Mail goes to User who requested Experimenter role.
A: message and email go originating User as well as all site_admin role holders
message_subject = '[AERPAW] re: Request for Experimenter role: {0}'.format(user_display_name)
message_body = """
Hi {0},
Your request to be granted the role of Experimenter has been {1}.
Note: {2}
""".format(user_display_name,
'Approved' if str(user_request.get('is_approved')).casefold() in ['true'] else 'Denied',
user_request.get('response_note'))
[x] Request PI role
Create: request
Create: message
Create: email (contents show below)
Notes:
Q: Requires approval by AERPAW Ops.
A: User request is sent to all users with site_admin role for approval
Q: Mail must go to both Ops and User making the request
A: message and email go originating User as well as all site_admin role holders
message_subject = '[AERPAW] Request for PI role: {0}'.format(user_display_name)
message_body = """
Hi {0},
Your request to be granted the role of Principal Investigator has been forwarded to AERPAW Ops.
You will receive another email when your request has been addressed.
As noted in the AERPAW User Manual, this can take a variable amount of time, from minutes to hours.
""".format(user_display_name)
[x] Response PI role
Update: request
Create: message
Create: email (contents show below)
Notes:
Q: Mail should go from AERPAW Ops to User whose request is being approved/denied.
A: site_admin role approves/denies request manually from portal - this updates the request object
Q: (Copy to AERPAW Ops is not critical, but does not hurt to have)
A: message and email go originating User as well as all site_admin role holders
message_subject = '[AERPAW] re: Request for PI role: {0}'.format(user_display_name)
message_body = """
Hi {0},
Your request to be granted the role of Principal Investigator has been {1}.
Note: {2}
""".format(user_display_name,
'Approved' if str(user_request.get('is_approved')).casefold() in ['true'] else 'Denied',
user_request.get('response_note'))
Project workflows
Membership
[x] Add project member/owner
Create: message
Create: email (contents show below)
Notes:
Q: Message/mail must go to User being added
A: message and email sent to user and all project Owners
message_subject = '[AERPAW] {0} added to Project: {1} as {2}'.format(user_display_name, project.name, membership_type)
message_body = """
Hi {0},
You have been added to Project: {1} as {2}
""".format(user_display_name, project.name, membership_type)
[x] Remove project member/owner
Create: message
Create: email (contents show below)
Notes:
Q: Message/mail must go to User being removed
A: message and email sent to user and all project Owners
message_subject = '[AERPAW] {0} removed from Project: {1} as {2}'.format(user_display_name, project.name, membership_type)
message_body = """
Hi {0},
You have been removed from Project: {1} as {2}
""".format(user_display_name, project.name, membership_type)
[x] Request to join project
Create: request
Create: message
Create: email (contents show below)
Notes:
Q: Mail must go to Project Owner (copy to User generating request, as usual)
A: request, message and email sent to user and all project Owners
message_subject = '[AERPAW] Request to join Project: {0}'.format(project_name)
message_body = """
Hi {0},
Your request to join the Project: {1} has been forwarded to the owners of this project.
You will receive an email confirmation once one of the Project Owners has approved/denied this request.
""".format(user_display_name, project_name)
[x] Response to join project
Update: request
Create: message
Create: email (contents show below)
Notes:
Q: Mail must go to User that requested to join (copy to Project Owner, as usual)
A: request is updated and message and email sent to user and all project Owners
message_subject = '[AERPAW] re: Request to join Project: {0}'.format(project_name)
message_body = """
Hi {0},
Your request to join the Project: {1} has been {2}.
Note: {3}
""".format(user_display_name,
project_name,
'Approved' if str(user_request.get('is_approved')).casefold() in ['true'] else 'Denied',
user_request.get('response_note'))
Experiment workflows
Membership
[x] Add experiment member
Create: message
Create: email (contents show below)
Notes:
Q: Message/mail must go to User being added/removed
A: works the same way as projects
Q: Also, generate notification message/mail to Project Creator, and all Owners
A: works the same way as projects
message_subject = '[AERPAW] {0} added to Experiment: {1} as Member'.format(user_display_name, experiment.name)
message_body = """
Hi {0},
You have been added to Experiment: {1} as Member
""".format(user_display_name, experiment.name)
[x] Remove experiment member
Create: message
Create: email (contents show below)
Notes:
Q: Message/mail must go to User being added/removed
A: works the same way as projects
Q: Also, generate notification message/mail to Project Creator, and all Owners
A: works the same way as projects
message_subject = '[AERPAW] {0} removed from Experiment: {1} as Member'.format(user_display_name, experiment.name)
message_body = """
Hi {0},
You have been removed from Experiment: {1} as Member
""".format(user_display_name, experiment.name)
[x] Request to join experiment
Create: request
Create: message
Create: email (contents show below)
Notes:
Q: Mail must go to Experiments Owners (copy to User generating request, as usual)
A: works the same way as projects
message_subject = '[AERPAW] Request to join Experiment: {0}'.format(experiment_name)
message_body = """
Hi {0},
Your request to join the Experiment: {1} has been forwarded to the members of this experiment.
You will receive an email confirmation once one of the Experiment Members has approved/denied this request.
""".format(user_display_name, experiment_name)
[x] Response to join experiment
Update: request
Create: message
Create: email (contents show below)
Notes:
Q: Mail must go to User that requested to join (copy to Experiment Owners, as usual)
A: works the same way as projects
message_subject = '[AERPAW] re: Request to join Experiment: {0}'.format(experiment_name)
message_body = """
Hi {0},
Your request to join the Experiment: {1} has been {2}.
Note: {3}
""".format(user_display_name,
experiment_name,
'Approved' if str(user_request.get('is_approved')).casefold() in ['true'] else 'Denied',
user_request.get('response_note'))
Development
[x] Initiate Development
Create: message
Create: email (contents show below)
Notes:
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to logged in User, and also Project Creator, and all Owners
# - notify: experiment_members
message_subject = '[AERPAW] Request to initiate development session for Experiment: {0}'.format(experiment.name)
message_body = """
Your request to initiate a development session for the experiment: {0} has been forwarded to AERPAW Ops.
When the Development Session is ready for you, you will receive another email with access info.
As noted in the AERPAW User Manual, this can take a variable amount of time, from minutes to hours.
""".format(experiment.name)
# - notify: experiment_members
message_subject = '[AERPAW] Development session for Experiment: {0} is active'.format(experiment.name)
message_body = """
Your development session for the experiment: {0} is ready for use.
""".format(experiment.name)
[x] Save
Create: message
Create: email
Notes:
When Save is initiated, message and mail must be generated to logged-in User
Ideally, a different message/mail would be generated to logged-in User when Save is completed. Is there a way to detect and execute?
# - notify: experiment_members
message_subject = '[AERPAW] Saving development environment for Experiment: {0}'.format(experiment.name)
message_body = """
Saving experiment: {0}
As noted in the AERPAW User Manual, this can take a variable amount of time, from minutes to hours.
""".format(experiment.name)
[x] Save & Exit
Create: message
Create: email
Notes:
When Save&Exit is initiated, message and mail must be generated to User, and Project Creator/Owners, and also to AERPAW Ops.
Ideally, a different message/mail would be generated to logged-in User (and Project Creator/Owners, and Ops) when Save is completed. Is there a way to detect and execute?
# - notify: experiment_members
message_subject = '[AERPAW] Saving development environment for Experiment: {0}'.format(experiment.name)
message_body = """
Saving experiment: {0}
As noted in the AERPAW User Manual, this can take a variable amount of time, from minutes to hours.
""".format(experiment.name)
# - notify: experiment_members, operators
message_subject = '[AERPAW] Development session for Experiment: {0} has been ended'.format(experiment.name)
message_body = """
Development session for Experiment: {0} has been ended and the experiment saved.
""".format(experiment.name)
Sandbox
[ ] Submit to Sandbox
Create: message
Create: email
Notes:
Generate message/email to AERPAW Ops
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to Project
[ ] Schedule Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following conclusion of out-of-band interaction with
Experimenter)
Generate message/email to User who requested the Session (who executed the Submit to Sandbox workflow) and Project Creator and Owners
[ ] Start Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following arrival of scheduled time)
Generate message/email to User who requested the Session (who executed the Submit to Sandbox workflow) and Project Creator and Owners
[ ] Cancel
Create: message
Create: email
Notes:
Generate message/email to AERPAW Ops
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to Project Creator, and all Owners
[ ] Save
Create: message
Create: email
Notes:
When Save is initiated, message and mail must be generated to logged-in User
Ideally, a different message/mail would be generated to logged-in User when Save is completed. Is there a way to detect and execute?
[ ] Save & Exit
Create: message
Create: email
Notes:
When Save&Exit is initiated, message and mail must be generated to User, and Project Creator/Owners, and also to AERPAW Ops.
Ideally, a different message/mail would be generated to logged-in User (and Project Creator/Owners, and Ops) when Save is completed. Is there a way to detect and execute?
[ ] End Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following end of scheduled time)
Generate message/email to User who requested the Session (who executed the Submit to Sandbox workflow) and Project Creator and Owners
Emulation
[ ] Submit to Emulation
Create: message
Create: email
Notes:
Generate message/email to AERPAW Ops
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to Project Creator, and all Owners
[ ] Schedule Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow
Generate message/email to User who requested the Session (who executed the Submit to Emulation workflow) and Project Creator and Owners
[ ] Start Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following arrival of scheduled time)
Generate message/email to User who requested the Session (who executed the Submit to Emulation workflow) and Project Creator and Owners
[ ] Cancel
Create: message
Create: email
Notes:
Generate message/email to AERPAW Ops
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to Project Creator, and all Owners
[ ] End Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following end of scheduled time)
Generate message/email to User who requested the Session (who executed the Submit to Emulation workflow) and Project Creator and Owners
Testbed
[x] Submit to Testbed
Create: message
Create: email (contents show below)
Notes:
Generate message/email to AERPAW Ops
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to Project Creator, and all Owners
# Submit to Testbed - button pressed by user - no emulation required
# - notify: experiment_members, operators
message_subject = '[AERPAW] Request to submit to testbed for Experiment: {0}'.format(experiment.name)
message_body = """
Your request to submit your experiment {0} for testbed execution has been forwarded to AERPAW Ops.
Your experiment may require Emulation prior to opportunistic scheduling and subsequent execution on the Testbed.
When the Testbed Execution is complete, you will receive another email.
As noted in the AERPAW User Manual, this can take a variable amount of time, typically several days.
Experiment ID: {1}
Experiment UUID: {2}
""".format(experiment.name, str(experiment.id), str(experiment.uuid))
# Submit to Testbed - button pressed by user - emulation required
# - notify: experiment_members, operators
message_subject = '[AERPAW] Request to submit to testbed for Experiment: {0} (Emulation Required)'.format(experiment.name)
message_body = """
Your request to submit your experiment {0} for testbed execution has been forwarded to AERPAW Ops.
Your experiment requires Emulation prior to opportunistic scheduling and subsequent execution on the Testbed.
When the Testbed Execution is complete, you will receive another email.
As noted in the AERPAW User Manual, this can take a variable amount of time, typically several days.
Experiment ID: {1}
Experiment UUID: {2}
""".format(experiment.name, str(experiment.id), str(experiment.uuid))
[x] Schedule Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow
Generate message/email to User who requested the Session (who executed the Submit to Testbed workflow) and Project Creator and Owners
# Submit to Testbed - session is scheduled and awaiting execution on testbed
# - notify: experiment_members, operators
message_subject = '[AERPAW] Update for request to submit to testbed for Experiment: {0}'.format(experiment.name)
message_body = """
Your experiment {0} has been scheduled and is now awaiting execution on the Testbed.
When the Testbed Execution is complete, you will receive another email.
As noted in the AERPAW User Manual, this can take a variable amount of time, typically several days.
Experiment ID: {1}
Experiment UUID: {2}
""".format(experiment.name, str(experiment.id), str(experiment.uuid))
[x] Start Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following arrival of scheduled time)
Generate message/email to User who requested the Session (who executed the Submit to Testbed workflow) and Project Creator and Owners
# Submit to Testbed - session is being actively executed on the testbed
# - notify: experiment_members, operators
message_subject = '[AERPAW] Update - Experiment: {0} is now active on the testbed'.format(experiment.name)
message_body = """
Your experiment {0} is presently being executed on the Testbed.
When the Testbed Execution is complete, you will receive another email.
As noted in the AERPAW User Manual, this can take a variable amount of time.
Experiment ID: {1}
Experiment UUID: {2}
""".format(experiment.name, str(experiment.id), str(experiment.uuid))
[x] Cancel
Create: message
Create: email
Notes:
Generate message/email to AERPAW Ops
Logged in User may or may not be Project Creator or Owner - who need to be informed
Generate notification message/mail to Project Creator, and all Owners
# Testbed execution cancelled - Testbed session has been cancelled
# - notify: experiment_members, operators
message_subject = '[AERPAW] Update - Experiment: {0} has been cancelled'.format(experiment.name)
message_body = """
Testbed execution for experiment {0} has been cancelled.
Experiment ID: {1}
Experiment UUID: {2}
""".format(experiment.name, str(experiment.id), str(experiment.uuid))
[x] End Session
Create: message
Create: email
Notes:
AERPAW Ops does this in current envisioned workflow (following end of scheduled time)
Generate message/email to User who requested the Session (who executed the Submit to Testbed workflow) and Project Creator and Owners
# Testbed execution completed - experiment has returned from testbed
# - notify: experiment_members, operators
message_subject = '[AERPAW] Update - Experiment: {0} has returned from testbed'.format(experiment.name)
message_body = """
Your experiment {0} has returned from testbed execution.
Experiment ID: {1}
Experiment UUID: {2}
""".format(experiment.name, str(experiment.id), str(experiment.uuid))
AERPAW event triggers to create new
request
,message
oremail
objectsEMAIL_ADMIN_USER
User account
Account creation
message
email
(contents show below)EMAIL_ADMIN_USER
matches the appropriate email addressRole requests
request
message
email
(contents show below)site_admin
can approve the request - all users withsite_admin
will get the request, message, and emailrequest
message
email
(contents show below)site_admin
role approves/denies request manually from portal - this updates the request objectsite_admin
role holdersrequest
message
email
(contents show below)site_admin
role for approvalsite_admin
role holdersrequest
message
email
(contents show below)site_admin
role approves/denies request manually from portal - this updates the request objectsite_admin
role holdersProject workflows
Membership
message
email
(contents show below)message
email
(contents show below)request
message
email
(contents show below)request
message
email
(contents show below)Experiment workflows
Membership
message
email
(contents show below)message
email
(contents show below)request
message
email
(contents show below)request
message
email
(contents show below)Development
message
email
(contents show below)message
email
message
email
Sandbox
[ ] Submit to Sandbox
message
email
[ ] Schedule Session
message
email
[ ] Start Session
message
email
[ ] Cancel
message
email
[ ] Save
message
email
[ ] Save & Exit
message
email
[ ] End Session
message
email
Emulation
[ ] Submit to Emulation
message
email
[ ] Schedule Session
message
email
[ ] Start Session
message
email
[ ] Cancel
message
email
[ ] End Session
message
email
Testbed
message
email
(contents show below)message
email
message
email
message
email
message
email