public void StorageAccountListByResourceGroupTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group var rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); var accounts = storageMgmtClient.StorageAccounts.ListByResourceGroup(rgname); Assert.Empty(accounts); // Create storage accounts string accountName1 = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); string accountName2 = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); accounts = storageMgmtClient.StorageAccounts.ListByResourceGroup(rgname); Assert.Equal(2, accounts.Count()); StorageManagementTestUtilities.VerifyAccountProperties(accounts.First(), true); StorageManagementTestUtilities.VerifyAccountProperties(accounts.ToArray()[1], true); } }
public void StorageAccountRegenerateKeyTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group string rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // List keys var keys = storageMgmtClient.StorageAccounts.ListKeys(rgname, accountName); Assert.NotNull(keys); StorageAccountKey key2 = keys.Keys.First( t => StringComparer.OrdinalIgnoreCase.Equals(t.KeyName, "key2")); Assert.NotNull(key2); // Regenerate keys and verify that keys change var regenKeys = storageMgmtClient.StorageAccounts.RegenerateKey(rgname, accountName, "key2"); StorageAccountKey key2Regen = regenKeys.Keys.First( t => StringComparer.OrdinalIgnoreCase.Equals(t.KeyName, "key2")); Assert.NotNull(key2Regen); // Validate key was regenerated Assert.NotEqual(key2.Value, key2Regen.Value); } }
public void StorageAccountListBySubscriptionTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group and storage account var rgname1 = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); string accountName1 = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname1); // Create different resource group and storage account var rgname2 = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); string accountName2 = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname2); var accounts = storageMgmtClient.StorageAccounts.List(); StorageAccount account1 = accounts.First( t => StringComparer.OrdinalIgnoreCase.Equals(t.Name, accountName1)); StorageManagementTestUtilities.VerifyAccountProperties(account1, true); StorageAccount account2 = accounts.First( t => StringComparer.OrdinalIgnoreCase.Equals(t.Name, accountName2)); StorageManagementTestUtilities.VerifyAccountProperties(account2, true); } }
public void StorageAccountDeleteTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group var rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Delete an account which does not exist storageMgmtClient.StorageAccounts.Delete(rgname, "missingaccount"); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // Delete an account storageMgmtClient.StorageAccounts.Delete(rgname, accountName); // Delete an account which was just deleted storageMgmtClient.StorageAccounts.Delete(rgname, accountName); } }
public void StorageAccountRegenerateKeyTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (var context = UndoContext.Current) { context.Start(); var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(handler); // Create resource group string rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // Regenerate keys var regenRequest = storageMgmtClient.StorageAccounts.RegenerateKey(rgname, accountName, KeyName.Key1); Assert.NotNull(regenRequest.StorageAccountKeys.Key1); Assert.NotNull(regenRequest.StorageAccountKeys.Key2); // Verify listed keys are the same as keys returned by the regenerate request var listKeysRequest = storageMgmtClient.StorageAccounts.ListKeys(rgname, accountName); Assert.Equal(regenRequest.StorageAccountKeys.Key1, listKeysRequest.StorageAccountKeys.Key1); Assert.Equal(regenRequest.StorageAccountKeys.Key2, listKeysRequest.StorageAccountKeys.Key2); // Regenerate keys and verify that keys change regenRequest = storageMgmtClient.StorageAccounts.RegenerateKey(rgname, accountName, KeyName.Key2); Assert.Equal(regenRequest.StorageAccountKeys.Key1, listKeysRequest.StorageAccountKeys.Key1); Assert.NotEqual(regenRequest.StorageAccountKeys.Key2, listKeysRequest.StorageAccountKeys.Key2); } }
public void StorageAccountListByResourceGroupTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (var context = UndoContext.Current) { context.Start(); var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(handler); // Create resource group var rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); var listAccountsRequest = storageMgmtClient.StorageAccounts.ListByResourceGroup(rgname); Assert.Empty(listAccountsRequest.StorageAccounts); // Create storage accounts string accountName1 = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); string accountName2 = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); listAccountsRequest = storageMgmtClient.StorageAccounts.ListByResourceGroup(rgname); Assert.Equal(2, listAccountsRequest.StorageAccounts.Count); StorageManagementTestUtilities.VerifyAccountProperties(listAccountsRequest.StorageAccounts[0], true); StorageManagementTestUtilities.VerifyAccountProperties(listAccountsRequest.StorageAccounts[1], true); } }
public void StorageAccountUpdateMultipleTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group var rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // Update storage account type var parameters = new StorageAccountUpdateParameters { Sku = new Sku { Name = SkuName.StandardLRS }, Tags = new Dictionary <string, string> { { "key3", "value3" }, { "key4", "value4" }, { "key5", "value6" } } }; var account = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.Equal(account.Sku.Name, SkuName.StandardLRS); Assert.Equal(account.Tags.Count, parameters.Tags.Count); // Validate account = storageMgmtClient.StorageAccounts.GetProperties(rgname, accountName); Assert.Equal(account.Sku.Name, SkuName.StandardLRS); Assert.Equal(account.Tags.Count, parameters.Tags.Count); } }
public void StorageAccountCheckNameTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (var context = UndoContext.Current) { context.Start(); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(handler); var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(handler); // Create resource group string rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Check valid name string accountName = TestUtilities.GenerateName("sto"); var checkNameRequest = storageMgmtClient.StorageAccounts.CheckNameAvailability(accountName); Assert.Equal(true, checkNameRequest.NameAvailable); Assert.Equal(null, checkNameRequest.Reason); Assert.Equal(null, checkNameRequest.Message); // Check invalid name accountName = "CAPS"; checkNameRequest = storageMgmtClient.StorageAccounts.CheckNameAvailability(accountName); Assert.Equal(false, checkNameRequest.NameAvailable); Assert.Equal(Reason.AccountNameInvalid, checkNameRequest.Reason); Assert.Equal("CAPS is not a valid storage account name. Storage account name must be between 3 and 24 " + "characters in length and use numbers and lower-case letters only.", checkNameRequest.Message); // Check name of account that already exists accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); checkNameRequest = storageMgmtClient.StorageAccounts.CheckNameAvailability(accountName); Assert.Equal(false, checkNameRequest.NameAvailable); Assert.Equal(Reason.AlreadyExists, checkNameRequest.Reason); Assert.Equal("The storage account named " + accountName + " is already taken.", checkNameRequest.Message); } }
public void StorageAccountListKeysTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group string rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // List keys var keys = storageMgmtClient.StorageAccounts.ListKeys(rgname, accountName); Assert.NotNull(keys); // Validate Key1 StorageAccountKey key1 = keys.Keys.First( t => StringComparer.OrdinalIgnoreCase.Equals(t.KeyName, "key1")); Assert.NotNull(key1); Assert.Equal(KeyPermission.FULL, key1.Permissions); Assert.NotNull(key1.Value); // Validate Key2 StorageAccountKey key2 = keys.Keys.First( t => StringComparer.OrdinalIgnoreCase.Equals(t.KeyName, "key2")); Assert.NotNull(key2); Assert.Equal(KeyPermission.FULL, key2.Permissions); Assert.NotNull(key2.Value); } }
public void StorageAccountUpdateTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group var rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // Update storage account type var parameters = new StorageAccountUpdateParameters { Sku = new Sku { Name = SkuName.StandardLRS } }; var account = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.Equal(account.Sku.Name, SkuName.StandardLRS); // Validate account = storageMgmtClient.StorageAccounts.GetProperties(rgname, accountName); Assert.Equal(account.Sku.Name, SkuName.StandardLRS); // Update storage tags parameters = new StorageAccountUpdateParameters { Tags = new Dictionary <string, string> { { "key3", "value3" }, { "key4", "value4" }, { "key5", "value6" } } }; account = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.Equal(account.Tags.Count, parameters.Tags.Count); // Validate account = storageMgmtClient.StorageAccounts.GetProperties(rgname, accountName); Assert.Equal(account.Tags.Count, parameters.Tags.Count); // Update storage encryption parameters = new StorageAccountUpdateParameters { Encryption = new Encryption() { Services = new EncryptionServices { Blob = new EncryptionService { Enabled = true } } } }; account = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.NotNull(account.Encryption); // Validate account = storageMgmtClient.StorageAccounts.GetProperties(rgname, accountName); Assert.NotNull(account.Encryption.Services.Blob); Assert.NotNull(account.Encryption.Services.Blob.LastEnabledTime); // Update storage custom domains parameters = new StorageAccountUpdateParameters { CustomDomain = new CustomDomain { Name = "foo.example.com", UseSubDomain = true } }; try { storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.True(false, "This request should fail with the below code."); } catch (CloudException ex) { Assert.Equal(HttpStatusCode.Conflict, ex.Response.StatusCode); Assert.Equal("StorageDomainNameCouldNotVerify", ex.Body.Code); Assert.True(ex.Message != null && ex.Message.StartsWith("The custom domain " + "name could not be verified. CNAME mapping from foo.example.com to ")); } } }
public void StorageAccountUpdateTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (var context = UndoContext.Current) { context.Start(); var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(handler); // Create resource group var rgname = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = StorageManagementTestUtilities.CreateStorageAccount(storageMgmtClient, rgname); // TODO: Remove wait when CSM is fixed TestUtilities.Wait(30000); // Update storage account type var parameters = new StorageAccountUpdateParameters { AccountType = AccountType.StandardLRS }; var updateAccountTypeRequest = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.Equal(updateAccountTypeRequest.StorageAccount.AccountType, AccountType.StandardLRS); var getRequest = storageMgmtClient.StorageAccounts.GetProperties(rgname, accountName); Assert.Equal(getRequest.StorageAccount.AccountType, AccountType.StandardLRS); // Update storage tags parameters = new StorageAccountUpdateParameters { Tags = new Dictionary <string, string> { { "key3", "value3" }, { "key4", "value4" }, { "key5", "value6" } } }; var updateTagsRequest = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.Equal(updateTagsRequest.StorageAccount.Tags.Count, parameters.Tags.Count); Assert.Equal(updateTagsRequest.StorageAccount.Tags.ElementAt(0), parameters.Tags.ElementAt(0)); getRequest = storageMgmtClient.StorageAccounts.GetProperties(rgname, accountName); Assert.Equal(getRequest.StorageAccount.Tags.Count, parameters.Tags.Count); // Update storage custom domains parameters = new StorageAccountUpdateParameters { CustomDomain = new CustomDomain { Name = "foo.example.com", UseSubDomain = true } }; StorageAccountUpdateResponse updateCustomDomainsRequest; try { updateCustomDomainsRequest = storageMgmtClient.StorageAccounts.Update(rgname, accountName, parameters); Assert.True(false, "This request should fail with the below code."); } catch (Hyak.Common.CloudException ex) { Assert.Equal(HttpStatusCode.BadRequest, ex.Response.StatusCode); Assert.Equal("StorageDomainNameCouldNotVerify", ex.Error.Code); Assert.True(ex.Error.Message != null && ex.Error.Message.StartsWith("The custom domain " + "name could not be verified. CNAME mapping from foo.example.com to ")); } } }