Skip to content

Commit f56fb80

Browse files
raphinkstack72
authored andcommitted
Rancher: reset Id for unknown resources (hashicorp#11543)
When switching from one Rancher server to another, we want Terraform to recreate Rancher resources. This currently leads to ugly `EOF` errors. This patch resets resource Ids when they can't be found in the Rancher API.
1 parent 001ee8c commit f56fb80

5 files changed

Lines changed: 30 additions & 0 deletions

builtin/providers/rancher/resource_rancher_environment.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@ func resourceRancherEnvironmentRead(d *schema.ResourceData, meta interface{}) er
9494
return err
9595
}
9696

97+
if env == nil {
98+
log.Printf("[INFO] Environment %s not found", d.Id())
99+
d.SetId("")
100+
return nil
101+
}
102+
97103
log.Printf("[INFO] Environment Name: %s", env.Name)
98104

99105
d.Set("description", env.Description)

builtin/providers/rancher/resource_rancher_registration_token.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@ func resourceRancherRegistrationTokenRead(d *schema.ResourceData, meta interface
108108
return err
109109
}
110110

111+
if regT == nil {
112+
log.Printf("[INFO] RegistrationToken %s not found", d.Id())
113+
d.SetId("")
114+
return nil
115+
}
116+
111117
log.Printf("[INFO] RegistrationToken Name: %s", regT.Name)
112118

113119
d.Set("description", regT.Description)

builtin/providers/rancher/resource_rancher_registry.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ func resourceRancherRegistryRead(d *schema.ResourceData, meta interface{}) error
100100
return err
101101
}
102102

103+
if registry == nil {
104+
log.Printf("[INFO] Registry %s not found", d.Id())
105+
d.SetId("")
106+
return nil
107+
}
108+
103109
log.Printf("[INFO] Registry Name: %s", registry.Name)
104110

105111
d.Set("description", registry.Description)

builtin/providers/rancher/resource_rancher_registry_credential.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@ func resourceRancherRegistryCredentialRead(d *schema.ResourceData, meta interfac
114114
return err
115115
}
116116

117+
if registryCred == nil {
118+
log.Printf("[INFO] RegistryCredential %s not found", d.Id())
119+
d.SetId("")
120+
return nil
121+
}
122+
117123
log.Printf("[INFO] RegistryCredential Name: %s", registryCred.Name)
118124

119125
d.Set("description", registryCred.Description)

builtin/providers/rancher/resource_rancher_stack.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,12 @@ func resourceRancherStackRead(d *schema.ResourceData, meta interface{}) error {
132132
return err
133133
}
134134

135+
if stack == nil {
136+
log.Printf("[INFO] Stack %s not found", d.Id())
137+
d.SetId("")
138+
return nil
139+
}
140+
135141
if stack.State == "removed" {
136142
log.Printf("[INFO] Stack %s was removed on %v", d.Id(), stack.Removed)
137143
d.SetId("")

0 commit comments

Comments
 (0)