diff --git a/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/Secret.java b/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/Secret.java index 602367c00bf..818b34ee589 100644 --- a/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/Secret.java +++ b/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/Secret.java @@ -37,7 +37,7 @@ public interface Secret extends HasName, Updatable { /** - * @return the secret value + * @return the secret value when the secret is enabled */ String value(); diff --git a/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/implementation/SecretImpl.java b/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/implementation/SecretImpl.java index d5da42b6a73..699a350d7e9 100644 --- a/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/implementation/SecretImpl.java +++ b/azure-mgmt-keyvault/src/main/java/com/microsoft/azure/management/keyvault/implementation/SecretImpl.java @@ -8,7 +8,6 @@ import com.microsoft.azure.ListOperationCallback; import com.microsoft.azure.PagedList; -import com.microsoft.azure.keyvault.SecretIdentifier; import com.microsoft.azure.keyvault.models.Attributes; import com.microsoft.azure.keyvault.models.SecretAttributes; import com.microsoft.azure.keyvault.models.SecretBundle; @@ -97,7 +96,16 @@ public Observable typeConvertAsync(final SecretItem secretItem) { @Override protected ServiceFuture callAsync() { - return vault.client().getSecretAsync(secretItem.identifier().identifier(), null); + if (secretItem.attributes().enabled()) { + return vault.client().getSecretAsync(secretItem.identifier().identifier(), null); + } else { + SecretBundle secretBundle = new SecretBundle() + .withId(secretItem.id()) + .withAttributes(secretItem.attributes()) + .withContentType(secretItem.contentType()) + .withTags(secretItem.tags()); + return ServiceFuture.fromBody(Observable.just(secretBundle), null); + } } @Override @@ -111,7 +119,7 @@ protected Secret wrapModel(SecretBundle secretBundle) { @Override public Observable listVersionsAsync() { - return new KeyVaultFutures.ListCallbackObserver() { + return new KeyVaultFutures.ListCallbackObserver() { @Override protected void list(ListOperationCallback callback) { @@ -119,23 +127,32 @@ protected void list(ListOperationCallback callback) { } @Override - protected Observable typeConvertAsync(SecretItem o) { - return Observable.just(o.identifier()); + protected Observable typeConvertAsync(SecretItem o) { + return Observable.just(o); } }.toObservable() - .flatMap(new Func1>() { + .flatMap(new Func1>() { @Override - public Observable call(final SecretIdentifier secretIdentifier) { + public Observable call(final SecretItem secretItem) { return new KeyVaultFutures.ServiceFutureConverter() { @Override protected ServiceFuture callAsync() { - return vault.client().getSecretAsync(secretIdentifier.identifier(), null); + if (secretItem.attributes().enabled()) { + return vault.client().getSecretAsync(secretItem.identifier().identifier(), null); + } else { + SecretBundle secretBundle = new SecretBundle() + .withId(secretItem.id()) + .withAttributes(secretItem.attributes()) + .withContentType(secretItem.contentType()) + .withTags(secretItem.tags()); + return ServiceFuture.fromBody(Observable.just(secretBundle), null); + } } @Override protected Secret wrapModel(SecretBundle secretBundle) { - return new SecretImpl(secretIdentifier.name(), secretBundle, vault); + return new SecretImpl(secretItem.identifier().name(), secretBundle, vault); } }.toObservable(); }