Exemplo n.º 1
0
					"BOSH_JOB_NEXT_STATE": "{\"persistent_disk\":42}",
				},
			}

			Expect(len(runner.RunComplexCommands)).To(Equal(1))
			Expect(runner.RunComplexCommands[0]).To(Equal(expectedCmd))
		})

		It("sleeps when script returns a positive integer", func() {
			runner.AddProcess("/fake/script job_unchanged hash_unchanged bar foo",
				&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "12"}})

			err := script.Run()
			Expect(err).ToNot(HaveOccurred())
			Expect(fakeClock.SleepCallCount()).To(Equal(1))
			Expect(fakeClock.SleepArgsForCall(0)).To(Equal(12 * time.Second))
		})

		It("sleeps then calls the script again as long as script returns a negative integer", func() {
			runner.AddProcess("/fake/script job_unchanged hash_unchanged bar foo",
				&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "-5"}})
			runner.AddProcess("/fake/script job_check_status hash_unchanged",
				&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "-5"}})
			runner.AddProcess("/fake/script job_check_status hash_unchanged",
				&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "-5"}})
			runner.AddProcess("/fake/script job_check_status hash_unchanged",
				&fakesys.FakeProcess{WaitResult: boshsys.Result{Stdout: "0"}})

			err := script.Run()
			Expect(err).ToNot(HaveOccurred())