command: test multi-state with default only to single state
This commit is contained in:
parent
1d8b76c89d
commit
3ef82e6b5f
|
@ -67,7 +67,6 @@ func (m *Meta) backendMigrateState(opts *backendMigrateOpts) error {
|
||||||
// If the source only has one state and it is the default,
|
// If the source only has one state and it is the default,
|
||||||
// treat it as if it doesn't support multi-state.
|
// treat it as if it doesn't support multi-state.
|
||||||
if len(oneStates) == 1 && oneStates[0] == backend.DefaultStateName {
|
if len(oneStates) == 1 && oneStates[0] == backend.DefaultStateName {
|
||||||
panic("YO")
|
|
||||||
return m.backendMigrateState_s_s(opts)
|
return m.backendMigrateState_s_s(opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1008,6 +1008,62 @@ func TestMetaBackend_configuredChangeCopy_singleState(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Changing a configured backend that supports multi-state to a
|
||||||
|
// backend that only supports single states. The multi-state only has
|
||||||
|
// a default state.
|
||||||
|
func TestMetaBackend_configuredChangeCopy_multiToSingleDefault(t *testing.T) {
|
||||||
|
// Create a temporary working directory that is empty
|
||||||
|
td := tempDir(t)
|
||||||
|
copy.CopyDir(testFixturePath("backend-change-multi-default-to-single"), td)
|
||||||
|
defer os.RemoveAll(td)
|
||||||
|
defer testChdir(t, td)()
|
||||||
|
|
||||||
|
// Register the single-state backend
|
||||||
|
backendinit.Set("local-single", backendlocal.TestNewLocalSingle)
|
||||||
|
defer backendinit.Set("local-single", nil)
|
||||||
|
|
||||||
|
// Ask input
|
||||||
|
defer testInputMap(t, map[string]string{
|
||||||
|
"backend-migrate-to-new": "yes",
|
||||||
|
"backend-migrate-copy-to-empty": "yes",
|
||||||
|
})()
|
||||||
|
|
||||||
|
// Setup the meta
|
||||||
|
m := testMetaBackend(t, nil)
|
||||||
|
|
||||||
|
// Get the backend
|
||||||
|
b, err := m.Backend(&BackendOpts{Init: true})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("bad: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check the state
|
||||||
|
s, err := b.State(backend.DefaultStateName)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("bad: %s", err)
|
||||||
|
}
|
||||||
|
if err := s.RefreshState(); err != nil {
|
||||||
|
t.Fatalf("bad: %s", err)
|
||||||
|
}
|
||||||
|
state := s.State()
|
||||||
|
if state == nil {
|
||||||
|
t.Fatal("state should not be nil")
|
||||||
|
}
|
||||||
|
if state.Lineage != "backend-change" {
|
||||||
|
t.Fatalf("bad: %#v", state)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify no local state
|
||||||
|
if _, err := os.Stat(DefaultStateFilename); err == nil {
|
||||||
|
t.Fatal("file should not exist")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify no local backup
|
||||||
|
if _, err := os.Stat(DefaultStateFilename + DefaultBackupExtension); err == nil {
|
||||||
|
t.Fatal("file should not exist")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Unsetting a saved backend
|
// Unsetting a saved backend
|
||||||
func TestMetaBackend_configuredUnset(t *testing.T) {
|
func TestMetaBackend_configuredUnset(t *testing.T) {
|
||||||
// Create a temporary working directory that is empty
|
// Create a temporary working directory that is empty
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"serial": 0,
|
||||||
|
"lineage": "666f9301-7e65-4b19-ae23-71184bb19b03",
|
||||||
|
"backend": {
|
||||||
|
"type": "local",
|
||||||
|
"config": {
|
||||||
|
"path": "local-state.tfstate"
|
||||||
|
},
|
||||||
|
"hash": 9073424445967744180
|
||||||
|
},
|
||||||
|
"modules": [
|
||||||
|
{
|
||||||
|
"path": [
|
||||||
|
"root"
|
||||||
|
],
|
||||||
|
"outputs": {},
|
||||||
|
"resources": {},
|
||||||
|
"depends_on": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"terraform_version": "0.8.2",
|
||||||
|
"serial": 7,
|
||||||
|
"lineage": "backend-change"
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
terraform {
|
||||||
|
backend "local-single" {
|
||||||
|
path = "local-state-2.tfstate"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue