* @throws IllegalArgumentException if the snapshot request is formatted incorrectly
*/
public TakeSnapshotResponse takeSnapshotAsync(SnapshotDescription snapshot) throws IOException,
SnapshotCreationException {
ClientSnapshotDescriptionUtils.assertSnapshotRequestIsValid(snapshot);
final TakeSnapshotRequest request = TakeSnapshotRequest.newBuilder().setSnapshot(snapshot)
.build();
// run the snapshot on the master
return executeCallable(new MasterAdminCallable<TakeSnapshotResponse>(getConnection()) {
@Override
public TakeSnapshotResponse call() throws ServiceException {