summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillardHu <wei.hu@daocloud.io>2023-09-22 18:24:11 +0800
committerWillardHu <wei.hu@daocloud.io>2023-10-18 10:41:41 +0800
commit5846aa39c47861730caef20644105803e8885749 (patch)
tree34c10ee202847286424754a22c4aaf8832d9ea3a
parentMerge pull request #5091 from Shelley-BaoYue/release-1.14 (diff)
downloadkubeedge-5846aa39c47861730caef20644105803e8885749.tar.gz
Fix upgrade time layout and lost time value issue
Signed-off-by: WillardHu <wei.hu@daocloud.io>
-rw-r--r--cloud/pkg/nodeupgradejobcontroller/controller/downstream.go2
-rw-r--r--cloud/pkg/nodeupgradejobcontroller/controller/util.go9
-rw-r--r--cloud/pkg/nodeupgradejobcontroller/controller/util_test.go16
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,