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"))
			})

			It("exposes the default port", func() {
Пример #2
0
			})
		})

		Context("when the LRP has docker image", func() {
			var (
				existingDesiredDockerLRP *models.DesiredLRP
				expectedPort             uint32
				expectedMetadata         string
			)

			BeforeEach(func() {
				desireAppRequest.DropletUri = ""
				desireAppRequest.DockerImageUrl = "docker:///user/repo#tag"

				expectedMetadata = fmt.Sprintf(`{"ports": {"port": %d, "protocol":"http"}}`, expectedPort)
				desireAppRequest.ExecutionMetadata = expectedMetadata

				dockerBuilder.ExtractExposedPortsStub = func(ccRequest *cc_messages.DesireAppRequestFromCC) ([]uint32, error) {
					return []uint32{expectedPort}, nil
				}

				existingDesiredDockerLRP = &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",
				}