command + backend: rename various API objects to "Workspace" terminology

We're shifting terminology from "environment" to "workspace". This takes
care of some of the main internal API surface that was using the old
terminology, though is not intended to be entirely comprehensive and is
mainly just to minimize the amount of confusion for maintainers as we
continue moving towards eliminating the old terminology.
This commit is contained in:
Martin Atkins 2017-05-30 17:13:43 -07:00
parent 33a266d61c
commit 418a8a8bc9
26 changed files with 96 additions and 95 deletions

View File

@ -19,8 +19,8 @@ import (
) )
const ( const (
DefaultEnvDir = "terraform.tfstate.d" DefaultWorkspaceDir = "terraform.tfstate.d"
DefaultEnvFile = "environment" DefaultWorkspaceFile = "environment"
DefaultStateFilename = "terraform.tfstate" DefaultStateFilename = "terraform.tfstate"
DefaultDataDir = ".terraform" DefaultDataDir = ".terraform"
DefaultBackupExtension = ".backup" DefaultBackupExtension = ".backup"
@ -35,8 +35,8 @@ type Local struct {
CLI cli.Ui CLI cli.Ui
CLIColor *colorstring.Colorize CLIColor *colorstring.Colorize
// The State* paths are set from the CLI options, and may be left blank to // The State* paths are set from the backend config, and may be left blank
// use the defaults. If the actual paths for the local backend state are // to use the defaults. If the actual paths for the local backend state are
// needed, use the StatePaths method. // needed, use the StatePaths method.
// //
// StatePath is the local path where state is read from. // StatePath is the local path where state is read from.
@ -47,12 +47,12 @@ type Local struct {
// StateBackupPath is the local path where a backup file will be written. // StateBackupPath is the local path where a backup file will be written.
// Set this to "-" to disable state backup. // Set this to "-" to disable state backup.
// //
// StateEnvPath is the path to the folder containing environments. This // StateWorkspaceDir is the path to the folder containing data for
// defaults to DefaultEnvDir if not set. // non-default workspaces. This defaults to DefaultWorkspaceDir if not set.
StatePath string StatePath string
StateOutPath string StateOutPath string
StateBackupPath string StateBackupPath string
StateEnvDir string StateWorkspaceDir string
// We only want to create a single instance of a local state, so store them // We only want to create a single instance of a local state, so store them
// here as they're loaded. // here as they're loaded.
@ -126,7 +126,7 @@ func (b *Local) States() ([]string, error) {
// the listing always start with "default" // the listing always start with "default"
envs := []string{backend.DefaultStateName} envs := []string{backend.DefaultStateName}
entries, err := ioutil.ReadDir(b.stateEnvDir()) entries, err := ioutil.ReadDir(b.stateWorkspaceDir())
// no error if there's no envs configured // no error if there's no envs configured
if os.IsNotExist(err) { if os.IsNotExist(err) {
return envs, nil return envs, nil
@ -165,7 +165,7 @@ func (b *Local) DeleteState(name string) error {
} }
delete(b.states, name) delete(b.states, name)
return os.RemoveAll(filepath.Join(b.stateEnvDir(), name)) return os.RemoveAll(filepath.Join(b.stateWorkspaceDir(), name))
} }
func (b *Local) State(name string) (state.State, error) { func (b *Local) State(name string) (state.State, error) {
@ -329,7 +329,7 @@ func (b *Local) schemaConfigure(ctx context.Context) error {
if raw, ok := d.GetOk("workspace_dir"); ok { if raw, ok := d.GetOk("workspace_dir"); ok {
path := raw.(string) path := raw.(string)
if path != "" { if path != "" {
b.StateEnvDir = path b.StateWorkspaceDir = path
} }
} }
@ -337,7 +337,7 @@ func (b *Local) schemaConfigure(ctx context.Context) error {
if raw, ok := d.GetOk("environment_dir"); ok { if raw, ok := d.GetOk("environment_dir"); ok {
path := raw.(string) path := raw.(string)
if path != "" { if path != "" {
b.StateEnvDir = path b.StateWorkspaceDir = path
} }
} }
@ -360,7 +360,7 @@ func (b *Local) StatePaths(name string) (string, string, string) {
statePath = DefaultStateFilename statePath = DefaultStateFilename
} }
} else { } else {
statePath = filepath.Join(b.stateEnvDir(), name, DefaultStateFilename) statePath = filepath.Join(b.stateWorkspaceDir(), name, DefaultStateFilename)
} }
if stateOutPath == "" { if stateOutPath == "" {
@ -383,7 +383,7 @@ func (b *Local) createState(name string) error {
return nil return nil
} }
stateDir := filepath.Join(b.stateEnvDir(), name) stateDir := filepath.Join(b.stateWorkspaceDir(), name)
s, err := os.Stat(stateDir) s, err := os.Stat(stateDir)
if err == nil && s.IsDir() { if err == nil && s.IsDir() {
// no need to check for os.IsNotExist, since that is covered by os.MkdirAll // no need to check for os.IsNotExist, since that is covered by os.MkdirAll
@ -399,11 +399,11 @@ func (b *Local) createState(name string) error {
return nil return nil
} }
// stateEnvDir returns the directory where state environments are stored. // stateWorkspaceDir returns the directory where state environments are stored.
func (b *Local) stateEnvDir() string { func (b *Local) stateWorkspaceDir() string {
if b.StateEnvDir != "" { if b.StateWorkspaceDir != "" {
return b.StateEnvDir return b.StateWorkspaceDir
} }
return DefaultEnvDir return DefaultWorkspaceDir
} }

View File

@ -69,7 +69,7 @@ func TestLocal_StatePaths(t *testing.T) {
testEnv := "test_env" testEnv := "test_env"
path, out, back = b.StatePaths(testEnv) path, out, back = b.StatePaths(testEnv)
expectedPath := filepath.Join(DefaultEnvDir, testEnv, DefaultStateFilename) expectedPath := filepath.Join(DefaultWorkspaceDir, testEnv, DefaultStateFilename)
expectedOut := expectedPath expectedOut := expectedPath
expectedBackup := expectedPath + DefaultBackupExtension expectedBackup := expectedPath + DefaultBackupExtension
@ -261,7 +261,7 @@ func TestLocal_remoteStateBackup(t *testing.T) {
t.Fatal("remote state is not backed up") t.Fatal("remote state is not backed up")
} }
if bs.Path != filepath.Join(DefaultEnvDir, "test", DefaultStateFilename+DefaultBackupExtension) { if bs.Path != filepath.Join(DefaultWorkspaceDir, "test", DefaultStateFilename+DefaultBackupExtension) {
t.Fatal("bad backup location:", bs.Path) t.Fatal("bad backup location:", bs.Path)
} }
} }

View File

@ -18,11 +18,11 @@ import (
func TestLocal(t *testing.T) *Local { func TestLocal(t *testing.T) *Local {
tempDir := testTempDir(t) tempDir := testTempDir(t)
return &Local{ return &Local{
StatePath: filepath.Join(tempDir, "state.tfstate"), StatePath: filepath.Join(tempDir, "state.tfstate"),
StateOutPath: filepath.Join(tempDir, "state.tfstate"), StateOutPath: filepath.Join(tempDir, "state.tfstate"),
StateBackupPath: filepath.Join(tempDir, "state.tfstate.bak"), StateBackupPath: filepath.Join(tempDir, "state.tfstate.bak"),
StateEnvDir: filepath.Join(tempDir, "state.tfstate.d"), StateWorkspaceDir: filepath.Join(tempDir, "state.tfstate.d"),
ContextOpts: &terraform.ContextOpts{}, ContextOpts: &terraform.ContextOpts{},
} }
} }

View File

@ -177,7 +177,7 @@ func (c *InitCommand) Run(args []string) int {
// Now that we have loaded all modules, check the module tree for missing providers // Now that we have loaded all modules, check the module tree for missing providers
if flagGetPlugins { if flagGetPlugins {
sMgr, err := back.State(c.Env()) sMgr, err := back.State(c.Workspace())
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf( c.Ui.Error(fmt.Sprintf(
"Error loading state: %s", err)) "Error loading state: %s", err))

View File

@ -247,7 +247,7 @@ func (m *Meta) contextOpts() *terraform.ContextOpts {
opts.ProviderSHA256s = m.providerPluginsLock().Read() opts.ProviderSHA256s = m.providerPluginsLock().Read()
opts.Meta = &terraform.ContextMeta{ opts.Meta = &terraform.ContextMeta{
Env: m.Env(), Env: m.Workspace(),
} }
return &opts return &opts
@ -454,25 +454,26 @@ func (m *Meta) outputShadowError(err error, output bool) bool {
return true return true
} }
// EnvironmentNameEnvVar is the name of the environment variable (ie, the POSIX // WorkspaceNameEnvVar is the name of the environment variable that can be used
// feature) that can be used to set the name of the Terraform workspace // to set the name of the Terraform workspace, overriding the workspace chosen
// (overriding the workspace chosen by `terraform workspace select`). Note that // by `terraform workspace select`.
// this environment variable is ignored by `terraform workspace new` and //
// `terraform workspace delete`. // Note that this environment variable is ignored by `terraform workspace new`
const EnvironmentNameEnvVar = "TF_WORKSPACE" // and `terraform workspace delete`.
const WorkspaceNameEnvVar = "TF_WORKSPACE"
// Env returns the name of the currently configured workspace, corresponding // Workspace returns the name of the currently configured workspace, corresponding
// to the desired named state. // to the desired named state.
func (m *Meta) Env() string { func (m *Meta) Workspace() string {
current, _ := m.EnvOverridden() current, _ := m.WorkspaceOverridden()
return current return current
} }
// EnvOverridden returns the name of the currently configured workspace, // WorkspaceOverridden returns the name of the currently configured workspace,
// corresponding to the desired named state, as well as a bool saying whether // corresponding to the desired named state, as well as a bool saying whether
// this was set via the TF_WORKSPACE environment variable. // this was set via the TF_WORKSPACE environment variable.
func (m *Meta) EnvOverridden() (string, bool) { func (m *Meta) WorkspaceOverridden() (string, bool) {
if envVar := os.Getenv(EnvironmentNameEnvVar); envVar != "" { if envVar := os.Getenv(WorkspaceNameEnvVar); envVar != "" {
return envVar, true return envVar, true
} }
@ -481,7 +482,7 @@ func (m *Meta) EnvOverridden() (string, bool) {
dataDir = DefaultDataDir dataDir = DefaultDataDir
} }
envData, err := ioutil.ReadFile(filepath.Join(dataDir, local.DefaultEnvFile)) envData, err := ioutil.ReadFile(filepath.Join(dataDir, local.DefaultWorkspaceFile))
current := string(bytes.TrimSpace(envData)) current := string(bytes.TrimSpace(envData))
if current == "" { if current == "" {
current = backend.DefaultStateName current = backend.DefaultStateName
@ -495,9 +496,9 @@ func (m *Meta) EnvOverridden() (string, bool) {
return current, false return current, false
} }
// SetEnv saves the given name as the current workspace in the local // SetWorkspace saves the given name as the current workspace in the local
// filesystem. // filesystem.
func (m *Meta) SetEnv(name string) error { func (m *Meta) SetWorkspace(name string) error {
dataDir := m.dataDir dataDir := m.dataDir
if m.dataDir == "" { if m.dataDir == "" {
dataDir = DefaultDataDir dataDir = DefaultDataDir
@ -508,7 +509,7 @@ func (m *Meta) SetEnv(name string) error {
return err return err
} }
err = ioutil.WriteFile(filepath.Join(dataDir, local.DefaultEnvFile), []byte(name), 0644) err = ioutil.WriteFile(filepath.Join(dataDir, local.DefaultWorkspaceFile), []byte(name), 0644)
if err != nil { if err != nil {
return err return err
} }

View File

@ -168,7 +168,7 @@ func (m *Meta) Operation() *backend.Operation {
PlanOutBackend: m.backendState, PlanOutBackend: m.backendState,
Targets: m.targets, Targets: m.targets,
UIIn: m.UIInput(), UIIn: m.UIInput(),
Environment: m.Env(), Environment: m.Workspace(),
LockState: m.stateLock, LockState: m.stateLock,
StateLockTimeout: m.stateLockTimeout, StateLockTimeout: m.stateLockTimeout,
} }
@ -572,7 +572,7 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) {
return nil, err return nil, err
} }
env := m.Env() env := m.Workspace()
// Get the state so we can determine the effect of using this plan // Get the state so we can determine the effect of using this plan
realMgr, err := b.State(env) realMgr, err := b.State(env)
@ -967,7 +967,7 @@ func (m *Meta) backend_C_r_s(
return nil, fmt.Errorf(errBackendLocalRead, err) return nil, fmt.Errorf(errBackendLocalRead, err)
} }
env := m.Env() env := m.Workspace()
localState, err := localB.State(env) localState, err := localB.State(env)
if err != nil { if err != nil {

View File

@ -162,7 +162,7 @@ func (m *Meta) backendMigrateState_S_S(opts *backendMigrateOpts) error {
// Multi-state to single state. // Multi-state to single state.
func (m *Meta) backendMigrateState_S_s(opts *backendMigrateOpts) error { func (m *Meta) backendMigrateState_S_s(opts *backendMigrateOpts) error {
currentEnv := m.Env() currentEnv := m.Workspace()
migrate := opts.force migrate := opts.force
if !migrate { if !migrate {
@ -192,7 +192,7 @@ func (m *Meta) backendMigrateState_S_s(opts *backendMigrateOpts) error {
opts.oneEnv = currentEnv opts.oneEnv = currentEnv
// now switch back to the default env so we can acccess the new backend // now switch back to the default env so we can acccess the new backend
m.SetEnv(backend.DefaultStateName) m.SetWorkspace(backend.DefaultStateName)
return m.backendMigrateState_s_s(opts) return m.backendMigrateState_s_s(opts)
} }

View File

@ -1250,13 +1250,13 @@ func TestMetaBackend_configuredChangeCopy_multiToSingle(t *testing.T) {
} }
// Verify existing workspaces exist // Verify existing workspaces exist
envPath := filepath.Join(backendlocal.DefaultEnvDir, "env2", backendlocal.DefaultStateFilename) envPath := filepath.Join(backendlocal.DefaultWorkspaceDir, "env2", backendlocal.DefaultStateFilename)
if _, err := os.Stat(envPath); err != nil { if _, err := os.Stat(envPath); err != nil {
t.Fatal("env should exist") t.Fatal("env should exist")
} }
// Verify we are now in the default env, or we may not be able to access the new backend // Verify we are now in the default env, or we may not be able to access the new backend
if env := m.Env(); env != backend.DefaultStateName { if env := m.Workspace(); env != backend.DefaultStateName {
t.Fatal("using non-default env with single-env backend") t.Fatal("using non-default env with single-env backend")
} }
} }
@ -1285,7 +1285,7 @@ func TestMetaBackend_configuredChangeCopy_multiToSingleCurrentEnv(t *testing.T)
m := testMetaBackend(t, nil) m := testMetaBackend(t, nil)
// Change env // Change env
if err := m.SetEnv("env2"); err != nil { if err := m.SetWorkspace("env2"); err != nil {
t.Fatalf("bad: %s", err) t.Fatalf("bad: %s", err)
} }
@ -1322,7 +1322,7 @@ func TestMetaBackend_configuredChangeCopy_multiToSingleCurrentEnv(t *testing.T)
} }
// Verify existing workspaces exist // Verify existing workspaces exist
envPath := filepath.Join(backendlocal.DefaultEnvDir, "env2", backendlocal.DefaultStateFilename) envPath := filepath.Join(backendlocal.DefaultWorkspaceDir, "env2", backendlocal.DefaultStateFilename)
if _, err := os.Stat(envPath); err != nil { if _, err := os.Stat(envPath); err != nil {
t.Fatal("env should exist") t.Fatal("env should exist")
} }
@ -1407,7 +1407,7 @@ func TestMetaBackend_configuredChangeCopy_multiToMulti(t *testing.T) {
{ {
// Verify existing workspaces exist // Verify existing workspaces exist
envPath := filepath.Join(backendlocal.DefaultEnvDir, "env2", backendlocal.DefaultStateFilename) envPath := filepath.Join(backendlocal.DefaultWorkspaceDir, "env2", backendlocal.DefaultStateFilename)
if _, err := os.Stat(envPath); err != nil { if _, err := os.Stat(envPath); err != nil {
t.Fatal("env should exist") t.Fatal("env should exist")
} }

View File

@ -282,27 +282,27 @@ func TestMeta_Env(t *testing.T) {
m := new(Meta) m := new(Meta)
env := m.Env() env := m.Workspace()
if env != backend.DefaultStateName { if env != backend.DefaultStateName {
t.Fatalf("expected env %q, got env %q", backend.DefaultStateName, env) t.Fatalf("expected env %q, got env %q", backend.DefaultStateName, env)
} }
testEnv := "test_env" testEnv := "test_env"
if err := m.SetEnv(testEnv); err != nil { if err := m.SetWorkspace(testEnv); err != nil {
t.Fatal("error setting env:", err) t.Fatal("error setting env:", err)
} }
env = m.Env() env = m.Workspace()
if env != testEnv { if env != testEnv {
t.Fatalf("expected env %q, got env %q", testEnv, env) t.Fatalf("expected env %q, got env %q", testEnv, env)
} }
if err := m.SetEnv(backend.DefaultStateName); err != nil { if err := m.SetWorkspace(backend.DefaultStateName); err != nil {
t.Fatal("error setting env:", err) t.Fatal("error setting env:", err)
} }
env = m.Env() env = m.Workspace()
if env != backend.DefaultStateName { if env != backend.DefaultStateName {
t.Fatalf("expected env %q, got env %q", backend.DefaultStateName, env) t.Fatalf("expected env %q, got env %q", backend.DefaultStateName, env)
} }

View File

@ -50,7 +50,7 @@ func (c *OutputCommand) Run(args []string) int {
return 1 return 1
} }
env := c.Env() env := c.Workspace()
// Get the state // Get the state
stateStore, err := b.State(env) stateStore, err := b.State(env)

View File

@ -61,7 +61,7 @@ func (c *ProvidersCommand) Run(args []string) int {
} }
// Get the state // Get the state
env := c.Env() env := c.Workspace()
state, err := b.State(env) state, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err))

View File

@ -74,7 +74,7 @@ func (c *ShowCommand) Run(args []string) int {
return 1 return 1
} }
env := c.Env() env := c.Workspace()
// Get the state // Get the state
stateStore, err := b.State(env) stateStore, err := b.State(env)

View File

@ -32,7 +32,7 @@ func (c *StateListCommand) Run(args []string) int {
return 1 return 1
} }
env := c.Env() env := c.Workspace()
// Get the state // Get the state
state, err := b.State(env) state, err := b.State(env)
if err != nil { if err != nil {

View File

@ -24,7 +24,7 @@ func (c *StateMeta) State(m *Meta) (state.State, error) {
return nil, err return nil, err
} }
env := m.Env() env := m.Workspace()
// Get the state // Get the state
s, err := b.State(env) s, err := b.State(env)
if err != nil { if err != nil {

View File

@ -32,7 +32,7 @@ func (c *StatePullCommand) Run(args []string) int {
} }
// Get the state // Get the state
env := c.Env() env := c.Workspace()
state, err := b.State(env) state, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err))

View File

@ -67,7 +67,7 @@ func (c *StatePushCommand) Run(args []string) int {
} }
// Get the state // Get the state
env := c.Env() env := c.Workspace()
state, err := b.State(env) state, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load destination state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load destination state: %s", err))

View File

@ -34,7 +34,7 @@ func (c *StateShowCommand) Run(args []string) int {
} }
// Get the state // Get the state
env := c.Env() env := c.Workspace()
state, err := b.State(env) state, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err))

View File

@ -69,7 +69,7 @@ func (c *TaintCommand) Run(args []string) int {
} }
// Get the state // Get the state
env := c.Env() env := c.Workspace()
st, err := b.State(env) st, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err))

View File

@ -58,7 +58,7 @@ func (c *UnlockCommand) Run(args []string) int {
return 1 return 1
} }
env := c.Env() env := c.Workspace()
st, err := b.State(env) st, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err))

