func NewConfigFromPath(path string, fs boshsys.FileSystem) (Config, error) { var config Config bytes, err := fs.ReadFile(path) if err != nil { return config, bosherr.WrapErrorf(err, "Reading config %s", path) } config = DefaultConfig err = json.Unmarshal(bytes, &config) if err != nil { return config, bosherr.WrapError(err, "Unmarshalling config") } if config.VMProvisioner.AgentProvisioner.Configuration == nil { config.VMProvisioner.AgentProvisioner.Configuration = DefaultAgentConfiguration } err = config.validate() if err != nil { return config, bosherr.WrapError(err, "Validating config") } return config, nil }
func NewManifestFromPath(path string, fs boshsys.FileSystem) (Manifest, error) { bytes, err := fs.ReadFile(path) if err != nil { return Manifest{}, bosherr.WrapErrorf(err, "Reading manifest %s", path) } return NewManifestFromBytes(bytes) }
func NewConfig(fs boshsys.FileSystem) (*Config, error) { path := os.Getenv("BOSH_INIT_CONFIG_PATH") if path == "" { return &Config{}, errors.New("Must provide config file via BOSH_INIT_CONFIG_PATH environment variable") } configContents, err := fs.ReadFile(path) if err != nil { return &Config{}, err } var config Config err = json.Unmarshal(configContents, &config) if err != nil { return &Config{}, err } return &config, nil }
func LoadConfigFromPath(fs boshsys.FileSystem, path string) (Config, error) { var config Config if path == "" { return config, nil } bytes, err := fs.ReadFile(path) if err != nil { return config, bosherr.WrapError(err, "Reading file") } err = json.Unmarshal(bytes, &config) if err != nil { return config, bosherr.WrapError(err, "Loading file") } return config, nil }
func NewBootstrapState(fs boshsys.FileSystem, path string) (*BootstrapState, error) { state := BootstrapState{fs: fs, path: path} if !fs.FileExists(path) { return &state, nil } bytes, err := fs.ReadFile(path) if err != nil { return nil, bosherr.WrapError(err, "Reading bootstrap state file") } err = json.Unmarshal(bytes, &state) if err != nil { return nil, bosherr.WrapError(err, "Unmarshalling bootstrap state") } return &state, nil }
func NewConfigFromPath(path string, fs boshsys.FileSystem) (Config, error) { var config Config bytes, err := fs.ReadFile(path) if err != nil { return config, bosherr.WrapErrorf(err, "Reading config %s", path) } err = json.Unmarshal(bytes, &config) if err != nil { return config, bosherr.WrapError(err, "Unmarshalling config") } err = config.Validate() if err != nil { return config, bosherr.WrapError(err, "Validating config") } return config, nil }
Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is app stderr") content, err = fs.ReadFileString(dstDir + "/other_logs/other_app.stdout.log") Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is other app stdout") content, err = fs.ReadFileString(dstDir + "/other_logs/more_logs/more.stdout.log") Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is more stdout") Expect(fs.FileExists(dstDir + "/some_directory")).To(BeTrue()) Expect(fs.FileExists(dstDir + "/some_directory/sub_dir")).To(BeTrue()) Expect(fs.FileExists(dstDir + "/some_directory/sub_dir/other_sub_dir")).To(BeTrue()) _, err = fs.ReadFile(dstDir + "/other_logs/other_app.stderr.log") Expect(err).To(HaveOccurred()) _, err = fs.ReadFile(dstDir + "/../some.config") Expect(err).To(HaveOccurred()) }) It("copies the content of directories when specified as a filter", func() { srcDir := copierFixtureSrcDir() filters := []string{ "some_directory", } dstDir, err := cpCopier.FilteredCopyToTemp(srcDir, filters) Expect(err).ToNot(HaveOccurred())
Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is app stderr") content, err = fs.ReadFileString(filepath.Join(dstDir, "other_logs", "other_app.stdout.log")) Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is other app stdout") content, err = fs.ReadFileString(filepath.Join(dstDir, "other_logs", "more_logs", "more.stdout.log")) Expect(err).ToNot(HaveOccurred()) assert.Contains(GinkgoT(), content, "this is more stdout") Expect(fs.FileExists(filepath.Join(dstDir, "some_directory"))).To(BeTrue()) Expect(fs.FileExists(filepath.Join(dstDir, "some_directory", "sub_dir"))).To(BeTrue()) Expect(fs.FileExists(filepath.Join(dstDir, "some_directory", "sub_dir", "other_sub_dir"))).To(BeTrue()) _, err = fs.ReadFile(filepath.Join(dstDir, "other_logs", "other_app.stderr.log")) Expect(err).To(HaveOccurred()) _, err = fs.ReadFile(filepath.Join(dstDir, "..", "some.config")) Expect(err).To(HaveOccurred()) }) Describe("changing permissions", func() { BeforeEach(func() { if runtime.GOOS == "windows" { // https://golang.org/src/os/path_test.go#L124 Skip("Pending on Windows, chmod is not supported") } }) It("fixes permissions on destination directory", func() {