in teamcity/vcsroot.go [357:396]
func (r *vcsRootResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
var oldState vcsRootResourceModel
diags := req.State.Get(ctx, &oldState)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
actual, err := r.client.GetVcsRoot(oldState.Id.ValueString())
if err != nil {
resp.Diagnostics.AddError(
"Error Reading VCS root",
err.Error(),
)
return
}
if actual == nil {
resp.State.RemoveResource(ctx)
return
}
newState, err := r.readState(*actual)
if err != nil {
resp.Diagnostics.AddError(
"REST returned invalid value: ",
err.Error(),
)
return
}
if oldState.Git != nil {
newState.Git.Password = oldState.Git.Password
newState.Git.Passphrase = oldState.Git.Passphrase
}
diags = resp.State.Set(ctx, newState)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
}