Skip to content

Commit

Permalink
azurerm_batch_pool - support container_image_names property (hashic…
Browse files Browse the repository at this point in the history
…orp#6689)

this is a pr which helps to configure docs.microsoft.com/en-us/dotnet/api/microsoft.azure.batch.containerconfiguration.containerimagenames?view=azure-dotnet
  • Loading branch information
ivanguravel authored and pbrit committed May 31, 2020
1 parent 12d2c7d commit ebfa248
Show file tree
Hide file tree
Showing 16 changed files with 252 additions and 217 deletions.
@@ -1,13 +1,13 @@
package azure
package batch

import (
"fmt"

"github.com/Azure/azure-sdk-for-go/services/batch/mgmt/2019-08-01/batch"
)

// ExpandBatchAccountKeyVaultReference expands Batch account KeyVault reference
func ExpandBatchAccountKeyVaultReference(list []interface{}) (*batch.KeyVaultReference, error) {
// expandBatchAccountKeyVaultReference expands Batch account KeyVault reference
func expandBatchAccountKeyVaultReference(list []interface{}) (*batch.KeyVaultReference, error) {
if len(list) == 0 {
return nil, fmt.Errorf("Error: key vault reference should be defined")
}
Expand All @@ -25,8 +25,8 @@ func ExpandBatchAccountKeyVaultReference(list []interface{}) (*batch.KeyVaultRef
return ref, nil
}

// FlattenBatchAccountKeyvaultReference flattens a Batch account keyvault reference
func FlattenBatchAccountKeyvaultReference(keyVaultReference *batch.KeyVaultReference) interface{} {
// flattenBatchAccountKeyvaultReference flattens a Batch account keyvault reference
func flattenBatchAccountKeyvaultReference(keyVaultReference *batch.KeyVaultReference) interface{} {
result := make(map[string]interface{})

if keyVaultReference == nil {
Expand Down
Expand Up @@ -118,7 +118,7 @@ func dataSourceArmBatchAccountRead(d *schema.ResourceData, meta interface{}) err
// set empty keyvault reference which is not needed in Batch Service allocation mode.
d.Set("key_vault_reference", []interface{}{})
} else if poolAllocationMode == string(batch.UserSubscription) {
if err := d.Set("key_vault_reference", azure.FlattenBatchAccountKeyvaultReference(props.KeyVaultReference)); err != nil {
if err := d.Set("key_vault_reference", flattenBatchAccountKeyvaultReference(props.KeyVaultReference)); err != nil {
return fmt.Errorf("Error flattening `key_vault_reference`: %+v", err)
}
}
Expand Down
@@ -1,4 +1,4 @@
package tests
package batch_test

import (
"fmt"
Expand All @@ -10,15 +10,15 @@ import (
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance"
)

func TestAccDataSourceAzureRMBatchAccount_basic(t *testing.T) {
func TestAccBatchAccountDataSource_basic(t *testing.T) {
data := acceptance.BuildTestData(t, "data.azurerm_batch_account", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
Steps: []resource.TestStep{
{
Config: testAccDataSourceAzureRMBatchAccount_basic(data),
Config: testAccBatchAccountDataSource_basic(data),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(data.ResourceName, "name", fmt.Sprintf("testaccbatch%s", data.RandomString)),
resource.TestCheckResourceAttr(data.ResourceName, "location", azure.NormalizeLocation(data.Locations.Primary)),
Expand All @@ -29,15 +29,15 @@ func TestAccDataSourceAzureRMBatchAccount_basic(t *testing.T) {
})
}

func TestAccDataSourceAzureRMBatchAccount_complete(t *testing.T) {
func TestAccBatchAccountDataSource_complete(t *testing.T) {
data := acceptance.BuildTestData(t, "data.azurerm_batch_account", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
Steps: []resource.TestStep{
{
Config: testAccDataSourceAzureRMBatchAccount_complete(data),
Config: testAccBatchAccountDataSource_complete(data),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(data.ResourceName, "name", fmt.Sprintf("testaccbatch%s", data.RandomString)),
resource.TestCheckResourceAttr(data.ResourceName, "location", azure.NormalizeLocation(data.Locations.Primary)),
Expand All @@ -50,7 +50,7 @@ func TestAccDataSourceAzureRMBatchAccount_complete(t *testing.T) {
})
}

func TestAccDataSourceAzureRMBatchAccount_userSubscription(t *testing.T) {
func TestAccBatchAccountDataSource_userSubscription(t *testing.T) {
data := acceptance.BuildTestData(t, "data.azurerm_batch_account", "test")

tenantID := os.Getenv("ARM_TENANT_ID")
Expand All @@ -61,7 +61,7 @@ func TestAccDataSourceAzureRMBatchAccount_userSubscription(t *testing.T) {
Providers: acceptance.SupportedProviders,
Steps: []resource.TestStep{
{
Config: testAccDataSourceAzureBatchAccount_userSubscription(data, tenantID, subscriptionID),
Config: testAccBatchAccountDataSource_userSubscription(data, tenantID, subscriptionID),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(data.ResourceName, "name", fmt.Sprintf("testaccbatch%s", data.RandomString)),
resource.TestCheckResourceAttr(data.ResourceName, "location", azure.NormalizeLocation(data.Locations.Primary)),
Expand All @@ -73,7 +73,7 @@ func TestAccDataSourceAzureRMBatchAccount_userSubscription(t *testing.T) {
})
}

func testAccDataSourceAzureRMBatchAccount_basic(data acceptance.TestData) string {
func testAccBatchAccountDataSource_basic(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand All @@ -98,7 +98,7 @@ data "azurerm_batch_account" "test" {
`, data.RandomInteger, data.Locations.Primary, data.RandomString)
}

func testAccDataSourceAzureRMBatchAccount_complete(data acceptance.TestData) string {
func testAccBatchAccountDataSource_complete(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand Down Expand Up @@ -136,7 +136,7 @@ data "azurerm_batch_account" "test" {
`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString)
}

func testAccDataSourceAzureBatchAccount_userSubscription(data acceptance.TestData, tenantID string, subscriptionID string) string {
func testAccBatchAccountDataSource_userSubscription(data acceptance.TestData, tenantID string, subscriptionID string) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand Down
2 changes: 1 addition & 1 deletion azurerm/internal/services/batch/batch_account_resource.go
Expand Up @@ -143,7 +143,7 @@ func resourceArmBatchAccountCreate(d *schema.ResourceData, meta interface{}) err
// if pool allocation mode is UserSubscription, a key vault reference needs to be set
if poolAllocationMode == string(batch.UserSubscription) {
keyVaultReferenceSet := d.Get("key_vault_reference").([]interface{})
keyVaultReference, err := azure.ExpandBatchAccountKeyVaultReference(keyVaultReferenceSet)
keyVaultReference, err := expandBatchAccountKeyVaultReference(keyVaultReferenceSet)
if err != nil {
return fmt.Errorf("Error creating Batch account %q (Resource Group %q): %+v", name, resourceGroup, err)
}
Expand Down
@@ -1,4 +1,4 @@
package tests
package batch_test

import (
"fmt"
Expand Down Expand Up @@ -42,68 +42,68 @@ func TestValidateBatchAccountName(t *testing.T) {
}
}

func TestAccAzureRMBatchAccount_basic(t *testing.T) {
func TestAccBatchAccount_basic(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_batch_account", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMBatchAccountDestroy,
CheckDestroy: testCheckBatchAccountDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMBatchAccount_basic(data),
Config: testAccBatchAccount_basic(data),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchAccountExists(data.ResourceName),
testCheckBatchAccountExists(data.ResourceName),
resource.TestCheckResourceAttr(data.ResourceName, "pool_allocation_mode", "BatchService"),
),
},
},
})
}

func TestAccAzureRMBatchAccount_requiresImport(t *testing.T) {
func TestAccBatchAccount_requiresImport(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_batch_account", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMBatchAccountDestroy,
CheckDestroy: testCheckBatchAccountDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMBatchAccount_basic(data),
Config: testAccBatchAccount_basic(data),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchAccountExists(data.ResourceName),
testCheckBatchAccountExists(data.ResourceName),
),
},
{
Config: testAccAzureRMBatchAccount_requiresImport(data),
Config: testAccBatchAccount_requiresImport(data),
ExpectError: acceptance.RequiresImportError("azurerm_batch_account"),
},
},
})
}

func TestAccAzureRMBatchAccount_complete(t *testing.T) {
func TestAccBatchAccount_complete(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_batch_account", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMBatchAccountDestroy,
CheckDestroy: testCheckBatchAccountDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMBatchAccount_complete(data),
Config: testAccBatchAccount_complete(data),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchAccountExists(data.ResourceName),
testCheckBatchAccountExists(data.ResourceName),
resource.TestCheckResourceAttr(data.ResourceName, "pool_allocation_mode", "BatchService"),
resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "1"),
resource.TestCheckResourceAttr(data.ResourceName, "tags.env", "test"),
),
},
{
Config: testAccAzureRMBatchAccount_completeUpdated(data),
Config: testAccBatchAccount_completeUpdated(data),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchAccountExists(data.ResourceName),
testCheckBatchAccountExists(data.ResourceName),
resource.TestCheckResourceAttr(data.ResourceName, "pool_allocation_mode", "BatchService"),
resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "2"),
resource.TestCheckResourceAttr(data.ResourceName, "tags.env", "test"),
Expand All @@ -114,27 +114,27 @@ func TestAccAzureRMBatchAccount_complete(t *testing.T) {
})
}

func TestAccAzureRMBatchAccount_userSubscription(t *testing.T) {
func TestAccBatchAccount_userSubscription(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_batch_account", "test")
tenantID := os.Getenv("ARM_TENANT_ID")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMBatchAccountDestroy,
CheckDestroy: testCheckBatchAccountDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMBatchAccount_userSubscription(data, tenantID),
Config: testAccBatchAccount_userSubscription(data, tenantID),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchAccountExists(data.ResourceName),
testCheckBatchAccountExists(data.ResourceName),
resource.TestCheckResourceAttr(data.ResourceName, "pool_allocation_mode", "UserSubscription"),
),
},
},
})
}

func testCheckAzureRMBatchAccountExists(resourceName string) resource.TestCheckFunc {
func testCheckBatchAccountExists(resourceName string) resource.TestCheckFunc {
return func(s *terraform.State) error {
ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext
conn := acceptance.AzureProvider.Meta().(*clients.Client).Batch.AccountClient
Expand Down Expand Up @@ -165,7 +165,7 @@ func testCheckAzureRMBatchAccountExists(resourceName string) resource.TestCheckF
}
}

func testCheckAzureRMBatchAccountDestroy(s *terraform.State) error {
func testCheckBatchAccountDestroy(s *terraform.State) error {
conn := acceptance.AzureProvider.Meta().(*clients.Client).Batch.AccountClient
ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext

Expand All @@ -192,7 +192,7 @@ func testCheckAzureRMBatchAccountDestroy(s *terraform.State) error {
return nil
}

func testAccAzureRMBatchAccount_basic(data acceptance.TestData) string {
func testAccBatchAccount_basic(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand All @@ -212,8 +212,8 @@ resource "azurerm_batch_account" "test" {
`, data.RandomInteger, data.Locations.Primary, data.RandomString)
}

func testAccAzureRMBatchAccount_requiresImport(data acceptance.TestData) string {
template := testAccAzureRMBatchAccount_basic(data)
func testAccBatchAccount_requiresImport(data acceptance.TestData) string {
template := testAccBatchAccount_basic(data)
return fmt.Sprintf(`
%s
resource "azurerm_batch_account" "import" {
Expand All @@ -225,7 +225,7 @@ resource "azurerm_batch_account" "import" {
`, template)
}

func testAccAzureRMBatchAccount_complete(data acceptance.TestData) string {
func testAccBatchAccount_complete(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand Down Expand Up @@ -258,7 +258,7 @@ resource "azurerm_batch_account" "test" {
`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString)
}

func testAccAzureRMBatchAccount_completeUpdated(data acceptance.TestData) string {
func testAccBatchAccount_completeUpdated(data acceptance.TestData) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand Down Expand Up @@ -292,7 +292,7 @@ resource "azurerm_batch_account" "test" {
`, data.RandomInteger, data.Locations.Primary, data.RandomString, data.RandomString)
}

func testAccAzureRMBatchAccount_userSubscription(data acceptance.TestData, tenantID string) string {
func testAccBatchAccount_userSubscription(data acceptance.TestData, tenantID string) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand Down
@@ -1,4 +1,4 @@
package tests
package batch_test

import (
"fmt"
Expand All @@ -12,52 +12,52 @@ import (
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
)

func TestAccAzureRMBatchApplication_basic(t *testing.T) {
func TestAccBatchApplication_basic(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_batch_application", "test")

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMBatchApplicationDestroy,
CheckDestroy: testCheckBatchApplicationDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMBatchApplication_template(data, ""),
Config: testAccBatchApplication_template(data, ""),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchApplicationExists(data.ResourceName),
testCheckBatchApplicationExists(data.ResourceName),
),
},
data.ImportStep(),
},
})
}

func TestAccAzureRMBatchApplication_update(t *testing.T) {
func TestAccBatchApplication_update(t *testing.T) {
data := acceptance.BuildTestData(t, "azurerm_batch_application", "test")
displayName := fmt.Sprintf("TestAccDisplayName-%d", data.RandomInteger)

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acceptance.PreCheck(t) },
Providers: acceptance.SupportedProviders,
CheckDestroy: testCheckAzureRMBatchApplicationDestroy,
CheckDestroy: testCheckBatchApplicationDestroy,
Steps: []resource.TestStep{
{
Config: testAccAzureRMBatchApplication_template(data, ""),
Config: testAccBatchApplication_template(data, ""),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchApplicationExists(data.ResourceName),
testCheckBatchApplicationExists(data.ResourceName),
),
},
{
Config: testAccAzureRMBatchApplication_template(data, fmt.Sprintf(`display_name = "%s"`, displayName)),
Config: testAccBatchApplication_template(data, fmt.Sprintf(`display_name = "%s"`, displayName)),
Check: resource.ComposeTestCheckFunc(
testCheckAzureRMBatchApplicationExists(data.ResourceName),
testCheckBatchApplicationExists(data.ResourceName),
resource.TestCheckResourceAttr(data.ResourceName, "display_name", displayName),
),
},
},
})
}

func testCheckAzureRMBatchApplicationExists(resourceName string) resource.TestCheckFunc {
func testCheckBatchApplicationExists(resourceName string) resource.TestCheckFunc {
return func(s *terraform.State) error {
client := acceptance.AzureProvider.Meta().(*clients.Client).Batch.ApplicationClient
ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext
Expand All @@ -83,7 +83,7 @@ func testCheckAzureRMBatchApplicationExists(resourceName string) resource.TestCh
}
}

func testCheckAzureRMBatchApplicationDestroy(s *terraform.State) error {
func testCheckBatchApplicationDestroy(s *terraform.State) error {
client := acceptance.AzureProvider.Meta().(*clients.Client).Batch.ApplicationClient
ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext

Expand All @@ -109,7 +109,7 @@ func testCheckAzureRMBatchApplicationDestroy(s *terraform.State) error {
return nil
}

func testAccAzureRMBatchApplication_template(data acceptance.TestData, displayName string) string {
func testAccBatchApplication_template(data acceptance.TestData, displayName string) string {
return fmt.Sprintf(`
provider "azurerm" {
features {}
Expand Down

0 comments on commit ebfa248

Please sign in to comment.