async ValueTask <OperationState> IOperation.UpdateStateAsync(bool async, CancellationToken cancellationToken) { Response response = async ? await _pipeline.GetResponseAsync(RequestMethod.Get, cancellationToken, SecretClient.SecretsPath, _value.Name, "/", _value.Version).ConfigureAwait(false) : _pipeline.GetResponse(RequestMethod.Get, cancellationToken, SecretClient.SecretsPath, _value.Name, "/", _value.Version); switch (response.Status) { case 200: case 403: // Access denied but proof the secret was recovered. return(OperationState.Success(response)); case 404: return(OperationState.Pending(response)); default: RequestFailedException ex = async ? await _pipeline.Diagnostics.CreateRequestFailedExceptionAsync(response).ConfigureAwait(false) : _pipeline.Diagnostics.CreateRequestFailedException(response); return(OperationState.Failure(response, ex)); } }
/// <inheritdoc/> public override async ValueTask <Response> UpdateStatusAsync(CancellationToken cancellationToken = default) { if (!_completed) { using DiagnosticScope scope = _pipeline.CreateScope($"{nameof(DeleteCertificateOperation)}.{nameof(UpdateStatus)}"); scope.AddAttribute("secret", _value.Name); scope.Start(); try { _response = await _pipeline.GetResponseAsync(RequestMethod.Get, cancellationToken, CertificateClient.DeletedCertificatesPath, _value.Name).ConfigureAwait(false); _completed = await CheckCompletedAsync(_response).ConfigureAwait(false); } catch (Exception e) { scope.Failed(e); throw; } } return(GetRawResponse()); }
/// <inheritdoc/> public override async ValueTask <Response> UpdateStatusAsync(CancellationToken cancellationToken = default) { if (!_completed) { using DiagnosticScope scope = _pipeline.CreateScope("Azure.Security.KeyVault.Keys.RecoverDeletedKeyOperation.UpdateStatus"); scope.AddAttribute("secret", _value.Name); scope.Start(); try { _response = await _pipeline.GetResponseAsync(RequestMethod.Get, cancellationToken, KeyClient.KeysPath, _value.Name, "/", _value.Properties.Version).ConfigureAwait(false); _completed = await CheckCompletedAsync(_response).ConfigureAwait(false); } catch (Exception e) { scope.Failed(e); throw; } } return(GetRawResponse()); }