| // Copyright 2022 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef RMAD_LOGS_LOGS_UTILS_H_ | |
| #define RMAD_LOGS_LOGS_UTILS_H_ | |
| #include <string> | |
| #include <utility> | |
| #include <vector> | |
| #include <base/memory/scoped_refptr.h> | |
| #include "rmad/logs/logs_constants.h" | |
| #include "rmad/proto_bindings/rmad.pb.h" | |
| #include "rmad/utils/json_store.h" | |
| namespace rmad { | |
| // Return detailed text of all log events. | |
| std::string GenerateLogsText(scoped_refptr<JsonStore> json_store); | |
| // Return a formatted JSON of all log events. | |
| std::string GenerateLogsJson(scoped_refptr<JsonStore> json_store); | |
| // Adds a state transition type event to `json_store`. Returns true if | |
| // successful. | |
| bool RecordStateTransitionToLogs(scoped_refptr<JsonStore> json_store, | |
| RmadState::StateCase from_state, | |
| RmadState::StateCase to_state); | |
| // Adds the occurred error to `json_store`. Returns true if successful. | |
| bool RecordOccurredErrorToLogs(scoped_refptr<JsonStore> json_store, | |
| RmadState::StateCase current_state, | |
| RmadErrorCode error); | |
| // Adds the start of the repair to `json_store`. Checks to see if the repair | |
| // start was previously recorded to avoid duplication. Returns true if | |
| // successful. | |
| bool RecordRepairStartToLogs(scoped_refptr<JsonStore> json_store); | |
| // Adds the unqualified components (if any) to `json_store`. Returns true if | |
| // successful. | |
| bool RecordUnqualifiedComponentsToLogs( | |
| scoped_refptr<JsonStore> json_store, | |
| bool is_compliant, | |
| const std::string& unqualified_components); | |
| // Adds the selected repair components to `json_store`. Returns true if | |
| // successful. | |
| bool RecordSelectedComponentsToLogs( | |
| scoped_refptr<JsonStore> json_store, | |
| const std::vector<std::string>& replaced_components, | |
| bool is_mlb_repair); | |
| // Adds the device destination to `json_store`. Returns true if successful. | |
| bool RecordDeviceDestinationToLogs(scoped_refptr<JsonStore> json_store, | |
| const std::string& device_destination); | |
| // Adds the wipe device decision to `json_store`. Returns true if successful. | |
| bool RecordWipeDeviceToLogs(scoped_refptr<JsonStore> json_store, | |
| bool wipe_device); | |
| // Adds the wp disable method to `json_store`. Returns true if successful. | |
| bool RecordWpDisableMethodToLogs(scoped_refptr<JsonStore> json_store, | |
| const std::string& wp_disable_method); | |
| // Adds the RSU challenge code to `json_store`. Returns true if successful. | |
| bool RecordRsuChallengeCodeToLogs(scoped_refptr<JsonStore> json_store, | |
| const std::string& challenge_code, | |
| const std::string& hwid); | |
| // Adds the restock option to `json_store`. Returns true if successful. | |
| bool RecordRestockOptionToLogs(scoped_refptr<JsonStore> json_store, | |
| bool restock); | |
| // Adds the calibration setup instruction to `json_store`. Returns true if | |
| // successful. | |
| bool RecordCalibrationSetupInstructionToLogs( | |
| scoped_refptr<JsonStore> json_store, | |
| CalibrationSetupInstruction instruction); | |
| // Adds the components calibration statuses to `json_store`. Returns true if | |
| // successful. | |
| bool RecordComponentCalibrationStatusToLogs( | |
| scoped_refptr<JsonStore> json_store, | |
| const std::vector<std::pair<std::string, LogCalibrationStatus>>& | |
| component_statuses); | |
| // Adds the firmware update status updates to `json_store`. Checks to see if the | |
| // firmware update complete was already recorded to avoid duplication. Returns | |
| // true if successful. | |
| bool RecordFirmwareUpdateStatusToLogs(scoped_refptr<JsonStore> json_store, | |
| FirmwareUpdateStatus status); | |
| } // namespace rmad | |
| #endif // RMAD_LOGS_LOGS_UTILS_H_ |