Skip to content

Commit c38865d

Browse files
authored
simplify debug api handlers (#991)
* simplify debug api handlers Signed-off-by: Evan Baker <[email protected]> * review comments Signed-off-by: Evan Baker <[email protected]>
1 parent 36d975b commit c38865d

File tree

4 files changed

+38
-86
lines changed

4 files changed

+38
-86
lines changed

cns/NetworkContainerContract.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ const (
2323
DetachContainerFromNetwork = "/network/detachcontainerfromnetwork"
2424
RequestIPConfig = "/network/requestipconfig"
2525
ReleaseIPConfig = "/network/releaseipconfig"
26-
GetIPAddresses = "/debug/getipaddresses"
27-
GetPodIPOrchestratorContext = "/debug/getpodcontext"
28-
GetHTTPRestData = "/debug/getrestdata"
26+
DebugIPAddresses = "/debug/ipaddresses"
27+
DebugPodContext = "/debug/podcontext"
28+
DebugRestData = "/debug/restdata"
2929
)
3030

3131
// NetworkContainer Prefixes

cns/cnsclient/cnsclient.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ func (cnsClient *CNSClient) GetIPAddressesMatchingStates(stateFilter ...cns.IPCo
326326
return resp.IPConfigurationStatus, nil
327327
}
328328

329-
url := cnsClient.connectionURL + cns.GetIPAddresses
329+
url := cnsClient.connectionURL + cns.DebugIPAddresses
330330
log.Printf("GetIPAddressesMatchingStates url %v", url)
331331

332332
payload := &cns.GetIPAddressesRequest{
@@ -375,7 +375,7 @@ func (cnsClient *CNSClient) GetPodOrchestratorContext() (map[string]string, erro
375375
res *http.Response
376376
)
377377

378-
url := cnsClient.connectionURL + cns.GetPodIPOrchestratorContext
378+
url := cnsClient.connectionURL + cns.DebugPodContext
379379
log.Printf("GetPodIPOrchestratorContext url %v", url)
380380

381381
res, err = http.Get(url)
@@ -414,7 +414,7 @@ func (cnsClient *CNSClient) GetHTTPServiceData() (restserver.GetHTTPServiceDataR
414414
res *http.Response
415415
)
416416

417-
url := cnsClient.connectionURL + cns.GetHTTPRestData
417+
url := cnsClient.connectionURL + cns.DebugRestData
418418
log.Printf("GetHTTPServiceStruct url %v", url)
419419

420420
res, err = http.Get(url)

cns/restserver/ipam.go

Lines changed: 29 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -182,97 +182,49 @@ func (service *HTTPRestService) GetPodIPConfigState() map[string]cns.IPConfigura
182182
return podIPConfigState
183183
}
184184

185-
func (service *HTTPRestService) getPodIPIDByOrchestratorContexthandler(w http.ResponseWriter, r *http.Request) {
186-
var (
187-
resp cns.GetPodContextResponse
188-
statusCode types.ResponseCode
189-
returnMessage string
190-
err error
191-
)
192-
193-
statusCode = types.UnexpectedError
194-
195-
defer func() {
196-
if err != nil {
197-
resp.Response.ReturnCode = statusCode
198-
resp.Response.Message = returnMessage
199-
}
200-
201-
err = service.Listener.Encode(w, &resp)
202-
logger.Response(service.Name, resp, resp.Response.ReturnCode, err)
203-
}()
204-
205-
resp.PodContext = service.GetPodIPIDByOrchestratorContext()
206-
}
207-
208-
func (service *HTTPRestService) GetPodIPIDByOrchestratorContext() map[string]string {
185+
func (service *HTTPRestService) handleDebugPodContext(w http.ResponseWriter, r *http.Request) {
209186
service.RLock()
210187
defer service.RUnlock()
211-
return service.PodIPIDByPodInterfaceKey
212-
}
213-
214-
func (service *HTTPRestService) GetHTTPRestDataHandler(w http.ResponseWriter, r *http.Request) {
215-
var (
216-
resp GetHTTPServiceDataResponse
217-
returnMessage string
218-
err error
219-
)
220-
221-
defer func() {
222-
if err != nil {
223-
resp.Response.ReturnCode = types.UnexpectedError
224-
resp.Response.Message = returnMessage
225-
}
226-
227-
err = service.Listener.Encode(w, &resp)
228-
logger.Response(service.Name, resp, resp.Response.ReturnCode, err)
229-
}()
230-
231-
resp.HTTPRestServiceData = service.GetHTTPStruct()
188+
resp := cns.GetPodContextResponse{
189+
PodContext: service.PodIPIDByPodInterfaceKey,
190+
}
191+
err := service.Listener.Encode(w, &resp)
192+
logger.Response(service.Name, resp, resp.Response.ReturnCode, err)
232193
}
233194

234-
func (service *HTTPRestService) GetHTTPStruct() HTTPRestServiceData {
195+
func (service *HTTPRestService) handleDebugRestData(w http.ResponseWriter, r *http.Request) {
235196
service.RLock()
236197
defer service.RUnlock()
237-
238-
return HTTPRestServiceData{
239-
PodIPIDByPodInterfaceKey: service.PodIPIDByPodInterfaceKey,
240-
PodIPConfigState: service.PodIPConfigState,
241-
IPAMPoolMonitor: service.IPAMPoolMonitor.GetStateSnapshot(),
198+
resp := GetHTTPServiceDataResponse{
199+
HTTPRestServiceData: HTTPRestServiceData{
200+
PodIPIDByPodInterfaceKey: service.PodIPIDByPodInterfaceKey,
201+
PodIPConfigState: service.PodIPConfigState,
202+
IPAMPoolMonitor: service.IPAMPoolMonitor.GetStateSnapshot(),
203+
},
242204
}
205+
err := service.Listener.Encode(w, &resp)
206+
logger.Response(service.Name, resp, resp.Response.ReturnCode, err)
243207
}
244208

245-
func (service *HTTPRestService) getIPAddressesHandler(w http.ResponseWriter, r *http.Request) {
246-
var (
247-
req cns.GetIPAddressesRequest
248-
resp cns.GetIPAddressStatusResponse
249-
statusCode types.ResponseCode
250-
returnMessage string
251-
err error
252-
)
253-
254-
statusCode = types.UnexpectedError
255-
256-
defer func() {
257-
if err != nil {
258-
resp.Response.ReturnCode = statusCode
259-
resp.Response.Message = returnMessage
209+
func (service *HTTPRestService) handleDebugIPAddresses(w http.ResponseWriter, r *http.Request) {
210+
var req cns.GetIPAddressesRequest
211+
if err := service.Listener.Decode(w, r, &req); err != nil {
212+
resp := cns.GetIPAddressStatusResponse{
213+
Response: cns.Response{
214+
ReturnCode: types.UnexpectedError,
215+
Message: err.Error(),
216+
},
260217
}
261-
262218
err = service.Listener.Encode(w, &resp)
263219
logger.ResponseEx(service.Name, req, resp, resp.Response.ReturnCode, err)
264-
}()
265-
266-
err = service.Listener.Decode(w, r, &req)
267-
if err != nil {
268-
returnMessage = err.Error()
269-
logger.Errorf("getIPAddressesHandler decode failed because %v, GetIPAddressesRequest is %v",
270-
returnMessage, req)
271220
return
272221
}
273-
274-
// Get all IPConfigs matching a state, and append to a slice of IPAddressState
275-
resp.IPConfigurationStatus = filter.MatchAnyIPConfigState(service.PodIPConfigState, filter.PredicatesForStates(req.IPConfigStateFilter...)...)
222+
// Get all IPConfigs matching a state and return in the response
223+
resp := cns.GetIPAddressStatusResponse{
224+
IPConfigurationStatus: filter.MatchAnyIPConfigState(service.PodIPConfigState, filter.PredicatesForStates(req.IPConfigStateFilter...)...),
225+
}
226+
err := service.Listener.Encode(w, &resp)
227+
logger.ResponseEx(service.Name, req, resp, resp.Response.ReturnCode, err)
276228
}
277229

278230
// GetAllocatedIPConfigs returns a filtered list of IPs which are in

cns/restserver/restserver.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,9 @@ func (service *HTTPRestService) Init(config *common.ServiceConfig) error {
183183
listener.AddHandler(cns.RequestIPConfig, newHandlerFuncWithHistogram(service.requestIPConfigHandler, httpRequestLatency))
184184
listener.AddHandler(cns.ReleaseIPConfig, newHandlerFuncWithHistogram(service.releaseIPConfigHandler, httpRequestLatency))
185185
listener.AddHandler(cns.NmAgentSupportedApisPath, service.nmAgentSupportedApisHandler)
186-
listener.AddHandler(cns.GetIPAddresses, service.getIPAddressesHandler)
187-
listener.AddHandler(cns.GetPodIPOrchestratorContext, service.getPodIPIDByOrchestratorContexthandler)
188-
listener.AddHandler(cns.GetHTTPRestData, service.GetHTTPRestDataHandler)
186+
listener.AddHandler(cns.DebugIPAddresses, service.handleDebugIPAddresses)
187+
listener.AddHandler(cns.DebugPodContext, service.handleDebugPodContext)
188+
listener.AddHandler(cns.DebugRestData, service.handleDebugRestData)
189189

190190
// handlers for v0.2
191191
listener.AddHandler(cns.V2Prefix+cns.SetEnvironmentPath, service.setEnvironment)

0 commit comments

Comments
 (0)