@@ -1300,3 +1300,39 @@ func (service *HTTPRestService) getVMUniqueID(w http.ResponseWriter, r *http.Req
13001300 })
13011301 }
13021302}
1303+
1304+ // This function is used to query all NCs on a node from NMAgent
1305+ func (service * HTTPRestService ) nmAgentNCListHandler (w http.ResponseWriter , r * http.Request ) {
1306+ logger .Request (service .Name , "nmAgentNCListHandler" , nil )
1307+ var (
1308+ returnCode types.ResponseCode
1309+ returnMessage string
1310+ networkContainerList []string
1311+ )
1312+
1313+ ctx := r .Context ()
1314+ switch r .Method {
1315+ case http .MethodGet :
1316+ ncVersionList , ncVersionerr := service .nma .GetNCVersionList (ctx )
1317+ if ncVersionerr != nil {
1318+ returnCode = types .NmAgentNCVersionListError
1319+ returnMessage = fmt .Sprintf ("[Azure-CNS] %s" , ncVersionerr .Error ())
1320+ }
1321+
1322+ for _ , container := range ncVersionList .Containers {
1323+ networkContainerList = append (networkContainerList , container .NetworkContainerID )
1324+ }
1325+
1326+ default :
1327+ returnMessage = "[Azure-CNS] NmAgentNCList API expects a GET method."
1328+ }
1329+
1330+ resp := cns.Response {ReturnCode : returnCode , Message : returnMessage }
1331+ NCListResponse := & cns.NCListResponse {
1332+ Response : resp ,
1333+ NCList : networkContainerList ,
1334+ }
1335+
1336+ serviceErr := common .Encode (w , & NCListResponse )
1337+ logger .Response (service .Name , NCListResponse , resp .ReturnCode , serviceErr )
1338+ }
0 commit comments