View File

@ -57,7 +57,7 @@ func (c *UntaintCommand) Run(args []string) int {
} }
// Get the state // Get the state
env := c.Env() env := c.Workspace()
st, err := b.State(env) st, err := b.State(env)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load state: %s", err))

View File

@ -47,10 +47,10 @@ func (c *WorkspaceCommand) Synopsis() string {
return "Workspace management" return "Workspace management"
} }
// validEnvName returns true is this name is valid to use as a workspace name. // validWorkspaceName returns true is this name is valid to use as a workspace name.
// Since most named states are accessed via a filesystem path or URL, check if // Since most named states are accessed via a filesystem path or URL, check if
// escaping the name would be required. // escaping the name would be required.
func validEnvName(name string) bool { func validWorkspaceName(name string) bool {
return name == url.PathEscape(name) return name == url.PathEscape(name)
} }

View File

@ -23,7 +23,7 @@ func TestWorkspace_createAndChange(t *testing.T) {
newCmd := &WorkspaceNewCommand{} newCmd := &WorkspaceNewCommand{}
current := newCmd.Env() current := newCmd.Workspace()
if current != backend.DefaultStateName { if current != backend.DefaultStateName {
t.Fatal("current workspace should be 'default'") t.Fatal("current workspace should be 'default'")
} }
@ -35,7 +35,7 @@ func TestWorkspace_createAndChange(t *testing.T) {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter) t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
} }
current = newCmd.Env() current = newCmd.Workspace()
if current != "test" { if current != "test" {
t.Fatalf("current workspace should be 'test', got %q", current) t.Fatalf("current workspace should be 'test', got %q", current)
} }
@ -48,7 +48,7 @@ func TestWorkspace_createAndChange(t *testing.T) {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter) t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
} }
current = newCmd.Env() current = newCmd.Workspace()
if current != backend.DefaultStateName { if current != backend.DefaultStateName {
t.Fatal("current workspace should be 'default'") t.Fatal("current workspace should be 'default'")
} }
@ -178,7 +178,7 @@ func TestWorkspace_createWithState(t *testing.T) {
t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter) t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter)
} }
newPath := filepath.Join(local.DefaultEnvDir, "test", DefaultStateFilename) newPath := filepath.Join(local.DefaultWorkspaceDir, "test", DefaultStateFilename)
envState := state.LocalState{Path: newPath} envState := state.LocalState{Path: newPath}
err = envState.RefreshState() err = envState.RefreshState()
if err != nil { if err != nil {
@ -198,7 +198,7 @@ func TestWorkspace_delete(t *testing.T) {
defer testChdir(t, td)() defer testChdir(t, td)()
// create the workspace directories // create the workspace directories
if err := os.MkdirAll(filepath.Join(local.DefaultEnvDir, "test"), 0755); err != nil { if err := os.MkdirAll(filepath.Join(local.DefaultWorkspaceDir, "test"), 0755); err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -206,7 +206,7 @@ func TestWorkspace_delete(t *testing.T) {
if err := os.MkdirAll(DefaultDataDir, 0755); err != nil { if err := os.MkdirAll(DefaultDataDir, 0755); err != nil {
t.Fatal(err) t.Fatal(err)
} }
if err := ioutil.WriteFile(filepath.Join(DefaultDataDir, local.DefaultEnvFile), []byte("test"), 0644); err != nil { if err := ioutil.WriteFile(filepath.Join(DefaultDataDir, local.DefaultWorkspaceFile), []byte("test"), 0644); err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -215,7 +215,7 @@ func TestWorkspace_delete(t *testing.T) {
Meta: Meta{Ui: ui}, Meta: Meta{Ui: ui},
} }
current := delCmd.Env() current := delCmd.Workspace()
if current != "test" { if current != "test" {
t.Fatal("wrong workspace:", current) t.Fatal("wrong workspace:", current)
} }
@ -227,7 +227,7 @@ func TestWorkspace_delete(t *testing.T) {
} }
// change back to default // change back to default
if err := delCmd.SetEnv(backend.DefaultStateName); err != nil { if err := delCmd.SetWorkspace(backend.DefaultStateName); err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -238,7 +238,7 @@ func TestWorkspace_delete(t *testing.T) {
t.Fatalf("error deleting workspace: %s", ui.ErrorWriter) t.Fatalf("error deleting workspace: %s", ui.ErrorWriter)
} }
current = delCmd.Env() current = delCmd.Workspace()
if current != backend.DefaultStateName { if current != backend.DefaultStateName {
t.Fatalf("wrong workspace: %q", current) t.Fatalf("wrong workspace: %q", current)
} }
@ -250,7 +250,7 @@ func TestWorkspace_deleteWithState(t *testing.T) {
defer testChdir(t, td)() defer testChdir(t, td)()
// create the workspace directories // create the workspace directories
if err := os.MkdirAll(filepath.Join(local.DefaultEnvDir, "test"), 0755); err != nil { if err := os.MkdirAll(filepath.Join(local.DefaultWorkspaceDir, "test"), 0755); err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -271,7 +271,7 @@ func TestWorkspace_deleteWithState(t *testing.T) {
}, },
} }
envStatePath := filepath.Join(local.DefaultEnvDir, "test", DefaultStateFilename) envStatePath := filepath.Join(local.DefaultWorkspaceDir, "test", DefaultStateFilename)
err := (&state.LocalState{Path: envStatePath}).WriteState(originalState) err := (&state.LocalState{Path: envStatePath}).WriteState(originalState)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
@ -294,7 +294,7 @@ func TestWorkspace_deleteWithState(t *testing.T) {
t.Fatalf("failure: %s", ui.ErrorWriter) t.Fatalf("failure: %s", ui.ErrorWriter)
} }
if _, err := os.Stat(filepath.Join(local.DefaultEnvDir, "test")); !os.IsNotExist(err) { if _, err := os.Stat(filepath.Join(local.DefaultWorkspaceDir, "test")); !os.IsNotExist(err) {
t.Fatal("env 'test' still exists!") t.Fatal("env 'test' still exists!")
} }
} }

