From 7961e889d76d7dc55ced2b9ab8a01bf207d8ab63 Mon Sep 17 00:00:00 2001 From: Paul Tyng Date: Fri, 10 Jul 2020 21:51:50 -0400 Subject: [PATCH] Fix addr and ID usage for import --- tfexec/import.go | 17 ++++++----------- tfexec/import_test.go | 11 ++++++----- tfexec/options.go | 16 ---------------- 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/tfexec/import.go b/tfexec/import.go index bd204ca2..c1de8ba1 100644 --- a/tfexec/import.go +++ b/tfexec/import.go @@ -31,14 +31,6 @@ type ImportOption interface { configureImport(*importConfig) } -func (opt *AddrOption) configureImport(conf *importConfig) { - conf.addr = opt.addr -} - -func (opt *IdOption) configureImport(conf *importConfig) { - conf.id = opt.id -} - func (opt *BackupOption) configureImport(conf *importConfig) { conf.backup = opt.path } @@ -75,8 +67,8 @@ func (opt *VarFileOption) configureImport(conf *importConfig) { conf.varFile = opt.path } -func (t *Terraform) Import(ctx context.Context, opts ...ImportOption) error { - importCmd := t.ImportCmd(ctx, opts...) +func (t *Terraform) Import(ctx context.Context, address, id string, opts ...ImportOption) error { + importCmd := t.ImportCmd(ctx, address, id, opts...) var errBuf strings.Builder importCmd.Stderr = &errBuf @@ -89,7 +81,7 @@ func (t *Terraform) Import(ctx context.Context, opts ...ImportOption) error { return nil } -func (tf *Terraform) ImportCmd(ctx context.Context, opts ...ImportOption) *exec.Cmd { +func (tf *Terraform) ImportCmd(ctx context.Context, address, id string, opts ...ImportOption) *exec.Cmd { c := defaultImportOptions for _, o := range opts { @@ -133,5 +125,8 @@ func (tf *Terraform) ImportCmd(ctx context.Context, opts ...ImportOption) *exec. } } + // required args, always pass + args = append(args, address, id) + return tf.buildTerraformCmd(ctx, args...) } diff --git a/tfexec/import_test.go b/tfexec/import_test.go index 9cdb81d0..c5530a3d 100644 --- a/tfexec/import_test.go +++ b/tfexec/import_test.go @@ -17,18 +17,18 @@ func TestImportCmd(t *testing.T) { } // defaults - importCmd := tf.ImportCmd(context.Background()) + importCmd := tf.ImportCmd(context.Background(), "my-addr", "my-id") actual := strings.TrimPrefix(cmdString(importCmd), importCmd.Path+" ") - expected := "import -no-color -input=false -lock-timeout=0s -lock=true" + expected := "import -no-color -input=false -lock-timeout=0s -lock=true my-addr my-id" if actual != expected { t.Fatalf("expected default arguments of ImportCmd:\n%s\n actual arguments:\n%s\n", expected, actual) } // override all defaults - importCmd = tf.ImportCmd(context.Background(), + importCmd = tf.ImportCmd(context.Background(), "my-addr2", "my-id2", Backup("testbackup"), LockTimeout("200s"), State("teststate"), @@ -37,11 +37,12 @@ func TestImportCmd(t *testing.T) { Lock(false), Var("var1=foo"), Var("var2=bar"), - AllowMissingConfig(true)) + AllowMissingConfig(true), + ) actual = strings.TrimPrefix(cmdString(importCmd), importCmd.Path+" ") - expected = "import -no-color -input=false -backup=testbackup -lock-timeout=200s -state=teststate -state-out=teststateout -var-file=testvarfile -lock=false -allow-missing-config -var 'var1=foo' -var 'var2=bar'" + expected = "import -no-color -input=false -backup=testbackup -lock-timeout=200s -state=teststate -state-out=teststateout -var-file=testvarfile -lock=false -allow-missing-config -var 'var1=foo' -var 'var2=bar' my-addr2 my-id2" if actual != expected { t.Fatalf("expected arguments of ImportCmd:\n%s\n actual arguments:\n%s\n", expected, actual) diff --git a/tfexec/options.go b/tfexec/options.go index 970e92fa..7dc2ba15 100644 --- a/tfexec/options.go +++ b/tfexec/options.go @@ -1,13 +1,5 @@ package tfexec -type AddrOption struct { - addr string -} - -func Addr(addr string) *AddrOption { - return &AddrOption{addr} -} - type AllowMissingConfigOption struct { allowMissingConfig bool } @@ -97,14 +89,6 @@ func GetPlugins(getPlugins bool) *GetPluginsOption { return &GetPluginsOption{getPlugins} } -type IdOption struct { - id string -} - -func Id(id string) *IdOption { - return &IdOption{id} -} - type LockOption struct { lock bool }