From 2762a940c0b1642a2cc12aa1b0f5c40bac3836d8 Mon Sep 17 00:00:00 2001 From: Alisdair McDiarmid Date: Fri, 20 Aug 2021 14:46:09 -0400 Subject: [PATCH] command: Suppress prompt for init -force-copy The -force-copy flag to init should automatically migrate state. Previously this was not applied to one case: when migrating from a backend with multiple workspaces to another backend supporting multiple workspaces. I believe this was an oversight so this commit fixes that. --- internal/command/meta_backend_migrate.go | 30 ++++++++++++++---------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/internal/command/meta_backend_migrate.go b/internal/command/meta_backend_migrate.go index 5307b50e7..0021b5850 100644 --- a/internal/command/meta_backend_migrate.go +++ b/internal/command/meta_backend_migrate.go @@ -146,19 +146,23 @@ func (m *Meta) backendMigrateState(opts *backendMigrateOpts) error { func (m *Meta) backendMigrateState_S_S(opts *backendMigrateOpts) error { log.Print("[TRACE] backendMigrateState: migrating all named workspaces") - // Ask the user if they want to migrate their existing remote state - migrate, err := m.confirm(&terraform.InputOpts{ - Id: "backend-migrate-multistate-to-multistate", - Query: fmt.Sprintf( - "Do you want to migrate all workspaces to %q?", - opts.TwoType), - Description: fmt.Sprintf( - strings.TrimSpace(inputBackendMigrateMultiToMulti), - opts.OneType, opts.TwoType), - }) - if err != nil { - return fmt.Errorf( - "Error asking for state migration action: %s", err) + migrate := opts.force + if !migrate { + var err error + // Ask the user if they want to migrate their existing remote state + migrate, err = m.confirm(&terraform.InputOpts{ + Id: "backend-migrate-multistate-to-multistate", + Query: fmt.Sprintf( + "Do you want to migrate all workspaces to %q?", + opts.TwoType), + Description: fmt.Sprintf( + strings.TrimSpace(inputBackendMigrateMultiToMulti), + opts.OneType, opts.TwoType), + }) + if err != nil { + return fmt.Errorf( + "Error asking for state migration action: %s", err) + } } if !migrate { return fmt.Errorf("Migration aborted by user.")