Merge pull request #17645 from hashicorp/jbardin/GH-17462
unlock state in console, import, graph, and push
This commit is contained in:
commit
47b178aee9
|
@ -81,6 +81,13 @@ func (c *ConsoleCommand) Run(args []string) int {
|
||||||
return 1
|
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
|
// Setup the UI so we can output directly to stdout
|
||||||
ui := &cli.BasicUi{
|
ui := &cli.BasicUi{
|
||||||
Writer: wrappedstreams.Stdout(),
|
Writer: wrappedstreams.Stdout(),
|
||||||
|
|
|
@ -112,6 +112,13 @@ func (c *GraphCommand) Run(args []string) int {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
err := opReq.StateLocker.Unlock(nil)
|
||||||
|
if err != nil {
|
||||||
|
c.Ui.Error(err.Error())
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
// Determine the graph type
|
// Determine the graph type
|
||||||
graphType := terraform.GraphTypePlan
|
graphType := terraform.GraphTypePlan
|
||||||
if plan != nil {
|
if plan != nil {
|
||||||
|
|
|
@ -184,6 +184,13 @@ func (c *ImportCommand) Run(args []string) int {
|
||||||
return 1
|
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
|
// 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
|
// API to import more than one resource at once. For now, we only allow
|
||||||
// one while we stabilize this feature.
|
// one while we stabilize this feature.
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
@ -175,11 +176,17 @@ func TestImport_remoteState(t *testing.T) {
|
||||||
"test_instance.foo",
|
"test_instance.foo",
|
||||||
"bar",
|
"bar",
|
||||||
}
|
}
|
||||||
|
|
||||||
if code := c.Run(args); code != 0 {
|
if code := c.Run(args); code != 0 {
|
||||||
fmt.Println(ui.OutputWriter)
|
fmt.Println(ui.OutputWriter)
|
||||||
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String())
|
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
|
// Verify that we were called
|
||||||
if !configured {
|
if !configured {
|
||||||
t.Fatal("Configure should be called")
|
t.Fatal("Configure should be called")
|
||||||
|
|
|
@ -146,6 +146,13 @@ func (c *PushCommand) Run(args []string) int {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
err := opReq.StateLocker.Unlock(nil)
|
||||||
|
if err != nil {
|
||||||
|
c.Ui.Error(err.Error())
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
// Get the configuration
|
// Get the configuration
|
||||||
config := ctx.Module().Config()
|
config := ctx.Module().Config()
|
||||||
if name == "" {
|
if name == "" {
|
||||||
|
|
Loading…
Reference in New Issue