buffet: Abort limbo commands. BUG=chromium:420573 TEST=cros_workon_make buffet --test&&manual Change-Id: I2d887cfc70758a1fca0eb1bba96bc42c7c68f88d Reviewed-on: https://chromium-review.googlesource.com/226550 Reviewed-by: Anton Muhin <antonm@chromium.org> Commit-Queue: Anton Muhin <antonm@chromium.org> Tested-by: Anton Muhin <antonm@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc index d4cee76..30c62a9 100644 --- a/buffet/device_registration_info.cc +++ b/buffet/device_registration_info.cc
@@ -140,6 +140,9 @@ return chromeos::url::AppendQueryParams(result, params); } +auto ignore_cloud_error = base::Bind([](const chromeos::Error&){}); +auto ignore_cloud_result = base::Bind([](const base::DictionaryValue&){}); + } // anonymous namespace namespace buffet { @@ -659,7 +662,7 @@ }), // TODO(antonm): Failure to update device resource probably deserves // some additional actions. - base::Bind([](const chromeos::Error&){})); + ignore_cloud_error); } void DeviceRegistrationInfo::FetchCommands( @@ -676,7 +679,7 @@ const base::ListValue empty; callback.Run(commands ? *commands : empty); }), - base::Bind([](const chromeos::Error&){})); + ignore_cloud_error); } void DeviceRegistrationInfo::AbortLimboCommands( @@ -704,7 +707,14 @@ LOG(WARNING) << "Command with no ID at " << i; continue; } - // TODO(antonm): Really abort the command. + + std::unique_ptr<base::DictionaryValue> command_copy{command->DeepCopy()}; + command_copy->SetString("state", "aborted"); + DoCloudRequest( + chromeos::http::request_type::kPut, + GetServiceURL("commands/" + command_id), + command_copy.get(), + ignore_cloud_result, ignore_cloud_error); } base::MessageLoop::current()->PostTask(FROM_HERE, callback);