MCPcopy Index your code
hub / github.com/devspace-sh/devspace / enter

Method enter

pkg/devspace/server/enter.go:19–104  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

17)
18
19func (h *handler) enter(w http.ResponseWriter, r *http.Request) {
20 // Kube Context
21 kubeContext := h.ctx.KubeClient().CurrentContext()
22 context, ok := r.URL.Query()["context"]
23 if ok && len(context) == 1 && context[0] != "" {
24 kubeContext = context[0]
25 }
26
27 // Namespace
28 kubeNamespace := h.ctx.KubeClient().Namespace()
29 namespace, ok := r.URL.Query()["namespace"]
30 if ok && len(namespace) == 1 && namespace[0] != "" {
31 kubeNamespace = namespace[0]
32 }
33
34 name, ok := r.URL.Query()["name"]
35 if !ok || len(name) != 1 {
36 http.Error(w, "name is missing", http.StatusBadRequest)
37 return
38 }
39 container, ok := r.URL.Query()["container"]
40 if !ok || len(container) != 1 {
41 http.Error(w, "container is missing", http.StatusBadRequest)
42 return
43 }
44
45 var terminalResizeQueue TerminalResizeQueue
46 resizeID, ok := r.URL.Query()["resize_id"]
47 if ok && len(resizeID) == 1 {
48 h.terminalResizeQueuesMutex.Lock()
49 terminalResizeQueue = newTerminalSizeQueue()
50 h.terminalResizeQueues[resizeID[0]] = terminalResizeQueue
51 h.terminalResizeQueuesMutex.Unlock()
52
53 defer func() {
54 h.terminalResizeQueuesMutex.Lock()
55 defer h.terminalResizeQueuesMutex.Unlock()
56
57 delete(h.terminalResizeQueues, resizeID[0])
58 }()
59 }
60
61 // Create kubectl client
62 client, err := h.getClientFromCache(kubeContext, kubeNamespace)
63 if err != nil {
64 h.ctx.Log().Errorf("Error in %s: %v", r.URL.String(), err)
65 http.Error(w, err.Error(), http.StatusInternalServerError)
66 return
67 }
68
69 ws, err := upgrader.Upgrade(w, r, nil)
70 if err != nil {
71 h.ctx.Log().Errorf("Error upgrading connection: %v", err)
72 http.Error(w, err.Error(), http.StatusInternalServerError)
73 return
74 }
75
76 defer ws.Close()

Callers

nothing calls this directly

Calls 15

getClientFromCacheMethod · 0.95
newTerminalSizeQueueFunction · 0.85
websocketErrorFunction · 0.85
LockMethod · 0.80
UnlockMethod · 0.80
SetWriteDeadlineMethod · 0.80
CurrentContextMethod · 0.65
KubeClientMethod · 0.65
NamespaceMethod · 0.65
LogMethod · 0.65
UpgradeMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected