Skip to content

Commit

Permalink
Merge pull request #17645 from hashicorp/jbardin/GH-17462
Browse files Browse the repository at this point in the history
unlock state in console, import, graph, and push
  • Loading branch information
jbardin committed Mar 21, 2018
2 parents 31f2e6a + 90a7542 commit 47b178a
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 0 deletions.
7 changes: 7 additions & 0 deletions command/console.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,13 @@ func (c *ConsoleCommand) Run(args []string) int {
return 1
}

defer func() {
err := opReq.StateLocker.Unlock(nil)
if err != nil {
c.Ui.Error(err.Error())
}
}()

// Setup the UI so we can output directly to stdout
ui := &cli.BasicUi{
Writer: wrappedstreams.Stdout(),
Expand Down
7 changes: 7 additions & 0 deletions command/graph.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,13 @@ func (c *GraphCommand) Run(args []string) int {
return 1
}

defer func() {
err := opReq.StateLocker.Unlock(nil)
if err != nil {
c.Ui.Error(err.Error())
}
}()

// Determine the graph type
graphType := terraform.GraphTypePlan
if plan != nil {
Expand Down
7 changes: 7 additions & 0 deletions command/import.go
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,13 @@ func (c *ImportCommand) Run(args []string) int {
return 1
}

defer func() {
err := opReq.StateLocker.Unlock(nil)
if err != nil {
c.Ui.Error(err.Error())
}
}()

// Perform the import. Note that as you can see it is possible for this
// API to import more than one resource at once. For now, we only allow
// one while we stabilize this feature.
Expand Down
7 changes: 7 additions & 0 deletions command/import_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strings"
"testing"

Expand Down Expand Up @@ -175,11 +176,17 @@ func TestImport_remoteState(t *testing.T) {
"test_instance.foo",
"bar",
}

if code := c.Run(args); code != 0 {
fmt.Println(ui.OutputWriter)
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
}

// verify that the local state was unlocked after import
if _, err := os.Stat(filepath.Join(td, fmt.Sprintf(".%s.lock.info", statePath))); !os.IsNotExist(err) {
t.Fatal("state left locked after import")
}

// Verify that we were called
if !configured {
t.Fatal("Configure should be called")
Expand Down
7 changes: 7 additions & 0 deletions command/push.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,13 @@ func (c *PushCommand) Run(args []string) int {
return 1
}

defer func() {
err := opReq.StateLocker.Unlock(nil)
if err != nil {
c.Ui.Error(err.Error())
}
}()

// Get the configuration
config := ctx.Module().Config()
if name == "" {
Expand Down

0 comments on commit 47b178a

Please sign in to comment.