fakeKeyFactory.NewKeyPairStub = func(bits int) (keys.KeyPair, error) { return nil, <-errorCh } }) It("should return an error", func() { Expect(err).To(HaveOccurred()) }) }) }) }) Context("when there is a docker image url AND a droplet uri", func() { BeforeEach(func() { desiredAppReq.DockerImageUrl = "user/repo:tag" desiredAppReq.DropletUri = "http://the-droplet.uri.com" }) It("should error", func() { Expect(err).To(MatchError(recipebuilder.ErrMultipleAppSources)) }) }) Context("when there is NEITHER a docker image url NOR a droplet uri", func() { BeforeEach(func() { desiredAppReq.DockerImageUrl = "" desiredAppReq.DropletUri = "" }) It("should error", func() {
It("does not desire the LRP", func() { Consistently(fakeBBS.RemoveDesiredLRPCallCount).Should(Equal(0)) }) It("responds with 400 Bad Request", func() { Expect(responseRecorder.Code).To(Equal(http.StatusBadRequest)) }) }) Context("when the LRP has docker image", func() { var newlyDesiredDockerLRP *models.DesiredLRP BeforeEach(func() { desireAppRequest.DropletUri = "" desireAppRequest.DockerImageUrl = "docker:///user/repo#tag" newlyDesiredDockerLRP = &models.DesiredLRP{ ProcessGuid: "new-process-guid", Instances: 1, RootFs: "docker:///user/repo#tag", Action: models.WrapAction(&models.RunAction{ User: "******", Path: "ls", }), Annotation: "last-modified-etag", } dockerBuilder.BuildReturns(newlyDesiredDockerLRP, nil) })
fakeKeyFactory.NewKeyPairStub = func(bits int) (keys.KeyPair, error) { return nil, <-errorCh } }) It("should return an error", func() { Expect(err).To(HaveOccurred()) }) }) }) }) Context("when there is a docker image url instead of a droplet uri", func() { BeforeEach(func() { desiredAppReq.DockerImageUrl = "user/repo:tag" desiredAppReq.ExecutionMetadata = "{}" }) It("does not error", func() { Expect(err).NotTo(HaveOccurred()) }) It("uses an unprivileged container", func() { Expect(desiredLRP.Privileged).To(BeFalse()) }) It("converts the docker image url into a root fs path", func() { Expect(desiredLRP.RootFs).To(Equal("docker:///user/repo#tag")) })
batch := <-fingerprints results := []cc_messages.DesireAppRequestFromCC{} for _, fingerprint := range batch { routeInfo, err := cc_messages.CCHTTPRoutes{ {Hostname: "host-" + fingerprint.ProcessGuid}, }.CCRouteInfo() Expect(err).NotTo(HaveOccurred()) lrp := cc_messages.DesireAppRequestFromCC{ ProcessGuid: fingerprint.ProcessGuid, ETag: fingerprint.ETag, RoutingInfo: routeInfo, } if strings.HasPrefix(fingerprint.ProcessGuid, "docker") { lrp.DockerImageUrl = "some-image" } results = append(results, lrp) } desired := make(chan []cc_messages.DesireAppRequestFromCC, 1) desired <- results close(desired) errors := make(chan error, 1) close(errors) return desired, errors } buildpackRecipeBuilder = new(fakes.FakeRecipeBuilder)