AU: Implement getting of tracks through GetTrack.
Add SetTrack and GetTrack to UpdateEngine.xml as well.
BUG=chromium-os:8104
TEST=tested on device with update_engine_client
Change-Id: I10ef2552e9280524b3a8d5f232d104a81a114e06
Review URL: http://codereview.chromium.org/4181001
diff --git a/update_engine_client.cc b/update_engine_client.cc
index 20c86a5..c0b61fe 100644
--- a/update_engine_client.cc
+++ b/update_engine_client.cc
@@ -26,6 +26,7 @@
DEFINE_bool(check_for_update, false, "Initiate check for updates.");
DEFINE_string(omaha_url, "", "The URL of the Omaha update server.");
DEFINE_bool(reboot, false, "Initiate a reboot if needed.");
+DEFINE_bool(show_track, false, "Show the update track.");
DEFINE_bool(status, false, "Print the status to stdout.");
DEFINE_string(track, "", "Permanently change the update track.");
DEFINE_bool(update, false, "Forces an update and waits for its completion. "
@@ -192,6 +193,24 @@
LOG(INFO) << "Track permanently set to: " << track;
}
+string GetTrack() {
+ DBusGProxy* proxy;
+ GError* error = NULL;
+
+ CHECK(GetProxy(&proxy));
+
+ char* track = NULL;
+ gboolean rc =
+ org_chromium_UpdateEngineInterface_get_track(proxy,
+ &track,
+ &error);
+ CHECK_EQ(rc, true) << "Error getting the track: "
+ << GetGErrorMessage(error);
+ string output = track;
+ g_free(track);
+ return output;
+}
+
static gboolean CompleteUpdateSource(gpointer data) {
string current_op;
if (!GetStatus(¤t_op) || current_op == "UPDATE_STATUS_IDLE") {
@@ -239,6 +258,11 @@
SetTrack(FLAGS_track);
}
+ // Show the track if requested.
+ if (FLAGS_show_track) {
+ LOG(INFO) << "Track: " << GetTrack();
+ }
+
// Initiate an update check, if necessary.
if (FLAGS_check_for_update ||
FLAGS_update ||