Skip to content

Commit

Permalink
fix(is_instance): fixed vsi creation issue with catalog images and vni
Browse files Browse the repository at this point in the history
  • Loading branch information
ujjwal-ibm authored and hkantare committed Sep 10, 2024
1 parent b1220fa commit a9b135f
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 2 deletions.
4 changes: 2 additions & 2 deletions ibm/service/vpc/resource_ibm_is_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -400,15 +400,15 @@ func ResourceIBMISInstance() *schema.Resource {
Optional: true,
ForceNew: true,
ConflictsWith: []string{"catalog_offering.0.version_crn"},
RequiredWith: []string{isInstanceZone, isInstancePrimaryNetworkInterface, isInstanceVPC, isInstanceProfile},
RequiredWith: []string{isInstanceZone, isInstanceVPC, isInstanceProfile},
Description: "Identifies a catalog offering by a unique CRN property",
},
isInstanceCatalogOfferingVersionCrn: {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ConflictsWith: []string{"catalog_offering.0.offering_crn"},
RequiredWith: []string{isInstanceZone, isInstancePrimaryNetworkInterface, isInstanceVPC, isInstanceProfile},
RequiredWith: []string{isInstanceZone, isInstanceVPC, isInstanceProfile},
Description: "Identifies a version of a catalog offering by a unique CRN property",
},
isInstanceCatalogOfferingPlanCrn: {
Expand Down
93 changes: 93 additions & 0 deletions ibm/service/vpc/resource_ibm_is_instance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2677,6 +2677,43 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVE
},
})
}
func TestAccIBMISInstance_catalog_pna(t *testing.T) {
var instance string
vpcname := fmt.Sprintf("tf-vpc-%d", acctest.RandIntRange(10, 100))
name := fmt.Sprintf("tf-instnace-%d", acctest.RandIntRange(10, 100))
subnetname := fmt.Sprintf("tf-subnet-%d", acctest.RandIntRange(10, 100))
publicKey := strings.TrimSpace(`
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR
`)
sshname := fmt.Sprintf("tf-ssh-%d", acctest.RandIntRange(10, 100))
userData1 := "a"

resource.Test(t, resource.TestCase{
PreCheck: func() { acc.TestAccPreCheck(t) },
Providers: acc.TestAccProviders,
CheckDestroy: testAccCheckIBMISInstanceDestroy,
Steps: []resource.TestStep{
{
Config: testAccCheckIBMISInstanceCatalogImagePNAConfig(vpcname, subnetname, sshname, publicKey, name, userData1),
Check: resource.ComposeTestCheckFunc(
testAccCheckIBMISInstanceExists("ibm_is_instance.testacc_instance", instance),
resource.TestCheckResourceAttr(
"ibm_is_instance.testacc_instance", "name", name),
resource.TestCheckResourceAttr(
"ibm_is_instance.testacc_instance", "user_data", userData1),
resource.TestCheckResourceAttr(
"ibm_is_instance.testacc_instance", "zone", acc.ISZoneName),
resource.TestCheckResourceAttrSet(
"ibm_is_instance.testacc_instance", "catalog_offering.0.version_crn"),
resource.TestCheckResourceAttrSet(
"data.ibm_is_images.testacc_images", "images.0.name"),
resource.TestCheckResourceAttrSet(
"ibm_is_instance.testacc_instance", "primary_network_attachment.#"),
),
},
},
})
}

func testAccCheckIBMISInstanceCatalogImageConfig(vpcname, subnetname, sshname, publicKey, name, userData string) string {
return fmt.Sprintf(`
Expand Down Expand Up @@ -2720,3 +2757,59 @@ func testAccCheckIBMISInstanceCatalogImageConfig(vpcname, subnetname, sshname, p
}
}`, vpcname, subnetname, acc.ISZoneName, acc.ISCIDR, sshname, publicKey, name, acc.InstanceProfileName, userData, acc.ISZoneName)
}
func testAccCheckIBMISInstanceCatalogImagePNAConfig(vpcname, subnetname, sshname, publicKey, name, userData string) string {
return fmt.Sprintf(`
resource "ibm_is_vpc" "testacc_vpc" {
name = "%s"
}
resource "ibm_is_subnet" "testacc_subnet" {
name = "%s"
vpc = ibm_is_vpc.testacc_vpc.id
zone = "%s"
ipv4_cidr_block = "%s"
}
resource "ibm_is_ssh_key" "testacc_sshkey" {
name = "%s"
public_key = "%s"
}
data "ibm_is_images" "testacc_images" {
catalog_managed = true
}
resource "ibm_is_instance" "testacc_instance" {
name = "%s"
profile = "%s"
primary_network_attachment {
name = "testacc-instance-pna"
virtual_network_interface {
name = "testacc-instance-pna-vni"
primary_ip {
auto_delete = true
address = cidrhost(ibm_is_subnet.testacc_subnet.ipv4_cidr_block, 23)
}
subnet = ibm_is_subnet.testacc_subnet.id
}
}
user_data = "%s"
vpc = ibm_is_vpc.testacc_vpc.id
zone = "%s"
keys = [ibm_is_ssh_key.testacc_sshkey.id]
network_attachments {
name = "testacc-instance-sna"
virtual_network_interface {
name = "testacc-instance-sna-vni"
primary_ip {
auto_delete = true
address = cidrhost(ibm_is_subnet.testacc_subnet.ipv4_cidr_block, 22)
}
subnet = ibm_is_subnet.testacc_subnet.id
}
}
catalog_offering {
version_crn = data.ibm_is_images.testacc_images.images.0.catalog_offering.0.version.0.crn
}
}`, vpcname, subnetname, acc.ISZoneName, acc.ISCIDR, sshname, publicKey, name, acc.InstanceProfileName, userData, acc.ISZoneName)
}

0 comments on commit a9b135f

Please sign in to comment.