BeforeEach(func() { fakeBOSH = &fakeBOSHDirector{} fakeBOSHServer = httptest.NewServer(http.HandlerFunc(func(responseWriter http.ResponseWriter, request *http.Request) { fakeBOSH.ServeHTTP(responseWriter, request) })) fakeAWS = awsbackend.New(fakeBOSHServer.URL) fakeAWSServer = httptest.NewServer(awsfaker.New(fakeAWS)) var err error tempDirectory, err = ioutil.TempDir("", "") Expect(err).NotTo(HaveOccurred()) up(fakeAWSServer.URL, tempDirectory, 0) lbCertPath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_CERT) Expect(err).NotTo(HaveOccurred()) lbChainPath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_CHAIN) Expect(err).NotTo(HaveOccurred()) lbKeyPath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_KEY) Expect(err).NotTo(HaveOccurred()) otherLBCertPath, err = testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_CERT) Expect(err).NotTo(HaveOccurred()) otherLBChainPath, err = testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_CHAIN) Expect(err).NotTo(HaveOccurred()) otherLBKeyPath, err = testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_KEY)
guidGenerator.GenerateCall.Returns.Output = "abcd" infrastructureManager.ExistsCall.Returns.Exists = true incomingState = storage.State{ Stack: storage.Stack{ LBType: "concourse", CertificateName: "some-certificate-name", }, BOSH: storage.BOSH{ DirectorAddress: "some-director-address", DirectorUsername: "******", DirectorPassword: "******", }, } certFilePath, err = testhelpers.WriteContentsToTempFile("some-certificate-contents") Expect(err).NotTo(HaveOccurred()) keyFilePath, err = testhelpers.WriteContentsToTempFile("some-key-contents") Expect(err).NotTo(HaveOccurred()) chainFilePath, err = testhelpers.WriteContentsToTempFile("some-chain-contents") Expect(err).NotTo(HaveOccurred()) command = commands.NewUpdateLBs(awsCredentialValidator, certificateManager, availabilityZoneRetriever, infrastructureManager, boshClientProvider, logger, certificateValidator, guidGenerator, stateStore, stateValidator) }) Describe("Execute", func() { It("returns an error when state validator fails", func() {
) BeforeEach(func() { var err error configuration, err := integration.LoadConfig() Expect(err).NotTo(HaveOccurred()) bbl = actors.NewBBL(configuration.StateFileDir, pathToBBL, configuration) aws = actors.NewAWS(configuration) state = integration.NewState(configuration.StateFileDir) }) It("is able to deploy concourse", func() { bbl.Up() certPath, err := testhelpers.WriteContentsToTempFile(testhelpers.BBL_CERT) Expect(err).NotTo(HaveOccurred()) keyPath, err := testhelpers.WriteContentsToTempFile(testhelpers.BBL_KEY) Expect(err).NotTo(HaveOccurred()) bbl.CreateLB("concourse", certPath, keyPath, "") boshClient := bosh.NewClient(bosh.Config{ URL: bbl.DirectorAddress(), Username: bbl.DirectorUsername(), Password: bbl.DirectorPassword(), AllowInsecureSSL: true, }) err = downloadAndUploadRelease(boshClient, ConcourseReleaseURL)
certificateValidator iam.CertificateValidator certFilePath string keyFilePath string chainFilePath string certNonPEMFilePath string keyNonPEMFilePath string chainNonPEMFilePath string otherKeyFilePath string otherCertFilePath string otherChainFilePath string ) BeforeEach(func() { var err error certificateValidator = iam.NewCertificateValidator() chainFilePath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_CHAIN) Expect(err).NotTo(HaveOccurred()) certFilePath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_CERT) Expect(err).NotTo(HaveOccurred()) keyFilePath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_KEY) Expect(err).NotTo(HaveOccurred()) otherChainFilePath, err = testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_CHAIN) Expect(err).NotTo(HaveOccurred()) otherCertFilePath, err = testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_CERT) Expect(err).NotTo(HaveOccurred()) otherKeyFilePath, err = testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_KEY)
directorAddress := bbl.DirectorAddress() caCertPath := bbl.SaveDirectorCA() Expect(aws.StackExists(stackName)).To(BeTrue()) Expect(aws.LoadBalancers(stackName)).To(BeEmpty()) exists, err := boshcli.DirectorExists(directorAddress, caCertPath) Expect(err).NotTo(HaveOccurred()) Expect(exists).To(BeTrue()) natInstanceID := aws.GetPhysicalID(stackName, "NATInstance") Expect(natInstanceID).NotTo(BeEmpty()) tags := aws.GetEC2InstanceTags(natInstanceID) Expect(tags["bbl-env-id"]).To(MatchRegexp(`bbl-env-([a-z]+-{1}){1,2}\d{4}-\d{2}-\d{2}T\d{2}:\d{2}Z`)) certPath, err := testhelpers.WriteContentsToTempFile(testhelpers.BBL_CERT) Expect(err).NotTo(HaveOccurred()) chainPath, err := testhelpers.WriteContentsToTempFile(testhelpers.BBL_CHAIN) Expect(err).NotTo(HaveOccurred()) keyPath, err := testhelpers.WriteContentsToTempFile(testhelpers.BBL_KEY) Expect(err).NotTo(HaveOccurred()) otherCertPath, err := testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_CERT) Expect(err).NotTo(HaveOccurred()) otherKeyPath, err := testhelpers.WriteContentsToTempFile(testhelpers.OTHER_BBL_KEY) Expect(err).NotTo(HaveOccurred()) bbl.CreateLB("concourse", certPath, keyPath, chainPath)
) BeforeEach(func() { fakeBOSH = &fakeBOSHDirector{} fakeBOSHServer = httptest.NewServer(http.HandlerFunc(func(responseWriter http.ResponseWriter, request *http.Request) { fakeBOSH.ServeHTTP(responseWriter, request) })) fakeAWS = awsbackend.New(fakeBOSHServer.URL) fakeAWSServer = httptest.NewServer(awsfaker.New(fakeAWS)) var err error tempDirectory, err = ioutil.TempDir("", "") Expect(err).NotTo(HaveOccurred()) lbCertPath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_CERT) Expect(err).NotTo(HaveOccurred()) lbChainPath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_CHAIN) Expect(err).NotTo(HaveOccurred()) lbKeyPath, err = testhelpers.WriteContentsToTempFile(testhelpers.BBL_KEY) Expect(err).NotTo(HaveOccurred()) }) Describe("up", func() { Context("when AWS creds are provided through environment variables", func() { It("honors the environment variables and bbl's up", func() { os.Setenv("BBL_AWS_ACCESS_KEY_ID", "some-access-key") os.Setenv("BBL_AWS_SECRET_ACCESS_KEY", "some-access-secret") os.Setenv("BBL_AWS_REGION", "some-region")