public async Task ManagedHsmRecoverDeletedVault() { var parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); var managedHsm = await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false); // Delete await managedHsm.Value.DeleteAsync(WaitUntil.Completed); // Get deleted vault Assert.ThrowsAsync <RequestFailedException>(async() => { await ManagedHsmCollection.GetAsync(VaultName); }); parameters.Properties.CreateMode = CreateMode.Recover; // Recover in recover mode var recoveredVault2 = await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false); Assert.True(recoveredVault2.Value.Data.IsEqual(managedHsm.Value.Data)); // Get recovered vault var getResult = await ManagedHsmCollection.GetAsync(VaultName); // Delete await getResult.Value.DeleteAsync(WaitUntil.Completed); }
public async Task ManagedHsmCreateUpdateDelete() { var parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); var managedHsm = await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false); ValidateVault(managedHsm.Value.Data, VaultName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, CreateMode.Default, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkAcls, PublicNetworkAccess.Disabled, new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0)), 10, Tags); ManagedHsmProperties.PublicNetworkAccess = PublicNetworkAccess.Enabled; ManagedHsmProperties.NetworkAcls.DefaultAction = "Allow"; parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); ManagedHsm updateManagedHsm = null; if (Mode == RecordedTestMode.Record) { for (int i = 0; i < 10; i++) { try { updateManagedHsm = (await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false)).Value; break; } catch (Exception) { Thread.Sleep(120000); } } } else { for (int i = 0; i < 10; i++) { try { updateManagedHsm = (await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, VaultName, parameters).ConfigureAwait(false)).Value; break; } catch (Exception) { } } } ValidateVault(updateManagedHsm.Data, VaultName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, CreateMode.Default, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkAcls, PublicNetworkAccess.Enabled, new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0)), 10, Tags); var retrievedVault = await ManagedHsmCollection.GetAsync(VaultName); ValidateVault(retrievedVault.Value.Data, VaultName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, CreateMode.Default, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkAcls, PublicNetworkAccess.Enabled, new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0)), 10, Tags); // Delete await retrievedVault.Value.DeleteAsync(WaitUntil.Completed); //Purge need to use loaction parameter. Update them later. //await retrievedVault.Value.PurgeDeletedAsync(); Assert.ThrowsAsync <RequestFailedException>(async() => { await ManagedHsmCollection.GetAsync(VaultName); }); }
public async Task ManagedHsmFull() { ManagedHsmData parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); // Create a MHSM ArmOperation <ManagedHsmResource> managedHsm = await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, MHSMName, parameters).ConfigureAwait(false); Assert.NotNull(managedHsm.Value); Assert.NotNull(managedHsm.Value.Id); ValidateVault(managedHsm.Value.Data, MHSMName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkRuleSet, PublicNetworkAccess.Disabled, DefSoftDeleteRetentionInDays, Tags); // List AsyncPageable <ManagedHsmResource> vaults = ManagedHsmCollection.GetAllAsync(); int count = 0; await foreach (ManagedHsmResource v in vaults) { if (v.Id == managedHsm.Value.Id) { count++; break; } } Assert.True(count == 1); // Update ManagedHsmProperties.PublicNetworkAccess = PublicNetworkAccess.Enabled; ManagedHsmProperties.NetworkRuleSet.DefaultAction = "Allow"; parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); ManagedHsmResource updateManagedHsm = null; if (Mode == RecordedTestMode.Record) { for (int i = 0; i < 10; i++) { try { updateManagedHsm = (await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, MHSMName, parameters).ConfigureAwait(false)).Value; break; } catch (Exception) { Thread.Sleep(120000); } } } else { for (int i = 0; i < 10; i++) { try { updateManagedHsm = (await ManagedHsmCollection.CreateOrUpdateAsync(WaitUntil.Completed, MHSMName, parameters).ConfigureAwait(false)).Value; break; } catch (Exception) { } } } // Get Response <ManagedHsmResource> retrievedVault = await ManagedHsmCollection.GetAsync(MHSMName); ValidateVault(retrievedVault.Value.Data, MHSMName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkRuleSet, PublicNetworkAccess.Enabled, DefSoftDeleteRetentionInDays, Tags); // Delete await retrievedVault.Value.DeleteAsync(WaitUntil.Completed); Assert.ThrowsAsync <RequestFailedException>(async() => { await ManagedHsmCollection.GetAsync(MHSMName); }); // Try to purge try { Response <DeletedManagedHsmResource> deletedMhsm = await Subscription.GetDeletedManagedHsmAsync(Location, MHSMName); Assert.NotNull(managedHsm.Value); await deletedMhsm.Value.PurgeDeletedAsync(WaitUntil.Completed); } catch (Exception) { } }