Anyone else seeing this in their environments? I have the blue “Identity data is being processed” banner on my Identity Profiles in both dev and prod tenants, but when I click the View button/go to the Monitor page, there are no MENTOS tasks or any other activity that would typically be reflective of an identity refresh or the like. This is preventing me from making any updates to my identity profile, because you can’t make changes while identity tasks are being processed.
Throwing it out here in case anyone else is experiencing this. Figured maybe something fell over during yesterdays outage and didn’t get picked up, but wanted to see if this was just me before opening a ticket.
Thanks for the pointer, @MVKR7T! Unfortunately, the beta endpoint to update the status doesn’t appear to be working at the moment (see error below) but I was able to identify a stuck aggregation that started around 2pm my time yesterday (which lines up with the outage). I’ve asked my Advisory Services team to sort it out for me on their end.
I tried following the document and created a python script to identify the stuck processes. My processes that are stuck are displaying in the JSON response. They are dated from May 14th. However, trying to clear them doesn’t seem to be working. Below is the code I’m using… I didn’t include the auth pieces of the code. My status on trying to clear the logic was to just clear all processes initially, I wrote this for a sandbox and is considered for testing only.
Anybody have a script to clear processes?
Here is a sample output of displaying the key values for the processes
Extracted Information:
Task ID: 16a69d685f6e4d989dab8a6048e7b2ca
Target Name: Amina Example
Created Date: 2024-05-14T18:55:05.020Z
Modified Date: 2024-05-14T18:55:05.173Z
Task ID: 2676d16e191d41ea9047836383b52cfa
Target Name: Kelly example
Created Date: 2024-05-14T18:55:05.064Z
Modified Date: 2024-05-14T18:55:05.220Z
Task ID: 2a3bc752797c4be8a18ce19aeec7230f
Target Name: Richard example
Created Date: 2024-05-14T18:55:05.070Z
Modified Date: 2024-05-14T18:55:05.230Z
#Check for Processes
def list_task_results():
url = f"{base_url}/beta/task-status/pending-tasks"
response = requests.get(url, headers=headers)
response.raise_for_status()
return response.json()
def print_json_data(task_results):
# List task results
print("Task Results (JSON):")
print(json.dumps(task_results, indent=2))
def stop_all_processes(task_results):
for task in task_results:
if task.get('type') == 'QUARTZ':
task_id = task.get('id')
stop_all_headers = {
'Authorization': f'Bearer {access_token}',
'Content-Type': 'application/json-patch+json'
}
stop_all_body = {
"op": "replace",
"path": "/completionStatus",
"value": "Success"
}
json_body = json.dumps(stop_all_body)
stop_all_url = f"{base_url}/beta/task-status/{task_id}"
stop_all_response = requests.get(stop_all_url, headers=stop_all_headers, data=json_body)
print(stop_all_response.status_code)
set_completed_body = {
"op": "replace",
"path": "/completed",
"value": "2024-05-27T01:01:01.0101"
}
json_body = json.dumps(set_completed_body)
set_status = requests.get(stop_all_url, headers=stop_all_headers, data=json_body)
print(set_status.status_code)
def display_extracted_information(task_results):
# Extract key information from each task result
for task in task_results:
if task.get('type') == 'QUARTZ':
task_id = task.get('id')
target = task.get('target')
target_name = target.get('name') if target else 'N/A'
created_date = task.get('created')
modified_date = task.get('modified')
task_ids.append(task_id)
target_names.append(target_name)
created_dates.append(created_date)
modified_dates.append(modified_date)
# Print extracted information
print("\nExtracted Information:")
for i in range(len(task_ids)):
print(f"Task ID: {task_ids[i]}")
print(f"Target Name: {target_names[i]}")
print(f"Created Date: {created_dates[i]}")
print(f"Modified Date: {modified_dates[i]}")
print("-" * 40)
def main():
task_results = list_task_results()
while True:
print("\nMenu:")
print("1. Print JSON data")
print("2. Display extracted information from JSON")
print("3. Stop All Processes")
print("4. Exit Application")
choice = input("Please enter your choice (1/2/3/4): ")
if choice == '1':
print_json_data(task_results)
elif choice == '2':
display_extracted_information(task_results)
elif choice == '3':
stop_all_processes(task_results)
elif choice == '4':
print("Exit Application")
break
else:
print("Invalid choice. Please enter 1, 2, or 3.")
if __name__ == "__main__":
main()