@@ -7,9 +7,12 @@ package wsmanager
7
7
import (
8
8
"context"
9
9
"encoding/json"
10
+ "errors"
10
11
"testing"
11
12
"time"
12
13
14
+ "google.golang.org/grpc/codes"
15
+ "google.golang.org/grpc/status"
13
16
corev1 "k8s.io/api/core/v1"
14
17
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
15
18
"sigs.k8s.io/e2e-framework/pkg/envconf"
@@ -34,33 +37,25 @@ func TestMaintenance(t *testing.T) {
34
37
t .Fatal (err )
35
38
}
36
39
37
- futureTime := time .Now ().Add (1 * time .Hour )
38
- mcfg := config.MaintenanceConfig {
39
- EnabledUntil : & futureTime ,
40
- }
41
-
42
- data , err := json .Marshal (mcfg )
40
+ untilTime := time .Now ().Add (1 * time .Hour )
41
+ cmap , err := maintenanceConfigmap (& untilTime )
43
42
if err != nil {
44
43
t .Fatal (err )
45
44
}
46
45
47
- configMap := & corev1.ConfigMap {
48
- ObjectMeta : metav1.ObjectMeta {
49
- Name : "ws-manager-mk2-maintenance-mode" ,
50
- Namespace : "default" ,
51
- },
52
- Data : map [string ]string {
53
- "config.json" : string (data ),
54
- },
55
- }
56
-
57
- err = kubeClient .Resources ().Update (testCtx , configMap )
46
+ err = kubeClient .Resources ().Update (testCtx , cmap )
58
47
if err != nil {
59
48
t .Fatal (err )
60
49
}
61
50
62
51
t .Cleanup (func () {
63
- err := kubeClient .Resources ().Delete (testCtx , configMap )
52
+ cmap , err := maintenanceConfigmap (nil )
53
+ if err != nil {
54
+ t .Error (err )
55
+ return
56
+ }
57
+
58
+ err = kubeClient .Resources ().Update (testCtx , cmap )
64
59
if err != nil {
65
60
t .Error (err )
66
61
}
@@ -89,7 +84,7 @@ func TestMaintenance(t *testing.T) {
89
84
}
90
85
91
86
nfo , stopWs , err := integration .LaunchWorkspaceDirectly (t , ctx , api , integration .WithRequestModifier (addInitTask ))
92
- if err != nil {
87
+ if err != nil && ! errors . Is ( err , status . Error ( codes . FailedPrecondition , "under maintenance" )) {
93
88
t .Fatal (err )
94
89
}
95
90
@@ -114,4 +109,24 @@ func TestMaintenance(t *testing.T) {
114
109
testEnv .Test (t , f )
115
110
}
116
111
117
- //
112
+ func maintenanceConfigmap (untilTime * time.Time ) (* corev1.ConfigMap , error ) {
113
+ mcfg := config.MaintenanceConfig {}
114
+ if untilTime != nil {
115
+ mcfg .EnabledUntil = untilTime
116
+ }
117
+
118
+ data , err := json .Marshal (mcfg )
119
+ if err != nil {
120
+ return nil , err
121
+ }
122
+
123
+ return & corev1.ConfigMap {
124
+ ObjectMeta : metav1.ObjectMeta {
125
+ Name : "ws-manager-mk2-maintenance-mode" ,
126
+ Namespace : "default" ,
127
+ },
128
+ Data : map [string ]string {
129
+ "config.json" : string (data ),
130
+ },
131
+ }, nil
132
+ }
0 commit comments