diff options
3 files changed, 19 insertions, 8 deletions
diff --git a/cloud/pkg/nodeupgradejobcontroller/controller/downstream.go b/cloud/pkg/nodeupgradejobcontroller/controller/downstream.go index 1bd9cd4fd..8e4f96d98 100644 --- a/cloud/pkg/nodeupgradejobcontroller/controller/downstream.go +++ b/cloud/pkg/nodeupgradejobcontroller/controller/downstream.go @@ -210,7 +210,7 @@ func (dc *DownstreamController) processUpgrade(node string, upgrade *v1alpha1.No State: v1alpha1.Upgrading, History: v1alpha1.History{ HistoryID: upgradeReq.HistoryID, - UpgradeTime: time.Now().String(), + UpgradeTime: time.Now().Format(ISO8601UTC), }, } err = patchNodeUpgradeJobStatus(dc.crdClient, upgrade, status) diff --git a/cloud/pkg/nodeupgradejobcontroller/controller/util.go b/cloud/pkg/nodeupgradejobcontroller/controller/util.go index ddca4c26d..68a8e95ce 100644 --- a/cloud/pkg/nodeupgradejobcontroller/controller/util.go +++ b/cloud/pkg/nodeupgradejobcontroller/controller/util.go @@ -19,6 +19,7 @@ package controller import ( "fmt" "strings" + "time" "github.com/distribution/distribution/v3/reference" metav1 "k8s.io/api/core/v1" @@ -35,6 +36,8 @@ const ( const ( NodeUpgrade = "upgrade" + + ISO8601UTC = "2006-01-02T15:04:05Z" ) // filterVersion returns true only if the edge node version already on the upgrade req @@ -110,12 +113,18 @@ func UpdateNodeUpgradeJobStatus(old *v1alpha1.NodeUpgradeJob, status *v1alpha1.U for index := range upgrade.Status.Status { // If Node's Upgrade info exist, just overwrite if upgrade.Status.Status[index].NodeName == status.NodeName { + // The input status no upgradeTime, we need set it with old value + status.History.UpgradeTime = upgrade.Status.Status[index].History.UpgradeTime upgrade.Status.Status[index] = *status return upgrade } } // if Node's Upgrade info not exist, just append + if status.History.UpgradeTime == "" { + // If upgrade time is blank, set to the current time + status.History.UpgradeTime = time.Now().Format(ISO8601UTC) + } upgrade.Status.Status = append(upgrade.Status.Status, *status) return upgrade diff --git a/cloud/pkg/nodeupgradejobcontroller/controller/util_test.go b/cloud/pkg/nodeupgradejobcontroller/controller/util_test.go index ba0901903..bfc93c7eb 100644 --- a/cloud/pkg/nodeupgradejobcontroller/controller/util_test.go +++ b/cloud/pkg/nodeupgradejobcontroller/controller/util_test.go @@ -107,23 +107,23 @@ func TestUpdateUpgradeStatus(t *testing.T) { NodeName: "edge-node", State: v1alpha1.Completed, History: v1alpha1.History{ - Reason: "the first upgrade", + Reason: "the first upgrade", + UpgradeTime: "2023-09-22T17:33:00Z", }, }, }, }, } upgrade2 := upgrade.DeepCopy() - upgrade2.Status.Status[0].History = v1alpha1.History{ - Reason: "the second upgrade", - } + upgrade2.Status.Status[0].History.Reason = "the second upgrade" upgrade3 := upgrade.DeepCopy() upgrade3.Status.Status = append(upgrade3.Status.Status, v1alpha1.UpgradeStatus{ NodeName: "edge-node2", State: v1alpha1.Completed, History: v1alpha1.History{ - Reason: "the first upgrade", + Reason: "the first upgrade", + UpgradeTime: "2023-09-22T17:35:00Z", }, }) @@ -140,7 +140,8 @@ func TestUpdateUpgradeStatus(t *testing.T) { NodeName: "edge-node", State: v1alpha1.Completed, History: v1alpha1.History{ - Reason: "the first upgrade", + Reason: "the first upgrade", + UpgradeTime: "2023-09-22T17:33:00Z", }, }, expected: upgrade.DeepCopy(), @@ -152,7 +153,8 @@ func TestUpdateUpgradeStatus(t *testing.T) { NodeName: "edge-node2", State: v1alpha1.Completed, History: v1alpha1.History{ - Reason: "the first upgrade", + Reason: "the first upgrade", + UpgradeTime: "2023-09-22T17:35:00Z", }, }, expected: upgrade3, |
