Skip to content

Commit a974f04

Browse files
committed
add context deadline to daemon
Signed-off-by: Sunyanan Choochotkaew <sunyanan.choochotkaew1@ibm.com>
1 parent d2e4eba commit a974f04

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

daemon/src/backend/handler.go

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ import (
2323
)
2424

2525
const (
26-
API_VERSION = "multinic.fms.io/v1"
26+
API_VERSION = "multinic.fms.io/v1"
27+
APISERVER_TIMEOUT = 2 * time.Minute
2728
)
2829

2930
type DynamicHandler struct {
@@ -71,7 +72,9 @@ func (h *DynamicHandler) Create(mapObj map[string]interface{}, namespace string,
7172
gvr, _ := schema.ParseResourceArg(h.ResourceName)
7273
log.Println(fmt.Sprintf("Create %s/%s", h.ResourceName, mapObj["metadata"].(map[string]interface{})["name"]))
7374
start := time.Now()
74-
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Create(context.TODO(), obj, options)
75+
ctx, cancel := context.WithTimeout(context.Background(), APISERVER_TIMEOUT)
76+
defer cancel()
77+
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Create(ctx, obj, options)
7578
elapsed := time.Since(start)
7679
log.Println(fmt.Sprintf("Create%s elapsed: %d us", h.Kind, int64(elapsed/time.Microsecond)))
7780
return res, err
@@ -82,7 +85,9 @@ func (h *DynamicHandler) Update(mapObj map[string]interface{}, namespace string,
8285
gvr, _ := schema.ParseResourceArg(h.ResourceName)
8386
log.Println(fmt.Sprintf("Update %s/%s", h.ResourceName, mapObj["metadata"].(map[string]interface{})["name"]))
8487
start := time.Now()
85-
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Update(context.TODO(), obj, options)
88+
ctx, cancel := context.WithTimeout(context.Background(), APISERVER_TIMEOUT)
89+
defer cancel()
90+
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Update(ctx, obj, options)
8691
elapsed := time.Since(start)
8792
log.Println(fmt.Sprintf("Update%s elapsed: %d us", h.Kind, int64(elapsed/time.Microsecond)))
8893
return res, err
@@ -91,7 +96,7 @@ func (h *DynamicHandler) Update(mapObj map[string]interface{}, namespace string,
9196
func (h *DynamicHandler) List(namespace string, options metav1.ListOptions) (*unstructured.UnstructuredList, error) {
9297
gvr, _ := schema.ParseResourceArg(h.ResourceName)
9398
start := time.Now()
94-
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
99+
ctx, cancel := context.WithTimeout(context.Background(), APISERVER_TIMEOUT)
95100
defer cancel()
96101
res, err := h.DYN.Resource(*gvr).Namespace(namespace).List(ctx, options)
97102
elapsed := time.Since(start)
@@ -102,7 +107,9 @@ func (h *DynamicHandler) List(namespace string, options metav1.ListOptions) (*un
102107
func (h *DynamicHandler) Get(name string, namespace string, options metav1.GetOptions) (*unstructured.Unstructured, error) {
103108
gvr, _ := schema.ParseResourceArg(h.ResourceName)
104109
start := time.Now()
105-
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Get(context.TODO(), name, options)
110+
ctx, cancel := context.WithTimeout(context.Background(), APISERVER_TIMEOUT)
111+
defer cancel()
112+
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Get(ctx, name, options)
106113
elapsed := time.Since(start)
107114
log.Println(fmt.Sprintf("Get%s elapsed: %d us", h.Kind, int64(elapsed/time.Microsecond)))
108115
return res, err
@@ -112,7 +119,9 @@ func (h *DynamicHandler) Delete(name string, namespace string, options metav1.De
112119
gvr, _ := schema.ParseResourceArg(h.ResourceName)
113120
log.Println(fmt.Sprintf("Delete %s/%s", h.ResourceName, name))
114121
start := time.Now()
115-
err := h.DYN.Resource(*gvr).Namespace(namespace).Delete(context.TODO(), name, options)
122+
ctx, cancel := context.WithTimeout(context.Background(), APISERVER_TIMEOUT)
123+
defer cancel()
124+
err := h.DYN.Resource(*gvr).Namespace(namespace).Delete(ctx, name, options)
116125
elapsed := time.Since(start)
117126
log.Println(fmt.Sprintf("Delete%s elapsed: %d us", h.Kind, int64(elapsed/time.Microsecond)))
118127
return err
@@ -122,7 +131,9 @@ func (h *DynamicHandler) Patch(name string, namespace string, pt types.PatchType
122131
gvr, _ := schema.ParseResourceArg(h.ResourceName)
123132
log.Println(fmt.Sprintf("Patch %s/%s - %s", h.ResourceName, name, string(data)))
124133
start := time.Now()
125-
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Patch(context.TODO(), name, pt, data, options)
134+
ctx, cancel := context.WithTimeout(context.Background(), APISERVER_TIMEOUT)
135+
defer cancel()
136+
res, err := h.DYN.Resource(*gvr).Namespace(namespace).Patch(ctx, name, pt, data, options)
126137
elapsed := time.Since(start)
127138
log.Println(fmt.Sprintf("Patch%s elapsed: %d us", h.Kind, int64(elapsed/time.Microsecond)))
128139
return res, err

0 commit comments

Comments
 (0)