View File

@ -35,7 +35,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int {
delEnv := args[0] delEnv := args[0]
if !validEnvName(delEnv) { if !validWorkspaceName(delEnv) {
c.Ui.Error(fmt.Sprintf(envInvalidName, delEnv)) c.Ui.Error(fmt.Sprintf(envInvalidName, delEnv))
return 1 return 1
} }
@ -81,7 +81,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int {
return 1 return 1
} }
if delEnv == c.Env() { if delEnv == c.Workspace() {
c.Ui.Error(fmt.Sprintf(strings.TrimSpace(envDelCurrent), delEnv)) c.Ui.Error(fmt.Sprintf(strings.TrimSpace(envDelCurrent), delEnv))
return 1 return 1
} }

View File

@ -51,7 +51,7 @@ func (c *WorkspaceListCommand) Run(args []string) int {
return 1 return 1
} }
env, isOverridden := c.EnvOverridden() env, isOverridden := c.WorkspaceOverridden()
var out bytes.Buffer var out bytes.Buffer
for _, s := range states { for _, s := range states {

View File

@ -38,14 +38,14 @@ func (c *WorkspaceNewCommand) Run(args []string) int {
newEnv := args[0] newEnv := args[0]
if !validEnvName(newEnv) { if !validWorkspaceName(newEnv) {
c.Ui.Error(fmt.Sprintf(envInvalidName, newEnv)) c.Ui.Error(fmt.Sprintf(envInvalidName, newEnv))
return 1 return 1
} }
// You can't ask to create a workspace when you're overriding the // You can't ask to create a workspace when you're overriding the
// workspace name to be something different. // workspace name to be something different.
if current, isOverridden := c.EnvOverridden(); current != newEnv && isOverridden { if current, isOverridden := c.WorkspaceOverridden(); current != newEnv && isOverridden {
c.Ui.Error(envIsOverriddenNewError) c.Ui.Error(envIsOverriddenNewError)
return 1 return 1
} }
@ -86,7 +86,7 @@ func (c *WorkspaceNewCommand) Run(args []string) int {
} }
// now set the current workspace locally // now set the current workspace locally
if err := c.SetEnv(newEnv); err != nil { if err := c.SetWorkspace(newEnv); err != nil {
c.Ui.Error(fmt.Sprintf("Error selecting new workspace: %s", err)) c.Ui.Error(fmt.Sprintf("Error selecting new workspace: %s", err))
return 1 return 1
} }

View File

@ -39,7 +39,7 @@ func (c *WorkspaceSelectCommand) Run(args []string) int {
c.Ui.Error(fmt.Sprintf("Failed to load root config module: %s", err)) c.Ui.Error(fmt.Sprintf("Failed to load root config module: %s", err))
} }
current, isOverridden := c.EnvOverridden() current, isOverridden := c.WorkspaceOverridden()
if isOverridden { if isOverridden {
c.Ui.Error(envIsOverriddenSelectError) c.Ui.Error(envIsOverriddenSelectError)
return 1 return 1
@ -56,7 +56,7 @@ func (c *WorkspaceSelectCommand) Run(args []string) int {
} }
name := args[0] name := args[0]
if !validEnvName(name) { if !validWorkspaceName(name) {
c.Ui.Error(fmt.Sprintf(envInvalidName, name)) c.Ui.Error(fmt.Sprintf(envInvalidName, name))
return 1 return 1
} }
@ -85,7 +85,7 @@ func (c *WorkspaceSelectCommand) Run(args []string) int {
return 1 return 1
} }
err = c.SetEnv(name) err = c.SetWorkspace(name)
if err != nil { if err != nil {
c.Ui.Error(err.Error()) c.Ui.Error(err.Error())
return 1 return 1