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);