示例#1
0
			err := dropletRunner.BuildDroplet("task-name", "droplet-name", "buildpack", map[string]string{}, 0, 0, 0)
			Expect(err).To(MatchError("creating task failed"))

			Expect(fakeTaskRunner.CreateTaskCallCount()).To(Equal(1))
		})
	})

	Describe("LaunchDroplet", func() {
		BeforeEach(func() {
			config.SetBlobStore("blob-host", "7474", "dav-user", "dav-pass")
			Expect(config.Save()).To(Succeed())
		})

		It("launches the droplet lrp task with a start command from buildpack results", func() {
			executionMetadata := `{"execution_metadata": "{\"start_command\": \"start\"}"}`
			fakeBlobStore.DownloadReturns(ioutil.NopCloser(strings.NewReader(executionMetadata)), nil)

			fakeBlobStore.DownloadDropletActionReturns(models.WrapAction(&models.DownloadAction{
				From: "http://*****:*****@blob-host:7474/blobs/droplet-name/droplet.tgz",
				To:   "/home/vcap",
				User: "******",
			}))

			err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{})
			Expect(err).NotTo(HaveOccurred())

			Expect(fakeAppRunner.CreateAppCallCount()).To(Equal(1))
			createAppParams := fakeAppRunner.CreateAppArgsForCall(0)
			Expect(createAppParams.Name).To(Equal("app-name"))
			Expect(createAppParams.RootFS).To(Equal(droplet_runner.DropletRootFS))
			Expect(createAppParams.StartCommand).To(Equal("/tmp/launcher"))
					models.WrapAction(&models.DownloadAction{
						From: "http://file-server.service.cf.internal:8080/v1/static/cell-helpers/cell-helpers.tgz",
						To:   "/tmp",
						User: "******",
					}),
					models.WrapAction(&models.DownloadAction{
						From: "http://*****:*****@blob-host:7474/blobs/droplet-name-droplet.tgz",
						To:   "/home/vcap",
						User: "******",
					}),
				},
			})))
		})

		It("launches the droplet lrp task with proxy environment variables", func() {
			fakeBlobStore.DownloadReturns(ioutil.NopCloser(strings.NewReader("{}")), nil)
			fakeBlobStore.DownloadDropletActionReturns(models.WrapAction(&models.DownloadAction{}))

			fakeProxyConfReader.ProxyConfReturns(droplet_runner.ProxyConf{
				HTTPProxy:  "http://proxy",
				HTTPSProxy: "https://proxy",
				NoProxy:    "no-proxy",
			}, nil)

			err := dropletRunner.LaunchDroplet("app-name", "droplet-name", "", []string{}, app_runner.AppEnvironmentParams{})
			Expect(err).NotTo(HaveOccurred())

			Expect(fakeAppRunner.CreateAppCallCount()).To(Equal(1))
			createAppParams := fakeAppRunner.CreateAppArgsForCall(0)
			Expect(createAppParams.AppEnvironmentParams.EnvironmentVariables).To(matchers.ContainExactly(map[string]string{
				"PWD":         "/home/vcap",