github.com/gavinw2006/hashicorp-terraform@v0.11.12-beta1/configs/configload/module_mgr.go (about) 1 package configload 2 3 import ( 4 "github.com/hashicorp/terraform/registry" 5 "github.com/hashicorp/terraform/svchost/disco" 6 "github.com/spf13/afero" 7 ) 8 9 type moduleMgr struct { 10 FS afero.Afero 11 12 // CanInstall is true for a module manager that can support installation. 13 // 14 // This must be set only if FS is an afero.OsFs, because the installer 15 // (which uses go-getter) is not aware of the virtual filesystem 16 // abstraction and will always write into the "real" filesystem. 17 CanInstall bool 18 19 // Dir is the path where descendent modules are (or will be) installed. 20 Dir string 21 22 // Services is a service discovery client that will be used to find 23 // remote module registry endpoints. This object may be pre-loaded with 24 // cached discovery information. 25 Services *disco.Disco 26 27 // Registry is a client for the module registry protocol, which is used 28 // when a module is requested from a registry source. 29 Registry *registry.Client 30 31 // manifest tracks the currently-installed modules for this manager. 32 // 33 // The loader may read this. Only the installer may write to it, and 34 // after a set of updates are completed the installer must call 35 // writeModuleManifestSnapshot to persist a snapshot of the manifest 36 // to disk for use on subsequent runs. 37 manifest moduleManifest 38 }