Merge pull request #29793 from hashicorp/alisdair/fix-remote-backend-migrate-version-check

backend/remote: Fix version check when migrating
This commit is contained in:
Alisdair McDiarmid 2021-10-25 12:50:27 -04:00 committed by GitHub
commit 22923f9873
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -77,13 +77,26 @@ func (m *Meta) backendMigrateState(opts *backendMigrateOpts) error {
// as we are migrating away and will not break a remote workspace. // as we are migrating away and will not break a remote workspace.
m.ignoreRemoteBackendVersionConflict(opts.Source) m.ignoreRemoteBackendVersionConflict(opts.Source)
for _, workspace := range destinationWorkspaces { // Disregard remote Terraform version if instructed to do so via CLI flag.
if m.ignoreRemoteVersion {
m.ignoreRemoteBackendVersionConflict(opts.Destination)
} else {
// Check the remote Terraform version for the state destination backend. If // Check the remote Terraform version for the state destination backend. If
// it's a Terraform Cloud remote backend, we want to ensure that we don't // it's a Terraform Cloud remote backend, we want to ensure that we don't
// break the workspace by uploading an incompatible state file. // break the workspace by uploading an incompatible state file.
diags := m.remoteBackendVersionCheck(opts.Destination, workspace) for _, workspace := range destinationWorkspaces {
if diags.HasErrors() { diags := m.remoteBackendVersionCheck(opts.Destination, workspace)
return diags.Err() if diags.HasErrors() {
return diags.Err()
}
}
// If there are no specified destination workspaces, perform a remote
// backend version check with the default workspace.
if len(destinationWorkspaces) == 0 {
diags := m.remoteBackendVersionCheck(opts.Destination, backend.DefaultStateName)
if diags.HasErrors() {
return diags.Err()
}
} }
} }