Automation skips OCP binary download if not needed 86/1986/1
authorAndrew Bays <andrew.bays@gmail.com>
Fri, 15 Nov 2019 11:40:09 +0000 (06:40 -0500)
committerAndrew Bays <andrew.bays@gmail.com>
Fri, 15 Nov 2019 11:40:09 +0000 (06:40 -0500)
Change-Id: I189df174b2eb6da4db3c943d9acbcbf2346f5536

pkg/automation/baremetal.go

index 4661626..6c4509a 100644 (file)
@@ -244,29 +244,13 @@ func (bad baremetalAutomatedDeployment) FinalizeAutomationPreparation() error {
                return fmt.Errorf("baremetalAutomatedDeployment: FinalizeAutomationPreparation: error copying finalized manifests to automation repo: %s", err)
        }
 
-       // Execute automation's prep_bm_host script now that all manifests have been
-       // copied to the baremetal automation repo's cluster manifests directory
-       cmd := exec.Command(fmt.Sprintf("%s/prep_bm_host.sh", automationDestination))
-       cmd.Dir = automationDestination
-       cmd.Stdout = os.Stdout
-       cmd.Stderr = os.Stderr
-
-       log.Println("baremetalAutomatedDeployment: FinalizeAutomationPreparation: running baremetal automation host preparation script...")
-
-       err = cmd.Run()
-
-       if err != nil {
-               return fmt.Errorf("baremetalAutomatedDeployment: FinalizeAutomationPreparation: error running baremetal automation host preparation script: %s", err)
-       }
-
-       log.Println("baremetalAutomatedDeployment: FinalizeAutomationPreparation: finished running automation host preparation script")
-
        // Copy required versions of oc and openshift-install into the automation repo's "requirements"
        // directory so that they're used with later automation calls
        log.Printf("baremetalAutomatedDeployment: FinalizeAutomationPreparation: injecting OpenShift binaries for automation repo...\n")
 
        requirementsSource := fmt.Sprintf("%s/%s/requirements", bad.siteBuildPath, bad.siteName)
        requirementsDestination := fmt.Sprintf("%s/%s/baremetal_automation/requirements/.", bad.siteBuildPath, bad.siteName)
+       prepHostSkipOcpBinariesArg := "--skip-ocp-binaries"
 
        for _, requirement := range []string{"oc", "openshift-install"} {
                requirementFullPath := fmt.Sprintf("%s/%s", requirementsSource, requirement)
@@ -275,9 +259,10 @@ func (bad baremetalAutomatedDeployment) FinalizeAutomationPreparation() error {
 
                if err != nil {
                        // Requirement was missing, so warn the user (in this case, automation will use
-                       // the binary pulled by the call to prep_bm_host.sh above)
-                       log.Printf("WARNING: '%s' requirement not specified; automation will use the default for its selected version!", requirement)
-                       continue
+                       // the OCP binaries pulled by the call to prep_bm_host.sh below)
+                       log.Printf("WARNING: '%s' requirement not specified; automation will use the default selected version for OpenShift binaries!", requirement)
+                       prepHostSkipOcpBinariesArg = ""
+                       break
                }
 
                utils.ExecuteCommand("", nil, true, false, "cp", requirementFullPath, requirementsDestination)
@@ -285,6 +270,23 @@ func (bad baremetalAutomatedDeployment) FinalizeAutomationPreparation() error {
 
        log.Printf("baremetalAutomatedDeployment: FinalizeAutomationPreparation: finished injecting OpenShift binaries for automation repo\n")
 
+       // Execute automation's prep_bm_host script now that all manifests have been
+       // copied to the baremetal automation repo's cluster manifests directory
+       cmd := exec.Command(fmt.Sprintf("%s/prep_bm_host.sh", automationDestination), prepHostSkipOcpBinariesArg)
+       cmd.Dir = automationDestination
+       cmd.Stdout = os.Stdout
+       cmd.Stderr = os.Stderr
+
+       log.Println("baremetalAutomatedDeployment: FinalizeAutomationPreparation: running baremetal automation host preparation script...")
+
+       err = cmd.Run()
+
+       if err != nil {
+               return fmt.Errorf("baremetalAutomatedDeployment: FinalizeAutomationPreparation: error running baremetal automation host preparation script: %s", err)
+       }
+
+       log.Println("baremetalAutomatedDeployment: FinalizeAutomationPreparation: finished running automation host preparation script")
+
        return nil
 }