Skip to content

Commit b422813

Browse files
authored
Update swagger reference and fixup changes (Azure#13259)
* Update swagger reference and fixup changes * pr comments * refactor _value usage in operations * throw InvalidOperationException on in-progress operation
1 parent 311b330 commit b422813

12 files changed

+146
-159
lines changed

sdk/keyvault/Azure.Security.KeyVault.Administration/src/Azure.Security.KeyVault.Administration.csproj

-6
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,9 @@
2020
<Compile Include="$(MSBuildThisFileDirectory)\..\..\Azure.Security.KeyVault.Shared\src\IJsonSerializable.cs" />
2121
</ItemGroup>
2222

23-
<ItemGroup>
24-
<Compile Include="$(AzureCoreSharedSources)NoBodyResponse{T}.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
25-
<Compile Include="$(AzureCoreSharedSources)ForwardsClientCallsAttribute.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
26-
</ItemGroup>
27-
2823
<ItemGroup>
2924
<Compile Include="$(AzureCoreSharedSources)Argument.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
3025
<Compile Include="$(AzureCoreSharedSources)ArrayBufferWriter.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
31-
<Compile Include="$(AzureCoreSharedSources)AzureKeyCredentialPolicy.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
3226
<Compile Include="$(AzureCoreSharedSources)AzureResourceProviderNamespaceAttribute.cs" Link="Shared\%(RecursiveDir)\%(Filename)%(Extension)" />
3327
<Compile Include="$(AzureCoreSharedSources)ClientDiagnostics.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />
3428
<Compile Include="$(AzureCoreSharedSources)ContentTypeUtilities.cs" Link="Shared\Core\%(RecursiveDir)\%(Filename)%(Extension)" />

sdk/keyvault/Azure.Security.KeyVault.Administration/src/BackupOperation.cs

+14-8
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class BackupOperation : Operation<Uri>
2121
private readonly KeyVaultBackupClient _client;
2222
private Response _response;
2323
private FullBackupDetailsInternal _value;
24+
private readonly string _id;
2425

2526
/// <summary>
2627
/// Creates an instance of a BackupOperation from a previously started operation. <see cref="UpdateStatus(CancellationToken)"/>, <see cref="UpdateStatusAsync(CancellationToken)"/>,
@@ -36,20 +37,20 @@ public BackupOperation(string id, KeyVaultBackupClient client)
3637
Argument.AssertNotNull(client, nameof(client));
3738

3839
_client = client;
39-
_value = new FullBackupDetailsInternal(string.Empty, string.Empty, null, null, null, id, string.Empty);
40+
_id = id;
4041
}
4142

4243
/// <summary>
4344
/// Initializes a new instance of a BackupOperation.
4445
/// </summary>
4546
/// <param name="client">An instance of <see cref="KeyVaultBackupClient" />.</param>
4647
/// <param name="response">The <see cref="ResponseWithHeaders{T, THeaders}" /> returned from <see cref="KeyVaultBackupClient.StartBackup(Uri, string, CancellationToken)"/> or <see cref="KeyVaultBackupClient.StartBackupAsync(Uri, string, CancellationToken)"/>.</param>
47-
internal BackupOperation(KeyVaultBackupClient client, ResponseWithHeaders<FullBackupDetailsInternal, ServiceFullBackupHeaders> response)
48+
internal BackupOperation(KeyVaultBackupClient client, ResponseWithHeaders<ServiceFullBackupHeaders> response)
4849
{
4950
_client = client;
5051
_response = response;
5152
_retryAfterSeconds = response.Headers.RetryAfter;
52-
_value = response.Value ?? throw new InvalidOperationException("The response does not contain a value.");
53+
_id = response.Headers.JobId() ?? throw new InvalidOperationException("The response does not contain an Id");
5354
}
5455

5556
/// <summary>
@@ -66,21 +67,22 @@ internal BackupOperation(FullBackupDetailsInternal value, Response response, Key
6667

6768
_response = response;
6869
_value = value;
70+
_id = value.JobId;
6971
_client = client;
7072
}
7173

7274
/// <summary>
7375
/// The start time of the restore operation.
7476
/// </summary>
75-
public DateTimeOffset? StartTime => _value.StartTime;
77+
public DateTimeOffset? StartTime => _value?.StartTime;
7678

7779
/// <summary>
7880
/// The end time of the restore operation.
7981
/// </summary>
80-
public DateTimeOffset? EndTime => _value.EndTime;
82+
public DateTimeOffset? EndTime => _value?.EndTime;
8183

8284
/// <inheritdoc/>
83-
public override string Id => _value.JobId;
85+
public override string Id => _id;
8486

8587
/// <summary>
8688
/// Gets the <see cref="FullBackupDetailsInternal"/> of the backup operation.
@@ -91,6 +93,10 @@ public override Uri Value
9193
get
9294
{
9395
#pragma warning disable CA1065 // Do not raise exceptions in unexpected locations
96+
if (!HasCompleted)
97+
{
98+
throw new InvalidOperationException("The operation is not complete.");
99+
}
94100
if (EndTime.HasValue && _value.Error != null)
95101
{
96102
throw new RequestFailedException($"{_value.Error.Message}\nInnerError: {_value.Error.InnerError}\nCode: {_value.Error.Code}");
@@ -101,10 +107,10 @@ public override Uri Value
101107
}
102108

103109
/// <inheritdoc/>
104-
public override bool HasCompleted => _value.EndTime.HasValue;
110+
public override bool HasCompleted => EndTime.HasValue;
105111

106112
/// <inheritdoc/>
107-
public override bool HasValue => _response != null && _value.Error == null && HasCompleted;
113+
public override bool HasValue => _response != null && _value?.Error == null && HasCompleted;
108114

109115
/// <inheritdoc/>
110116
public override Response GetRawResponse() => _response;

0 commit comments

Comments
 (0)