command: put the modules in ".terraform/modules"

This also fixes a case where tests wre leaking files
This commit is contained in:
Mitchell Hashimoto 2014-10-13 12:05:28 -07:00
parent 9ccc8aebf1
commit 5f6fe1f931
3 changed files with 17 additions and 1 deletions

View File

@ -19,6 +19,10 @@ const DefaultVarsFilename = "terraform.tfvars"
// DefaultBackupExtention is added to the state file to form the path // DefaultBackupExtention is added to the state file to form the path
const DefaultBackupExtention = ".backup" const DefaultBackupExtention = ".backup"
// DefaultDataDirectory is the directory where local state is stored
// by default.
const DefaultDataDirectory = ".terraform"
func validateContext(ctx *terraform.Context, ui cli.Ui) bool { func validateContext(ctx *terraform.Context, ui cli.Ui) bool {
if ws, es := ctx.Validate(); len(ws) > 0 || len(es) > 0 { if ws, es := ctx.Validate(); len(ws) > 0 || len(es) > 0 {
ui.Output( ui.Output(

View File

@ -14,6 +14,7 @@ func TestGet(t *testing.T) {
Meta: Meta{ Meta: Meta{
ContextOpts: testCtxConfig(testProvider()), ContextOpts: testCtxConfig(testProvider()),
Ui: ui, Ui: ui,
dataDir: tempDir(t),
}, },
} }
@ -39,6 +40,7 @@ func TestGet_multipleArgs(t *testing.T) {
Meta: Meta{ Meta: Meta{
ContextOpts: testCtxConfig(testProvider()), ContextOpts: testCtxConfig(testProvider()),
Ui: ui, Ui: ui,
dataDir: tempDir(t),
}, },
} }
@ -66,6 +68,7 @@ func TestGet_noArgs(t *testing.T) {
Meta: Meta{ Meta: Meta{
ContextOpts: testCtxConfig(testProvider()), ContextOpts: testCtxConfig(testProvider()),
Ui: ui, Ui: ui,
dataDir: tempDir(t),
}, },
} }
@ -89,6 +92,7 @@ func TestGet_update(t *testing.T) {
Meta: Meta{ Meta: Meta{
ContextOpts: testCtxConfig(testProvider()), ContextOpts: testCtxConfig(testProvider()),
Ui: ui, Ui: ui,
dataDir: tempDir(t),
}, },
} }

View File

@ -27,6 +27,9 @@ type Meta struct {
// This can be set by the command itself to provide extra hooks. // This can be set by the command itself to provide extra hooks.
extraHooks []terraform.Hook extraHooks []terraform.Hook
// This can be set by tests to change some directories
dataDir string
// Variables for the context (private) // Variables for the context (private)
autoKey string autoKey string
autoVariables map[string]string autoVariables map[string]string
@ -95,7 +98,12 @@ func (m *Meta) Context(copts contextOpts) (*terraform.Context, bool, error) {
if err != nil { if err != nil {
return nil, false, fmt.Errorf("Error loading config: %s", err) return nil, false, fmt.Errorf("Error loading config: %s", err)
} }
err = mod.Load(m.moduleStorage(copts.Path), copts.GetMode)
dataDir := DefaultDataDirectory
if m.dataDir != "" {
dataDir = m.dataDir
}
err = mod.Load(m.moduleStorage(dataDir), copts.GetMode)
if err != nil { if err != nil {
return nil, false, fmt.Errorf("Error downloading modules: %s", err) return nil, false, fmt.Errorf("Error downloading modules: %s", err)
} }