Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions test/extended-priv/machineconfignode.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,21 @@ func (mcn *MachineConfigNode) GetUpdateCompatible() string {
return mcn.GetConditionStatusByType("UpdateCompatible")
}

// GetAppliedFilesAndOS get condition status of `AppliedFilesAndOS`
func (mcn *MachineConfigNode) GetAppliedFilesAndOS() string {
return mcn.GetConditionStatusByType("AppliedFilesAndOS")
// GetAppliedFiles get condition status of `AppliedFiles`
func (mcn *MachineConfigNode) GetAppliedFiles() string {
return mcn.GetConditionStatusByType("AppliedFiles")
}

// GetAppliedConditionStatus returns the status of the appropriate Applied condition.
// It checks for AppliedFilesAndOS first (non-TP clusters), then falls back to AppliedFiles (TP clusters)
func (mcn *MachineConfigNode) GetAppliedConditionStatus() string {
// Try AppliedFilesAndOS first (non-TechPreview clusters)
status, err := mcn.Get(`{.status.conditions[?(@.type=="AppliedFilesAndOS")].status}`)
if err == nil && status != "" {
return status
}
// Fall back to AppliedFiles (TechPreview clusters)
return mcn.GetAppliedFiles()
}

// GetCordoned get condition status of `Cordoned`
Expand Down
17 changes: 11 additions & 6 deletions test/extended-priv/mco_machineconfignode.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,13 @@ var _ = g.Describe("[sig-mco][Suite:openshift/machine-config-operator/longdurati
o.Eventually(mcn.GetDrained, "1m", "2s").Should(o.Equal("Unknown"))
logger.Infof("Checking Drained")
o.Eventually(mcn.GetDrained, "5m", "2s").Should(o.Equal("True"))
// This transition is too fast and we can't check it without introducing instability. It is left commented so that we know that this transition exists.
// logger.Infof("Checking AppliedFilesAndOS Unknown")
// o.Eventually(mcn.GetAppliedFilesAndOS, "1m", "1s").Should(o.Equal("Unknown"))
logger.Infof("Checking AppliedFilesAndOS")
o.Eventually(mcn.GetAppliedFilesAndOS, "3m", "2s").Should(o.Equal("True"))
// Check APPLIEDFILESANDOS condition for non-TechPreviewNoUpgrade cluster
// Check APPLIEDFILES condition for TechPreviewNoUpgrade cluster
// Use dynamic check based on which condition exists in the MCN resource
logger.Infof("Checking Applied condition Unknown")
o.Eventually(mcn.GetAppliedConditionStatus, "1m", "1s").Should(o.Equal("Unknown"))
logger.Infof("Checking Applied condition")
o.Eventually(mcn.GetAppliedConditionStatus, "3m", "2s").Should(o.Equal("True"))
logger.Infof("Checking UpdateExecuted")
o.Eventually(mcn.GetUpdateExecuted, "20s", "5s").Should(o.Equal("True"))
logger.Infof("Checking RebootedNode Unknown")
Expand Down Expand Up @@ -174,7 +176,10 @@ var _ = g.Describe("[sig-mco][Suite:openshift/machine-config-operator/longdurati
logger.Infof("OK\n")

exutil.By("Check MCN conditions")
o.Expect(mcn.GetAppliedFilesAndOS()).Should(o.Equal(expectedMCNStatus), "status of MCN condition UPDATEDFILESANDOS is not expected")
// Check APPLIEDFILESANDOS condition for non-TechPreviewNoUpgrade cluster
// Check APPLIEDFILES condition for TechPreviewNoUpgrade cluster
// Use dynamic check based on which condition exists in the MCN resource
o.Expect(mcn.GetAppliedConditionStatus()).Should(o.Equal(expectedMCNStatus), "status of MCN Applied condition is not expected")
o.Expect(mcn.GetUpdateExecuted()).Should(o.Equal(expectedMCNStatus), "status of MCN condition UPDATEEXECUTED is not expected")
o.Expect(mcn).Should(HaveNodeDegradedMessage(o.And(
o.ContainSubstring(degradedNode.GetName()),
Expand Down
2 changes: 1 addition & 1 deletion test/extended-priv/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -1054,7 +1054,7 @@ func (n *Node) GetRHELVersion() (string, error) {
return "", err
}

r := regexp.MustCompile(`VERSION_ID="?(?P<rhel_version>[^"]+)"?`)
r := regexp.MustCompile(`VERSION_ID=["']?(?P<rhel_version>[0-9.]+)["']?`)
match := r.FindStringSubmatch(vContent)
if len(match) == 0 {
msg := fmt.Sprintf("No RHEL_VERSION available in /etc/os-release file: %s", vContent)
Expand Down