func doTest(bldPrefix, debugStr string, same bool, oc *exutil.CLI) { // corrupt the builder image exutil.CorruptImage(fullImageName, corruptor) if bldPrefix == buildPrefixFC || bldPrefix == buildPrefixTC { // grant access to the custom build strategy err := oc.AsAdmin().Run("adm").Args("policy", "add-cluster-role-to-user", "system:build-strategy-custom", oc.Username()).Execute() o.Expect(err).NotTo(o.HaveOccurred()) defer func() { err = oc.AsAdmin().Run("adm").Args("policy", "remove-cluster-role-from-user", "system:build-strategy-custom", oc.Username()).Execute() o.Expect(err).NotTo(o.HaveOccurred()) }() } // kick off the app/lang build and verify the builder image accordingly _, err := exutil.StartBuildAndWait(oc, bldPrefix) o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred()) if same { exutil.VerifyImagesSame(fullImageName, corruptor, debugStr) } else { exutil.VerifyImagesDifferent(fullImageName, corruptor, debugStr) } // reset corrupted tagging for next test exutil.ResetImage(resetData) // dump tags/hexids for debug _, err = exutil.DumpAndReturnTagging(tags) o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred()) }
func doTest(bldPrefix, bldName, debugStr string, same bool, oc *exutil.CLI) { // corrupt the builder image exutil.CorruptImage(fullImageName, corruptor) // kick off the app/lang build and verify the builder image accordingly exutil.StartBuild(bldPrefix, oc) exutil.WaitForBuild(debugStr, bldName, oc) if same { exutil.VerifyImagesSame(fullImageName, corruptor, debugStr) } else { exutil.VerifyImagesDifferent(fullImageName, corruptor, debugStr) } // reset corrupted tagging for next test exutil.ResetImage(resetData) // dump tags/hexids for debug exutil.DumpAndReturnTagging(tags) }
func doTest(bldPrefix, debugStr string, same bool, oc *exutil.CLI) { // corrupt the builder image exutil.CorruptImage(fullImageName, corruptor) // kick off the app/lang build and verify the builder image accordingly _, err := exutil.StartBuildAndWait(oc, bldPrefix) o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred()) if same { exutil.VerifyImagesSame(fullImageName, corruptor, debugStr) } else { exutil.VerifyImagesDifferent(fullImageName, corruptor, debugStr) } // reset corrupted tagging for next test exutil.ResetImage(resetData) // dump tags/hexids for debug _, err = exutil.DumpAndReturnTagging(tags) o.ExpectWithOffset(1, err).NotTo(o.HaveOccurred()) }
// TODO this seems like a weird restriction with segregated namespaces. provide a better explanation of why this doesn't work // we don't run in parallel with this suite - do not want different tests tagging the same image in different ways at the same time var _ = g.Describe("builds: serial: ForcePull from OpenShift induced builds (vs. sti)", func() { defer g.GinkgoRecover() var oc = exutil.NewCLI("force-pull-s2i", exutil.KubeConfigPath()) g.JustBeforeEach(func() { g.By("waiting for builder service account") err := exutil.WaitForBuilderAccount(oc.KubeREST().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) }) g.Describe("\n FORCE PULL TEST: Force pull and s2i builder", func() { // corrupt the s2i builder image g.BeforeEach(func() { exutil.CorruptImage(s2iDockBldr, custBldr, "s21") }) g.AfterEach(func() { exutil.ResetImage(resetData) }) g.JustBeforeEach(func() { g.By("waiting for builder service account") err := exutil.WaitForBuilderAccount(oc.KubeREST().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) }) g.Context("\n FORCE PULL TEST: when s2i force pull is false and the image is bad", func() { g.It("\n FORCE PULL TEST s2i false", func() {