// New returns a new logger (that writes to the specified file) & the open file handle // All log levels >= the specified level are written to the specified file. // User is responsible for closing the returned file handle, unless an error is returned. func New(level boshlog.LogLevel, filePath string, fileMode os.FileMode, fs boshsys.FileSystem) (boshlog.Logger, boshsys.File, error) { file, err := fs.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, fileMode) if err != nil { return nil, file, bosherr.WrapErrorf(err, "Failed to open log file '%s'", filePath) } return boshlog.NewWriterLogger(level, file, file), file, nil }
) var _ = Describe("RenderedJobList", func() { var ( outBuffer *bytes.Buffer errBuffer *bytes.Buffer logger boshlog.Logger fs *fakeboshsys.FakeFileSystem renderedJobList RenderedJobList ) BeforeEach(func() { outBuffer = bytes.NewBufferString("") errBuffer = bytes.NewBufferString("") logger = boshlog.NewWriterLogger(boshlog.LevelDebug, outBuffer, errBuffer) fs = fakeboshsys.NewFakeFileSystem() renderedJobList = NewRenderedJobList() }) Describe("All", func() { It("returns the added rendered jobs", func() { renderedJob0 := NewRenderedJob(bireljob.Job{Name: "fake-job-0"}, "fake-path-0", fs, logger) renderedJob1 := NewRenderedJob(bireljob.Job{Name: "fake-job-1"}, "fake-path-1", fs, logger) renderedJobList.Add(renderedJob0) renderedJobList.Add(renderedJob1) Expect(renderedJobList.All()).To(Equal([]RenderedJob{ renderedJob0,
installationManifest biinstallmanifest.Manifest mockJobRenderer *mock_install.MockJobRenderer mockJobResolver *mock_install.MockJobResolver mockPackageCompiler *mock_install.MockPackageCompiler fakeExtractor *fakeblobextract.FakeExtractor mockRegistryServerManager *mock_registry.MockServerManager logger boshlog.Logger installer Installer target Target installedJob InstalledJob ) BeforeEach(func() { logger = boshlog.NewWriterLogger(boshlog.LevelDebug, GinkgoWriter, GinkgoWriter) mockJobRenderer = mock_install.NewMockJobRenderer(mockCtrl) mockJobResolver = mock_install.NewMockJobResolver(mockCtrl) mockPackageCompiler = mock_install.NewMockPackageCompiler(mockCtrl) fakeExtractor = &fakeblobextract.FakeExtractor{} mockRegistryServerManager = mock_registry.NewMockServerManager(mockCtrl) target = NewTarget("fake-installation-path") installationManifest = biinstallmanifest.Manifest{ Name: "fake-installation-name", Properties: biproperty.Map{}, } renderedCPIJob := NewRenderedJobRef("cpi", "fake-release-job-fingerprint", "fake-rendered-job-blobstore-id", "fake-rendered-job-blobstore-id") installedJob = NewInstalledJob(renderedCPIJob, "/extracted-release-path/cpi") })
logger boshlog.Logger stage Stage ui UI fakeTimeService *fakeclock.FakeClock uiOut, uiErr *bytes.Buffer ) BeforeEach(func() { uiOut = bytes.NewBufferString("") uiErr = bytes.NewBufferString("") logOutBuffer = bytes.NewBufferString("") logErrBuffer = bytes.NewBufferString("") logger = boshlog.NewWriterLogger(boshlog.LevelDebug, logOutBuffer, logErrBuffer) ui = NewWriterUI(uiOut, uiErr, logger) fakeTimeService = fakeclock.NewFakeClock(time.Now()) stage = NewStage(ui, fakeTimeService, logger) }) Describe("Perform", func() { It("prints a single-line stage", func() { actionsPerformed := []string{} err := stage.Perform("Simple stage 1", func() error { actionsPerformed = append(actionsPerformed, "1") fakeTimeService.Increment(time.Minute) return nil