summaryrefslogtreecommitdiff
path: root/update_status_utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'update_status_utils.cc')
-rw-r--r--update_status_utils.cc76
1 files changed, 37 insertions, 39 deletions
diff --git a/update_status_utils.cc b/update_status_utils.cc
index 11fd2995..a702c61a 100644
--- a/update_status_utils.cc
+++ b/update_status_utils.cc
@@ -16,12 +16,32 @@
#include "update_engine/update_status_utils.h"
#include <base/logging.h>
+#include <base/strings/string_number_conversions.h>
+#include <brillo/key_value_store.h>
#include <update_engine/dbus-constants.h>
+using brillo::KeyValueStore;
+using std::string;
+using update_engine::UpdateEngineStatus;
using update_engine::UpdateStatus;
namespace chromeos_update_engine {
+namespace {
+
+// Note: Do not change these, autotest depends on these string variables being
+// exactly these matches.
+const char kCurrentOp[] = "CURRENT_OP";
+const char kIsInstall[] = "IS_INSTALL";
+const char kIsEnterpriseRollback[] = "IS_ENTERPRISE_ROLLBACK";
+const char kLastCheckedTime[] = "LAST_CHECKED_TIME";
+const char kNewSize[] = "NEW_SIZE";
+const char kNewVersion[] = "NEW_VERSION";
+const char kProgress[] = "PROGRESS";
+const char kWillPowerwashAfterReboot[] = "WILL_POWERWASH_AFTER_REBOOT";
+
+} // namespace
+
const char* UpdateStatusToString(const UpdateStatus& status) {
switch (status) {
case UpdateStatus::IDLE:
@@ -54,45 +74,23 @@ const char* UpdateStatusToString(const UpdateStatus& status) {
return nullptr;
}
-bool StringToUpdateStatus(const std::string& s, UpdateStatus* status) {
- if (s == update_engine::kUpdateStatusIdle) {
- *status = UpdateStatus::IDLE;
- return true;
- } else if (s == update_engine::kUpdateStatusCheckingForUpdate) {
- *status = UpdateStatus::CHECKING_FOR_UPDATE;
- return true;
- } else if (s == update_engine::kUpdateStatusUpdateAvailable) {
- *status = UpdateStatus::UPDATE_AVAILABLE;
- return true;
- } else if (s == update_engine::kUpdateStatusNeedPermissionToUpdate) {
- *status = UpdateStatus::NEED_PERMISSION_TO_UPDATE;
- return true;
- } else if (s == update_engine::kUpdateStatusDownloading) {
- *status = UpdateStatus::DOWNLOADING;
- return true;
- } else if (s == update_engine::kUpdateStatusVerifying) {
- *status = UpdateStatus::VERIFYING;
- return true;
- } else if (s == update_engine::kUpdateStatusFinalizing) {
- *status = UpdateStatus::FINALIZING;
- return true;
- } else if (s == update_engine::kUpdateStatusUpdatedNeedReboot) {
- *status = UpdateStatus::UPDATED_NEED_REBOOT;
- return true;
- } else if (s == update_engine::kUpdateStatusReportingErrorEvent) {
- *status = UpdateStatus::REPORTING_ERROR_EVENT;
- return true;
- } else if (s == update_engine::kUpdateStatusAttemptingRollback) {
- *status = UpdateStatus::ATTEMPTING_ROLLBACK;
- return true;
- } else if (s == update_engine::kUpdateStatusDisabled) {
- *status = UpdateStatus::DISABLED;
- return true;
- } else if (s == update_engine::kUpdateStatusCleanupPreviousUpdate) {
- *status = UpdateStatus::CLEANUP_PREVIOUS_UPDATE;
- return true;
- }
- return false;
+string UpdateEngineStatusToString(const UpdateEngineStatus& status) {
+ KeyValueStore key_value_store;
+
+ key_value_store.SetString(kLastCheckedTime,
+ base::NumberToString(status.last_checked_time));
+ key_value_store.SetString(kProgress, base::NumberToString(status.progress));
+ key_value_store.SetString(kNewSize,
+ base::NumberToString(status.new_size_bytes));
+ key_value_store.SetString(kCurrentOp, UpdateStatusToString(status.status));
+ key_value_store.SetString(kNewVersion, status.new_version);
+ key_value_store.SetBoolean(kIsEnterpriseRollback,
+ status.is_enterprise_rollback);
+ key_value_store.SetBoolean(kIsInstall, status.is_install);
+ key_value_store.SetBoolean(kWillPowerwashAfterReboot,
+ status.will_powerwash_after_reboot);
+
+ return key_value_store.SaveToString();
}
} // namespace chromeos_update_engine