Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/extension/src/file_handlers/ExtOutputStatusHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,10 @@ def read_file(self, seq_no):
def update_key_value_safely(self, status_json, key, value_to_update, parent_key=None):
if status_json is not None and len(status_json) != 0:
if parent_key is None:
status_json[0].update({key: value_to_update})
status_json.update({key: value_to_update})
else:
if parent_key in status_json[0]:
status_json[0].get(parent_key).update({key: value_to_update})
if parent_key in status_json:
status_json.get(parent_key).update({key: value_to_update})
else:
self.logger.log_error("Error updating config value in status file. [Config={0}]".format(key))

Expand All @@ -138,10 +138,10 @@ def update_file(self, seq_no, status=Constants.Status.Transitioning.lower(), cod
if status_json is None:
self.logger.log_error("Error processing file. [File={0}]".format(file_name))
return
self.update_key_value_safely(status_json, self.file_keys.status_status, status, self.file_keys.status_status)
self.update_key_value_safely(status_json, self.file_keys.status_code, code, self.file_keys.status_status)
self.update_key_value_safely(status_json, self.file_keys.timestamp_utc, str(datetime.datetime.utcnow().strftime(Constants.UTC_DATETIME_FORMAT)))
self.update_key_value_safely(status_json, self.file_keys.status_formatted_message_message, str(message), self.file_keys.status_formatted_message)
self.update_key_value_safely(status_json[0], self.file_keys.status_status, status, self.file_keys.status_status)
self.update_key_value_safely(status_json[0], self.file_keys.status_code, code, self.file_keys.status_status)
self.update_key_value_safely(status_json[0], self.file_keys.timestamp_utc, str(datetime.datetime.utcnow().strftime(Constants.UTC_DATETIME_FORMAT)))
self.update_key_value_safely(status_json[0][self.file_keys.status], self.file_keys.status_formatted_message_message, str(message), self.file_keys.status_formatted_message)
self.json_file_handler.write_to_json_file(self.__dir_path, file_name, status_json)
except Exception as error:
error_message = "Error in status file creation: " + repr(error)
Expand Down
15 changes: 15 additions & 0 deletions src/extension/tests/Test_ExtOutputStatusHandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,21 @@ def test_update_file(self):
self.assertNotEqual(prev_modified_time, modified_time)
updated_status_json = ext_status_handler.read_file(file_name)
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_status], self.status.Transitioning.lower())
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_name], "Azure Patch Management")
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_operation], "Assessment")
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_code], Constants.ExitCode.Okay)
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_formatted_message][self.status_file_fields.status_formatted_message_message], "")

ext_status_handler.update_file(file_name, Constants.Status.Success.lower(), Constants.ExitCode.Okay, "Test message")
stat_file_name = os.stat(os.path.join(dir_path, file_name + ".status"))
modified_time = stat_file_name.st_mtime
self.assertNotEqual(prev_modified_time, modified_time)
updated_status_json = ext_status_handler.read_file(file_name)
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_status], self.status.Success.lower())
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_name], "Azure Patch Management")
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_operation], "Assessment")
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_code], Constants.ExitCode.Okay)
self.assertEqual(updated_status_json[0][self.status_file_fields.status][self.status_file_fields.status_formatted_message][self.status_file_fields.status_formatted_message_message], "Test message")
shutil.rmtree(dir_path)

def test_add_error_to_status(self):
Expand Down