• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (C) 2015 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 #include "update_engine/update_status_utils.h"
17 
18 #include <base/logging.h>
19 #include <update_engine/dbus-constants.h>
20 
21 using update_engine::UpdateStatus;
22 
23 namespace chromeos_update_engine {
24 
UpdateStatusToString(const UpdateStatus & status)25 const char* UpdateStatusToString(const UpdateStatus& status) {
26   switch (status) {
27     case UpdateStatus::IDLE:
28       return update_engine::kUpdateStatusIdle;
29     case UpdateStatus::CHECKING_FOR_UPDATE:
30       return update_engine::kUpdateStatusCheckingForUpdate;
31     case UpdateStatus::UPDATE_AVAILABLE:
32       return update_engine::kUpdateStatusUpdateAvailable;
33     case UpdateStatus::NEED_PERMISSION_TO_UPDATE:
34       return update_engine::kUpdateStatusNeedPermissionToUpdate;
35     case UpdateStatus::DOWNLOADING:
36       return update_engine::kUpdateStatusDownloading;
37     case UpdateStatus::VERIFYING:
38       return update_engine::kUpdateStatusVerifying;
39     case UpdateStatus::FINALIZING:
40       return update_engine::kUpdateStatusFinalizing;
41     case UpdateStatus::UPDATED_NEED_REBOOT:
42       return update_engine::kUpdateStatusUpdatedNeedReboot;
43     case UpdateStatus::REPORTING_ERROR_EVENT:
44       return update_engine::kUpdateStatusReportingErrorEvent;
45     case UpdateStatus::ATTEMPTING_ROLLBACK:
46       return update_engine::kUpdateStatusAttemptingRollback;
47     case UpdateStatus::DISABLED:
48       return update_engine::kUpdateStatusDisabled;
49     case UpdateStatus::CLEANUP_PREVIOUS_UPDATE:
50       return update_engine::kUpdateStatusCleanupPreviousUpdate;
51   }
52 
53   NOTREACHED();
54   return nullptr;
55 }
56 
StringToUpdateStatus(const std::string & s,UpdateStatus * status)57 bool StringToUpdateStatus(const std::string& s, UpdateStatus* status) {
58   if (s == update_engine::kUpdateStatusIdle) {
59     *status = UpdateStatus::IDLE;
60     return true;
61   } else if (s == update_engine::kUpdateStatusCheckingForUpdate) {
62     *status = UpdateStatus::CHECKING_FOR_UPDATE;
63     return true;
64   } else if (s == update_engine::kUpdateStatusUpdateAvailable) {
65     *status = UpdateStatus::UPDATE_AVAILABLE;
66     return true;
67   } else if (s == update_engine::kUpdateStatusNeedPermissionToUpdate) {
68     *status = UpdateStatus::NEED_PERMISSION_TO_UPDATE;
69     return true;
70   } else if (s == update_engine::kUpdateStatusDownloading) {
71     *status = UpdateStatus::DOWNLOADING;
72     return true;
73   } else if (s == update_engine::kUpdateStatusVerifying) {
74     *status = UpdateStatus::VERIFYING;
75     return true;
76   } else if (s == update_engine::kUpdateStatusFinalizing) {
77     *status = UpdateStatus::FINALIZING;
78     return true;
79   } else if (s == update_engine::kUpdateStatusUpdatedNeedReboot) {
80     *status = UpdateStatus::UPDATED_NEED_REBOOT;
81     return true;
82   } else if (s == update_engine::kUpdateStatusReportingErrorEvent) {
83     *status = UpdateStatus::REPORTING_ERROR_EVENT;
84     return true;
85   } else if (s == update_engine::kUpdateStatusAttemptingRollback) {
86     *status = UpdateStatus::ATTEMPTING_ROLLBACK;
87     return true;
88   } else if (s == update_engine::kUpdateStatusDisabled) {
89     *status = UpdateStatus::DISABLED;
90     return true;
91   } else if (s == update_engine::kUpdateStatusCleanupPreviousUpdate) {
92     *status = UpdateStatus::CLEANUP_PREVIOUS_UPDATE;
93     return true;
94   }
95   return false;
96 }
97 
98 }  // namespace chromeos_update_engine
99