@@ -7,9 +7,12 @@ package wsmanager
77import (
88 "context"
99 "encoding/json"
10+ "errors"
1011 "testing"
1112 "time"
1213
14+ "google.golang.org/grpc/codes"
15+ "google.golang.org/grpc/status"
1316 corev1 "k8s.io/api/core/v1"
1417 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1518 "sigs.k8s.io/e2e-framework/pkg/envconf"
@@ -34,33 +37,25 @@ func TestMaintenance(t *testing.T) {
3437 t .Fatal (err )
3538 }
3639
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 )
4342 if err != nil {
4443 t .Fatal (err )
4544 }
4645
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 )
5847 if err != nil {
5948 t .Fatal (err )
6049 }
6150
6251 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 )
6459 if err != nil {
6560 t .Error (err )
6661 }
@@ -89,7 +84,7 @@ func TestMaintenance(t *testing.T) {
8984 }
9085
9186 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" )) {
9388 t .Fatal (err )
9489 }
9590
@@ -114,4 +109,24 @@ func TestMaintenance(t *testing.T) {
114109 testEnv .Test (t , f )
115110}
116111
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