Implement update_engine weave commands
The new WeaveServiceInterface abstracs the registration and interaction
with weave whenever present. The compilation and usage of weave is
based on the BRILLO_USE_WEAVE flag.
When enabled, update_engine registers the "_updater" component with
methods to force-check for an update and change channels.
Bug: 24386758
Bug: 24386768
Test: Deployed on edison, weave commands and state available online.
Change-Id: Ic49111772e123b8a2b1971da92fe65785f186ccd
diff --git a/update_status_utils.cc b/update_status_utils.cc
index ff039b8..9685853 100644
--- a/update_status_utils.cc
+++ b/update_status_utils.cc
@@ -20,6 +20,21 @@
using update_engine::UpdateStatus;
+namespace {
+
+const char kWeaveStatusIdle[] = "idle";
+const char kWeaveStatusCheckingForUpdate[] = "checkingForUpdate";
+const char kWeaveStatusUpdateAvailable[] = "updateAvailable";
+const char kWeaveStatusDownloading[] = "downloading";
+const char kWeaveStatusVerifying[] = "verifying";
+const char kWeaveStatusFinalizing[] = "finalizing";
+const char kWeaveStatusUpdatedNeedReboot[] = "updatedNeedReboot";
+const char kWeaveStatusReportingErrorEvent[] = "reportingErrorEvent";
+const char kWeaveStatusAttemptingRollback[] = "attemptingRollback";
+const char kWeaveStatusDisabled[] = "disabled";
+
+} // namespace
+
namespace chromeos_update_engine {
const char* UpdateStatusToString(const UpdateStatus& status) {
@@ -50,6 +65,34 @@
return nullptr;
}
+const char* UpdateStatusToWeaveStatus(const UpdateStatus& status) {
+ switch (status) {
+ case UpdateStatus::IDLE:
+ return kWeaveStatusIdle;
+ case UpdateStatus::CHECKING_FOR_UPDATE:
+ return kWeaveStatusCheckingForUpdate;
+ case UpdateStatus::UPDATE_AVAILABLE:
+ return kWeaveStatusUpdateAvailable;
+ case UpdateStatus::DOWNLOADING:
+ return kWeaveStatusDownloading;
+ case UpdateStatus::VERIFYING:
+ return kWeaveStatusVerifying;
+ case UpdateStatus::FINALIZING:
+ return kWeaveStatusFinalizing;
+ case UpdateStatus::UPDATED_NEED_REBOOT:
+ return kWeaveStatusUpdatedNeedReboot;
+ case UpdateStatus::REPORTING_ERROR_EVENT:
+ return kWeaveStatusReportingErrorEvent;
+ case UpdateStatus::ATTEMPTING_ROLLBACK:
+ return kWeaveStatusAttemptingRollback;
+ case UpdateStatus::DISABLED:
+ return kWeaveStatusDisabled;
+ }
+
+ NOTREACHED();
+ return nullptr;
+}
+
bool StringToUpdateStatus(const std::string& s,
UpdateStatus* status) {
if (s == update_engine::kUpdateStatusIdle) {