Skip to content

Commit

Permalink
resource/alicloud_alb_load_balancer: Improved the state refresh funct…
Browse files Browse the repository at this point in the history
…ion AlbJobStateRefreshFunc; resource/alicloud_alb_listener: Fixed the update error caused by state refresh
  • Loading branch information
MrWolong committed Dec 19, 2024
1 parent a646a85 commit e096a37
Show file tree
Hide file tree
Showing 6 changed files with 294 additions and 242 deletions.
222 changes: 118 additions & 104 deletions alicloud/resource_alicloud_alb_ascript_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ import (
)

// Case 1
func TestAccAlicloudAlbAscript_basic2051(t *testing.T) {
func TestAccAliCloudAlbAscript_basic2051(t *testing.T) {
var v map[string]interface{}
resourceId := "alicloud_alb_ascript.default"
ra := resourceAttrInit(resourceId, AlicloudAlbAscriptMap2051)
ra := resourceAttrInit(resourceId, AliCloudAlbAscriptMap2051)
rc := resourceCheckInitWithDescribeMethod(resourceId, &v, func() interface{} {
return &AlbService{testAccProvider.Meta().(*connectivity.AliyunClient)}
}, "DescribeAlbAscript")
rac := resourceAttrCheckInit(rc, ra)
testAccCheck := rac.resourceAttrMapUpdateSet()
rand := acctest.RandIntRange(100, 999)
name := fmt.Sprintf("tf-testaccalbascript%d", rand)
testAccConfig := resourceTestAccConfigFunc(resourceId, name, AlicloudAlbAscriptBasicDependence2051)
testAccConfig := resourceTestAccConfigFunc(resourceId, name, AliCloudAlbAscriptBasicDependence2051)
resource.Test(t, resource.TestCase{
PreCheck: func() {
testAccPreCheck(t)
Expand Down Expand Up @@ -117,45 +117,45 @@ func TestAccAlicloudAlbAscript_basic2051(t *testing.T) {
})
}

var AlicloudAlbAscriptMap2051 = map[string]string{}
var AliCloudAlbAscriptMap2051 = map[string]string{}

func AlicloudAlbAscriptBasicDependence2051(name string) string {
func AliCloudAlbAscriptBasicDependence2051(name string) string {
return fmt.Sprintf(`
variable "name" {
default = "%s"
default = "%s"
}
variable "port" {
default = "3366"
variable "port" {
default = "3366"
}
data "alicloud_alb_zones" "default"{}
data "alicloud_alb_zones" "default" {}
data "alicloud_vpcs" "default" {
name_regex = "^default-NODELETING$"
name_regex = "^default-NODELETING$"
}
data "alicloud_vswitches" "default_1" {
vpc_id = data.alicloud_vpcs.default.ids.0
vpc_id = data.alicloud_vpcs.default.ids.0
zone_id = data.alicloud_alb_zones.default.zones.0.id
}
resource "alicloud_vswitch" "vswitch_1" {
count = length(data.alicloud_vswitches.default_1.ids) > 0 ? 0 : 1
vpc_id = data.alicloud_vpcs.default.ids.0
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs[0].cidr_block, 8, 2)
zone_id = data.alicloud_alb_zones.default.zones.0.id
vswitch_name = var.name
count = length(data.alicloud_vswitches.default_1.ids) > 0 ? 0 : 1
vpc_id = data.alicloud_vpcs.default.ids.0
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs[0].cidr_block, 8, 2)
zone_id = data.alicloud_alb_zones.default.zones.0.id
vswitch_name = var.name
}
data "alicloud_vswitches" "default_2" {
vpc_id = data.alicloud_vpcs.default.ids.0
vpc_id = data.alicloud_vpcs.default.ids.0
zone_id = data.alicloud_alb_zones.default.zones.1.id
}
resource "alicloud_vswitch" "vswitch_2" {
count = length(data.alicloud_vswitches.default_2.ids) > 0 ? 0 : 1
vpc_id = data.alicloud_vpcs.default.ids.0
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs[0].cidr_block, 8, 4)
zone_id = data.alicloud_alb_zones.default.zones.1.id
vswitch_name = var.name
count = length(data.alicloud_vswitches.default_2.ids) > 0 ? 0 : 1
vpc_id = data.alicloud_vpcs.default.ids.0
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs[0].cidr_block, 8, 4)
zone_id = data.alicloud_alb_zones.default.zones.1.id
vswitch_name = var.name
}
data "alicloud_resource_manager_resource_groups" "default" {}
Expand All @@ -174,111 +174,125 @@ resource "alicloud_log_store" "default" {
}
resource "alicloud_alb_load_balancer" "default_3" {
vpc_id = data.alicloud_vpcs.default.ids.0
address_type = "Internet"
vpc_id = data.alicloud_vpcs.default.ids.0
address_type = "Internet"
address_allocated_mode = "Fixed"
load_balancer_name = var.name
load_balancer_edition = "Standard"
resource_group_id = data.alicloud_resource_manager_resource_groups.default.groups.0.id
load_balancer_name = var.name
load_balancer_edition = "Standard"
resource_group_id = data.alicloud_resource_manager_resource_groups.default.groups.0.id
load_balancer_billing_config {
pay_type = "PayAsYouGo"
pay_type = "PayAsYouGo"
}
tags = {
Created = "TF"
Created = "TF"
}
zone_mappings {
vswitch_id = length(data.alicloud_vswitches.default_1.ids) > 0 ? data.alicloud_vswitches.default_1.ids[0] : concat(alicloud_vswitch.vswitch_1.*.id, [""])[0]
zone_id = data.alicloud_alb_zones.default.zones.0.id
}
zone_mappings{
vswitch_id = length(data.alicloud_vswitches.default_1.ids) > 0 ? data.alicloud_vswitches.default_1.ids[0] : concat(alicloud_vswitch.vswitch_1.*.id, [""])[0]
zone_id = data.alicloud_alb_zones.default.zones.0.id
}
zone_mappings{
vswitch_id = length(data.alicloud_vswitches.default_2.ids) > 0 ? data.alicloud_vswitches.default_2.ids[0] : concat(alicloud_vswitch.vswitch_2.*.id, [""])[0]
zone_id = data.alicloud_alb_zones.default.zones.1.id
}
modification_protection_config{
status = "NonProtection"
zone_mappings {
vswitch_id = length(data.alicloud_vswitches.default_2.ids) > 0 ? data.alicloud_vswitches.default_2.ids[0] : concat(alicloud_vswitch.vswitch_2.*.id, [""])[0]
zone_id = data.alicloud_alb_zones.default.zones.1.id
}
access_log_config{
log_project = alicloud_log_project.default.name
log_store = alicloud_log_store.default.name
modification_protection_config {
status = "NonProtection"
}
access_log_config {
log_project = alicloud_log_project.default.name
log_store = alicloud_log_store.default.name
}
}
resource "alicloud_alb_server_group" "default_4" {
protocol = "HTTP"
vpc_id = data.alicloud_vpcs.default.vpcs.0.id
server_group_name = var.name
resource_group_id = data.alicloud_resource_manager_resource_groups.default.groups.0.id
health_check_config {
health_check_enabled = "false"
}
sticky_session_config {
sticky_session_enabled = "false"
}
tags = {
Created = "TF"
}
protocol = "HTTP"
vpc_id = data.alicloud_vpcs.default.vpcs.0.id
server_group_name = var.name
resource_group_id = data.alicloud_resource_manager_resource_groups.default.groups.0.id
health_check_config {
health_check_enabled = "false"
}
sticky_session_config {
sticky_session_enabled = "false"
}
tags = {
Created = "TF"
}
}
resource "alicloud_ssl_certificates_service_certificate" "default" {
certificate_name = var.name
cert = <<EOF
cert = <<EOF
-----BEGIN CERTIFICATE-----
MIIDRjCCAq+gAwIBAgIJAJn3ox4K13PoMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
BAYTAkNOMQswCQYDVQQIEwJCSjELMAkGA1UEBxMCQkoxDDAKBgNVBAoTA0FMSTEP
MA0GA1UECxMGQUxJWVVOMQ0wCwYDVQQDEwR0ZXN0MR8wHQYJKoZIhvcNAQkBFhB0
ZXN0QGhvdG1haWwuY29tMB4XDTE0MTEyNDA2MDQyNVoXDTI0MTEyMTA2MDQyNVow
djELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkJKMQswCQYDVQQHEwJCSjEMMAoGA1UE
ChMDQUxJMQ8wDQYDVQQLEwZBTElZVU4xDTALBgNVBAMTBHRlc3QxHzAdBgkqhkiG
9w0BCQEWEHRlc3RAaG90bWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
AoGBAM7SS3e9+Nj0HKAsRuIDNSsS3UK6b+62YQb2uuhKrp1HMrOx61WSDR2qkAnB
coG00Uz38EE+9DLYNUVQBK7aSgLP5M1Ak4wr4GqGyCgjejzzh3DshUzLCCy2rook
KOyRTlPX+Q5l7rE1fcSNzgepcae5i2sE1XXXzLRIDIvQxcspAgMBAAGjgdswgdgw
HQYDVR0OBBYEFBdy+OuMsvbkV7R14f0OyoLoh2z4MIGoBgNVHSMEgaAwgZ2AFBdy
+OuMsvbkV7R14f0OyoLoh2z4oXqkeDB2MQswCQYDVQQGEwJDTjELMAkGA1UECBMC
QkoxCzAJBgNVBAcTAkJKMQwwCgYDVQQKEwNBTEkxDzANBgNVBAsTBkFMSVlVTjEN
MAsGA1UEAxMEdGVzdDEfMB0GCSqGSIb3DQEJARYQdGVzdEBob3RtYWlsLmNvbYIJ
AJn3ox4K13PoMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAY7KOsnyT
cQzfhiiG7ASjiPakw5wXoycHt5GCvLG5htp2TKVzgv9QTliA3gtfv6oV4zRZx7X1
Ofi6hVgErtHaXJheuPVeW6eAW8mHBoEfvDAfU3y9waYrtUevSl07643bzKL6v+Qd
DUBTxOAvSYfXTtI90EAxEG/bJJyOm5LqoiA=
MIID1zCCAr+gAwIBAgIRAOrWWz1qmkcSg90JDHjuzFwwDQYJKoZIhvcNAQELBQAw
XjELMAkGA1UEBhMCQ04xDjAMBgNVBAoTBU15U1NMMSswKQYDVQQLEyJNeVNTTCBU
ZXN0IFJTQSAtIEZvciB0ZXN0IHVzZSBvbmx5MRIwEAYDVQQDEwlNeVNTTC5jb20w
HhcNMjQxMTI2MDczNjA4WhcNMjkxMTI1MDczNjA4WjAgMQswCQYDVQQGEwJDTjER
MA8GA1UEAxMIdGVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQDa7HDGbQ1Km0f4ZaFzYbjVN0q8KkvZ+oQUd4naGOZnlH5k0XFwmjg+TWf88YX3
5IF8c45/rXrTWucPLg7FeqR96Wq9HZEmzEhs6VG031V9Hqa32saRScCOAyhiW7Hj
OWf6BZveuxbZNbgQCR59QzX4CeAIC68xavIDAy3wcTAH9cIkD71BxEPJGGR7BIVH
9DcWXaMAnJqQfrkth0xHBjflZABHAI0wPYPfaw8fd9DRkMYOIkfjwrrcL5IvhI1u
D3wdHJQWA2vR8hjoU4dHiJLbUtQ+xV1UGVkF67CpQ6LDjSQdX7xlZ7WJMc/7dCJ9
a7tr0ZTwq4/3KSgcRvm62oGvAgMBAAGjgc0wgcowDgYDVR0PAQH/BAQDAgWgMB0G
A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBQogSYF0TQa
P8FzD7uTzxUcPwO/fzBjBggrBgEFBQcBAQRXMFUwIQYIKwYBBQUHMAGGFWh0dHA6
Ly9vY3NwLm15c3NsLmNvbTAwBggrBgEFBQcwAoYkaHR0cDovL2NhLm15c3NsLmNv
bS9teXNzbHRlc3Ryc2EuY3J0MBMGA1UdEQQMMAqCCHRlc3QuY29tMA0GCSqGSIb3
DQEBCwUAA4IBAQAxPOlK5WBA9kITzxYyjqe/YvWzfMlsmj0yvpyHrPeZf7HZTTFz
ebYkzrHL8ZLyOHBhag0nL7Poj6ek98NoXTuCYCi8LspdadapOeYQzLce3beu/frk
sqU0A6WLHG9Ol9yUDMCX7xvLoAY/LDrcOM3Z87C/u/ykB4wKfFN2XfR3EZx3PQqw
sV77LOnyQixB4FMHpHlKuDoUkSN9uvxwEPOeGnLZXm96hPsjPwk1bDM8qerNPpVI
CwJ6kNuZ2eLz2Umqu2Gh3l4aADdIwxRY1OOjjZNut8STosABKWVGIwQbbAdRPQze
qHZ05oVTjFy9L1DAzhQ5Zn3oUjLl5KW4tYBA
-----END CERTIFICATE-----
EOF
key = <<EOF
key = <<EOF
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQDO0kt3vfjY9BygLEbiAzUrEt1Cum/utmEG9rroSq6dRzKzsetV
kg0dqpAJwXKBtNFM9/BBPvQy2DVFUASu2koCz+TNQJOMK+BqhsgoI3o884dw7IVM
ywgstq6KJCjskU5T1/kOZe6xNX3Ejc4HqXGnuYtrBNV118y0SAyL0MXLKQIDAQAB
AoGAfe3NxbsGKhN42o4bGsKZPQDfeCHMxayGp5bTd10BtQIE/ST4BcJH+ihAS7Bd
6FwQlKzivNd4GP1MckemklCXfsVckdL94e8ZbJl23GdWul3v8V+KndJHqv5zVJmP
hwWoKimwIBTb2s0ctVryr2f18N4hhyFw1yGp0VxclGHkjgECQQD9CvllsnOwHpP4
MdrDHbdb29QrobKyKW8pPcDd+sth+kP6Y8MnCVuAKXCKj5FeIsgVtfluPOsZjPzz
71QQWS1dAkEA0T0KXO8gaBQwJhIoo/w6hy5JGZnrNSpOPp5xvJuMAafs2eyvmhJm
Ev9SN/Pf2VYa1z6FEnBaLOVD6hf6YQIsPQJAX/CZPoW6dzwgvimo1/GcY6eleiWE
qygqjWhsh71e/3bz7yuEAnj5yE3t7Zshcp+dXR3xxGo0eSuLfLFxHgGxwQJAAxf8
9DzQ5NkPkTCJi0sqbl8/03IUKTgT6hcbpWdDXa7m8J3wRr3o5nUB+TPQ5nzAbthM
zWX931YQeACcwhxvHQJBAN5mTzzJD4w4Ma6YTaNHyXakdYfyAWrOkPIWZxfhMfXe
DrlNdiysTI4Dd1dLeErVpjsckAaOW/JDG5PCSwkaMxk=
MIIEpAIBAAKCAQEA2uxwxm0NSptH+GWhc2G41TdKvCpL2fqEFHeJ2hjmZ5R+ZNFx
cJo4Pk1n/PGF9+SBfHOOf61601rnDy4OxXqkfelqvR2RJsxIbOlRtN9VfR6mt9rG
kUnAjgMoYlux4zln+gWb3rsW2TW4EAkefUM1+AngCAuvMWryAwMt8HEwB/XCJA+9
QcRDyRhkewSFR/Q3Fl2jAJyakH65LYdMRwY35WQARwCNMD2D32sPH3fQ0ZDGDiJH
48K63C+SL4SNbg98HRyUFgNr0fIY6FOHR4iS21LUPsVdVBlZBeuwqUOiw40kHV+8
ZWe1iTHP+3QifWu7a9GU8KuP9ykoHEb5utqBrwIDAQABAoIBAQCErEfIKOymKybZ
pZXLnAxswt563FMtngGPecZEM1TmrvpOVROffwbY0wZTJ3fd/FBwwIM6Y0MNdYiU
DYCMM0AewmeahqGh1qmJv3hx2eswMXQt9driz8RvDADcYt+SagbWYbHNsKovJrwO
k8gzd5jsYeewWIxqsXpLUxDzJ1VJbIqoHgkrirRRPo0onpixPWeA0RbElSwjwIUw
y43cC4WF8N7wot3cTST8yeKM8ujtqpN22ZtKnbkHTd03vnwQTMeUMJeDQmSmY5aJ
yFr7yw/Z66+7Amh6pkWhzZSDHsjI4y/S3CCdpwFlMA7ID590umJB6HFxWsmVacSe
MSs2vIJZAoGBAOiecPH1HVDQqH6PcrN/X9E3pDKSyAj+nHsVDGIZsie9f5g/qA0A
tcJtQLS0CzrpMTLsAnsfdh2T7Lg6pYFz5jnOUyMjOImAEbCtgvqBxqgFea//OhdP
8s/RmxKIAenBsk7Wbwx8/KPhbZLUNe8OnILVHDfS6kLSa49Iu+4UvrpNAoGBAPDt
mky5MMHKdHwbqxPo9jYrz1m3gqqIvv+VihO4t/DE6t2Zg43ctfFm1BVEDSwPjYs/
YV69KfVrVRUnzMZVdtHZ/dBK784YTY0OujemoaIzMKFIL8tbJFldVv2IgB+IelTX
e675hVdHjNUqZhHwccd8X6d/8icohZw62SNHb/HrAoGBAN1HSt1/c6Gau42Y212Q
fw9ARLuvEQYtXaFfxmXTV7uh8axccXndAQmwb+r1kfE6PojYJQwGQ4+jVX1ynFnm
bEz0zfUQ3gk+gJV2mK+/n7/ZZYZb3WCrtqimFUOtiVRZ40pHhV91zcX+/QK9R4je
d1elbbBUvG9QRu0IHW0+4qfJAoGAOmlQvIM1l/ZOsXw/yO71KoMKnXTJYDERJYQK
2ucw6VXEn39FjtJQ5jsI9jLugp0usvDl2YNBNfgUw7FHi1pTGWOhjqtsYmov+x/z
8+QZUerZQnDu7X2mXWgs3AEJFxwOlJ09pllmg5ecRF4oKvdBjpzP0BtMCURgyFTY
Kh56vIsCgYBMbneMvFY6PCESKIAXj16BF4lqYVXFqHVoxyfxIuVlAy3TMNwxvpbS
yDETk05Ux9yNES0WyTb1SWVG1o1wXc0dnDXCwJqLC1tzJUNUSD1AYvktoNIFErcN
gs3ercrzBTX5ezORPj9ErRAPrSq+V3z1Lge5Gl+EqgDvAfnknww75w==
-----END RSA PRIVATE KEY-----
EOF
}
resource "alicloud_alb_listener" "default" {
load_balancer_id = alicloud_alb_load_balancer.default_3.id
listener_protocol = "HTTPS"
listener_port = var.port
listener_description = var.name
default_actions{
type = "ForwardGroup"
forward_group_config{
server_group_tuples{
server_group_id = alicloud_alb_server_group.default_4.id
}
}
}
certificates{
certificate_id = join("",[alicloud_ssl_certificates_service_certificate.default.id,"-cn-hangzhou"])
}
load_balancer_id = alicloud_alb_load_balancer.default_3.id
listener_protocol = "HTTPS"
listener_port = var.port
listener_description = var.name
default_actions {
type = "ForwardGroup"
forward_group_config {
server_group_tuples {
server_group_id = alicloud_alb_server_group.default_4.id
}
}
}
certificates {
certificate_id = join("", [alicloud_ssl_certificates_service_certificate.default.id, "-cn-hangzhou"])
}
}
`, name)
}
23 changes: 22 additions & 1 deletion alicloud/resource_alicloud_alb_listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,7 @@ func resourceAliCloudAlbListenerRead(d *schema.ResourceData, meta interface{}) e
func resourceAliCloudAlbListenerUpdate(d *schema.ResourceData, meta interface{}) error {
client := meta.(*connectivity.AliyunClient)
albService := AlbService{client}
albServiceV2 := AlbServiceV2{client}
var response map[string]interface{}
d.Partial(true)

Expand Down Expand Up @@ -890,6 +891,7 @@ func resourceAliCloudAlbListenerUpdate(d *schema.ResourceData, meta interface{})

if !d.IsNewResource() && d.HasChange("x_forwarded_for_config") {
update = true

if v, ok := d.GetOk("x_forwarded_for_config"); ok {
xforwardedForConfigMap := map[string]interface{}{}
for _, xforwardedForConfig := range v.(*schema.Set).List() {
Expand All @@ -913,8 +915,11 @@ func resourceAliCloudAlbListenerUpdate(d *schema.ResourceData, meta interface{})

updateListenerAttributeReq["XForwardedForConfig"] = xforwardedForConfigMap
}
} else if !d.IsNewResource() && d.HasChange("xforwarded_for_config") {
}

if !d.IsNewResource() && d.HasChange("xforwarded_for_config") {
update = true

if v, ok := d.GetOk("xforwarded_for_config"); ok {
xforwardedForConfigMap := map[string]interface{}{}
for _, xforwardedForConfig := range v.(*schema.Set).List() {
Expand Down Expand Up @@ -991,6 +996,7 @@ func resourceAliCloudAlbListenerUpdate(d *schema.ResourceData, meta interface{})
newAssociateAclsSet := newAssociateVpcs.(*schema.Set)
removed := oldAssociateAclsSet.Difference(newAssociateAclsSet)
added := newAssociateAclsSet.Difference(oldAssociateAclsSet)

if removed.Len() > 0 {
action := "DissociateAclsFromListener"
dissociateAclsFromListenerReq := map[string]interface{}{
Expand Down Expand Up @@ -1025,14 +1031,22 @@ func resourceAliCloudAlbListenerUpdate(d *schema.ResourceData, meta interface{})
return nil
})
addDebug(action, response, dissociateAclsFromListenerReq)

if err != nil {
return WrapErrorf(err, DefaultErrorMsg, d.Id(), action, AlibabaCloudSdkGoERROR)
}

stateConf := BuildStateConf([]string{}, []string{"Running"}, d.Timeout(schema.TimeoutUpdate), 5*time.Second, albService.AlbListenerStateRefreshFunc(d.Id(), []string{}))
if _, err := stateConf.WaitForState(); err != nil {
return WrapErrorf(err, IdMsg, d.Id())
}

stateConf = BuildStateConf([]string{}, []string{"Succeeded"}, d.Timeout(schema.TimeoutDelete), 5*time.Second, albServiceV2.AlbJobStateRefreshFunc(d.Id(), "listener", response["JobId"].(string), []string{}))
if _, err := stateConf.WaitForState(); err != nil {
return WrapErrorf(err, IdMsg, d.Id())
}
}

if added.Len() > 0 {
action := "AssociateAclsWithListener"
associateAclsWithListenerReq := map[string]interface{}{
Expand Down Expand Up @@ -1068,13 +1082,20 @@ func resourceAliCloudAlbListenerUpdate(d *schema.ResourceData, meta interface{})
return nil
})
addDebug(action, response, associateAclsWithListenerReq)

if err != nil {
return WrapErrorf(err, DefaultErrorMsg, d.Id(), action, AlibabaCloudSdkGoERROR)
}

stateConf := BuildStateConf([]string{}, []string{"Running"}, d.Timeout(schema.TimeoutUpdate), 5*time.Second, albService.AlbListenerStateRefreshFunc(d.Id(), []string{}))
if _, err := stateConf.WaitForState(); err != nil {
return WrapErrorf(err, IdMsg, d.Id())
}

stateConf = BuildStateConf([]string{}, []string{"Succeeded"}, d.Timeout(schema.TimeoutDelete), 5*time.Second, albServiceV2.AlbJobStateRefreshFunc(d.Id(), "listener", response["JobId"].(string), []string{}))
if _, err := stateConf.WaitForState(); err != nil {
return WrapErrorf(err, IdMsg, d.Id())
}
}
}

Expand Down
Loading

0 comments on commit e096a37

Please sign in to comment.