update_engine: added CanRollback dbus method
Added a method to the update engine to check if a rollback
partition is available and can be booted from.
update_engine_client is also updated to call the function
when --can_rollback paramater is specified
BUG=chromium:343301
TEST=Ran "update_engine_client --can_rollback" and unit tests
Change-Id: If3fcb29a0067069a22812f60e9b67c6fdbbd18bd
Reviewed-on: https://chromium-review.googlesource.com/187157
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/dbus_service.cc b/dbus_service.cc
index f75823c..5562f4e 100644
--- a/dbus_service.cc
+++ b/dbus_service.cc
@@ -192,6 +192,16 @@
return TRUE;
}
+gboolean update_engine_service_can_rollback(UpdateEngineService* self,
+ gboolean* out_can_rollback,
+ GError **error)
+{
+ LOG(INFO) << "Checking for a rollback partition.";
+ *out_can_rollback = self->system_state_->update_attempter()->CanRollback();
+ return TRUE;
+}
+
+
gboolean update_engine_service_reset_status(UpdateEngineService* self,
GError **error) {
if (!self->system_state_->update_attempter()->ResetStatus()) {