forked from hashicorp/terraform-provider-azurerm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add new acc test to verify ssh key issue
This commit adds a new acceptance test to verify that the vmss is not calculating correctly the hashcode for the `os_profile_linux_config` Related: hashicorp#3836
- Loading branch information
1 parent
8fac935
commit f882f40
Showing
1 changed file
with
171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -174,6 +174,38 @@ func TestUnitAzureRMVirtualMachineScaleSet_basicPublicIP_simpleUpdate(t *testing | |
}) | ||
} | ||
|
||
func TestAccAzureRMVirtualMachineScaleSet_verify_key_data_changed(t *testing.T) { | ||
resourceName := "azurerm_virtual_machine_scale_set.test" | ||
ri := tf.AccRandTimeInt() | ||
location := testLocation() | ||
config := testAccAzureRMVirtualMachineScaleSet_linux(ri, location) | ||
updatedConfig := testAccAzureRMVirtualMachineScaleSet_linuxKeyDataUpdated(ri, location) | ||
|
||
initialKeyData := "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDCsTcryUl51Q2VSEHqDRNmceUFo55ZtcIwxl2QITbN1RREti5ml/VTytC0yeBOvnZA4x4CFpdw/lCDPk0yrH9Ei5vVkXmOrExdTlT3qI7YaAzj1tUVlBd4S6LX1F7y6VLActvdHuDDuXZXzCDd/97420jrDfWZqJMlUK/EmCE5ParCeHIRIvmBxcEnGfFIsw8xQZl0HphxWOtJil8qsUWSdMyCiJYYQpMoMliO99X40AUc4/AlsyPyT5ddbKk08YrZ+rKDVHF7o29rh4vi5MmHkVgVQHKiKybWlHq+b71gIAUQk9wrJxD+dqt4igrmDSpIjfjwnd+l5UIn5fJSO5DYV4YT/4hwK7OKmuo7OFHD0WyY5YnkYEMtFgzemnRBdE8ulcT60DQpVgRMXFWHvhyCWy0L6sgj1QWDZlLpvsIvNfHsyhKFMG1frLnMt/nP0+YCcfg+v1JYeCKjeoJxB8DWcRBsjzItY0CGmzP8UYZiYKl/2u+2TgFS5r7NWH11bxoUzjKdaa1NLw+ieA8GlBFfCbfWe6YVB9ggUte4VtYFMZGxOjS2bAiYtfgTKFJv+XqORAwExG6+G2eDxIDyo80/OA9IG7Xv/jwQr7D6KDjDuULFcN/iTxuttoKrHeYz1hf5ZQlBdllwJHYx6fK2g8kha6r2JIQKocvsAXiiONqSfw== [email protected]" | ||
expectedKeyData := "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDvXYZAjVUt2aojUV3XIA+PY6gXrgbvktXwf2NoIHGlQFhogpMEyOfqgogCtTBM7MNCS3ELul6SV+mlpH08Ki45ADIQuDXdommCvsMFW096JrsHOJpGfjCsJ1gbbv7brB3Ag+BSGb4qO3pRsEVTtZCeJDwfH5D7vmqP5xXcELKR4UAtKQKUhLvt6mhW90sFLTJeOTiYGbavIKqfCUFSeSMQkUPr8o3uzOfeWyCw7tc7szLuvfwJ5poGHuve73KKAlUnDTPUrhyj7iITZSDl+/i+bpDzPyCyJWDMsC0ON7q2fDr2mEz0L9ACrsI5Nx3lt5fe+IaHSrjivqnL8SqUWSN45o9Qp99sGWFiuTfos8f1jp+AXzC4ArVtKyRg/CnzKRiK0CGSxBJ5s9zAoa7yBBmjCszq89vFa0eMgpEIZFwa6kKJKt9AfRBXgO9YGPV4uaN7topy92/p2pE+vF8IafarbvnTDOQt62mS07tXYqYg1DhecrmBVWKlq9oafBweoeTjoq52SoGsuDc/YAOzIgWVIuvV8yKoh9KbXPWowjLtxDhRIS/d1nMMNdNI8X0TQivgi5+umMgAXhsVAKSNDUauLt4jimYkWAuE+R6KoCqVFdaB9bQDySBjAziruDSe3reToydjzzluvHMjWK8QiDynxs41pi4zZz6gAlca3QPkEQ== [email protected]" | ||
|
||
resource.ParallelTest(t, resource.TestCase{ | ||
PreCheck: func() { testAccPreCheck(t) }, | ||
Providers: testAccProviders, | ||
CheckDestroy: testCheckAzureRMVirtualMachineScaleSetDestroy, | ||
Steps: []resource.TestStep{ | ||
{ | ||
Config: config, | ||
Check: resource.ComposeTestCheckFunc( | ||
testCheckAzureRMVirtualMachineScaleSetExists(resourceName), | ||
testCheckAzureRMVirtualMachineScaleSetSshKey(resourceName, initialKeyData), | ||
), | ||
}, | ||
{ | ||
Config: updatedConfig, | ||
Check: resource.ComposeTestCheckFunc( | ||
testCheckAzureRMVirtualMachineScaleSetSshKey(resourceName, expectedKeyData), | ||
), | ||
}, | ||
}, | ||
}) | ||
} | ||
|
||
func TestAccAzureRMVirtualMachineScaleSet_basicApplicationSecurity(t *testing.T) { | ||
resourceName := "azurerm_virtual_machine_scale_set.test" | ||
ri := tf.AccRandTimeInt() | ||
|
@@ -1266,6 +1298,28 @@ func testCheckAzureRMVirtualMachineScaleSetAcceleratedNetworking(name string, bo | |
} | ||
} | ||
|
||
func testCheckAzureRMVirtualMachineScaleSetSshKey(name string, expected string) resource.TestCheckFunc { | ||
return func(s *terraform.State) error { | ||
resp, err := testGetAzureRMVirtualMachineScaleSet(s, name) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
n := resp.VirtualMachineProfile.OsProfile.LinuxConfiguration | ||
if n == nil { | ||
return fmt.Errorf("Bad: Could not get linux configuration for scale set %v", name) | ||
} | ||
|
||
publicKey := *(*n).SSH.PublicKeys | ||
keyData := *(publicKey[0]).KeyData | ||
if keyData != expected { | ||
return fmt.Errorf("Bad: ssh_keys.key_data set incorrectly for scale set %v\n Wanted: %+v Received: %+v", name, expected, keyData) | ||
} | ||
|
||
return nil | ||
} | ||
} | ||
|
||
func testCheckAzureRMVirtualMachineScaleSetOverprovision(name string) resource.TestCheckFunc { | ||
return func(s *terraform.State) error { | ||
resp, err := testGetAzureRMVirtualMachineScaleSet(s, name) | ||
|
@@ -3026,6 +3080,123 @@ resource "azurerm_virtual_machine_scale_set" "test" { | |
`, rInt, location) | ||
} | ||
|
||
func testAccAzureRMVirtualMachineScaleSet_linuxKeyDataUpdated(rInt int, location string) string { | ||
return fmt.Sprintf(` | ||
resource "azurerm_resource_group" "test" { | ||
name = "acctestRG-%[1]d" | ||
location = "%[2]s" | ||
} | ||
resource "azurerm_virtual_network" "test" { | ||
name = "acctestvn-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
location = "${azurerm_resource_group.test.location}" | ||
address_space = ["10.0.0.0/8"] | ||
} | ||
resource "azurerm_subnet" "test" { | ||
name = "acctestsn-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
virtual_network_name = "${azurerm_virtual_network.test.name}" | ||
address_prefix = "10.0.1.0/24" | ||
} | ||
resource "azurerm_storage_account" "test" { | ||
name = "accsa%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
location = "${azurerm_resource_group.test.location}" | ||
account_tier = "Standard" | ||
account_replication_type = "LRS" | ||
} | ||
resource "azurerm_storage_container" "test" { | ||
name = "acctestsc-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
storage_account_name = "${azurerm_storage_account.test.name}" | ||
container_access_type = "private" | ||
} | ||
resource "azurerm_public_ip" "test" { | ||
name = "acctestpip-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
location = "${azurerm_resource_group.test.location}" | ||
allocation_method = "Static" | ||
} | ||
resource "azurerm_lb" "test" { | ||
name = "acctestlb-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
location = "${azurerm_resource_group.test.location}" | ||
frontend_ip_configuration { | ||
name = "ip-address" | ||
public_ip_address_id = "${azurerm_public_ip.test.id}" | ||
} | ||
} | ||
resource "azurerm_lb_backend_address_pool" "test" { | ||
name = "acctestbap-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
loadbalancer_id = "${azurerm_lb.test.id}" | ||
} | ||
resource "azurerm_virtual_machine_scale_set" "test" { | ||
name = "acctestvmss-%[1]d" | ||
resource_group_name = "${azurerm_resource_group.test.name}" | ||
location = "${azurerm_resource_group.test.location}" | ||
upgrade_policy_mode = "Automatic" | ||
sku { | ||
name = "Standard_F2" | ||
tier = "Standard" | ||
capacity = "1" | ||
} | ||
os_profile { | ||
computer_name_prefix = "prefix" | ||
admin_username = "ubuntu" | ||
custom_data = "updated custom data!" | ||
} | ||
os_profile_linux_config { | ||
disable_password_authentication = true | ||
ssh_keys { | ||
path = "/home/ubuntu/.ssh/authorized_keys" | ||
key_data = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDvXYZAjVUt2aojUV3XIA+PY6gXrgbvktXwf2NoIHGlQFhogpMEyOfqgogCtTBM7MNCS3ELul6SV+mlpH08Ki45ADIQuDXdommCvsMFW096JrsHOJpGfjCsJ1gbbv7brB3Ag+BSGb4qO3pRsEVTtZCeJDwfH5D7vmqP5xXcELKR4UAtKQKUhLvt6mhW90sFLTJeOTiYGbavIKqfCUFSeSMQkUPr8o3uzOfeWyCw7tc7szLuvfwJ5poGHuve73KKAlUnDTPUrhyj7iITZSDl+/i+bpDzPyCyJWDMsC0ON7q2fDr2mEz0L9ACrsI5Nx3lt5fe+IaHSrjivqnL8SqUWSN45o9Qp99sGWFiuTfos8f1jp+AXzC4ArVtKyRg/CnzKRiK0CGSxBJ5s9zAoa7yBBmjCszq89vFa0eMgpEIZFwa6kKJKt9AfRBXgO9YGPV4uaN7topy92/p2pE+vF8IafarbvnTDOQt62mS07tXYqYg1DhecrmBVWKlq9oafBweoeTjoq52SoGsuDc/YAOzIgWVIuvV8yKoh9KbXPWowjLtxDhRIS/d1nMMNdNI8X0TQivgi5+umMgAXhsVAKSNDUauLt4jimYkWAuE+R6KoCqVFdaB9bQDySBjAziruDSe3reToydjzzluvHMjWK8QiDynxs41pi4zZz6gAlca3QPkEQ== [email protected]" | ||
} | ||
} | ||
network_profile { | ||
name = "TestNetworkProfile" | ||
primary = true | ||
ip_configuration { | ||
name = "TestIPConfiguration" | ||
primary = true | ||
subnet_id = "${azurerm_subnet.test.id}" | ||
load_balancer_backend_address_pool_ids = ["${azurerm_lb_backend_address_pool.test.id}"] | ||
} | ||
} | ||
storage_profile_os_disk { | ||
name = "osDiskProfile" | ||
caching = "ReadWrite" | ||
create_option = "FromImage" | ||
os_type = "linux" | ||
vhd_containers = ["${azurerm_storage_account.test.primary_blob_endpoint}${azurerm_storage_container.test.name}"] | ||
} | ||
storage_profile_image_reference { | ||
publisher = "Canonical" | ||
offer = "UbuntuServer" | ||
sku = "16.04-LTS" | ||
version = "latest" | ||
} | ||
} | ||
`, rInt, location) | ||
} | ||
|
||
func testAccAzureRMVirtualMachineScaleSet_basicLinux_managedDisk(rInt int, location string) string { | ||
return fmt.Sprintf(` | ||
resource "azurerm_resource_group" "test" { | ||
|