MCPcopy Create free account
hub / github.com/deepflowio/deepflow / getGenesisSyncData

Function getGenesisSyncData

server/controller/http/router/debug.go:231–309  ·  view source on GitHub ↗
(g *genesis.Genesis, isLocal bool)

Source from the content-addressed store, hash-verified

229}
230
231func getGenesisSyncData(g *genesis.Genesis, isLocal bool) gin.HandlerFunc {
232 return gin.HandlerFunc(func(c *gin.Context) {
233 orgID, err := routercommon.GetContextOrgID(c)
234 if err != nil {
235 response.JSON(c, response.SetOptStatus(httpcommon.ORG_ID_INVALID), response.SetError(err))
236 return
237 }
238 dataType := c.Param("type")
239 var ret gcommon.GenesisSyncDataResponse
240
241 if isLocal {
242 ret, err = service.GetGenesisData(orgID, g)
243 } else {
244 ret, err = service.GetGenesisSyncData(orgID, g)
245 }
246
247 var data interface{}
248 switch dataType {
249 case "vm":
250 data = ret.VMs
251 case "vpc":
252 data = ret.VPCs
253 case "host":
254 data = ret.Hosts
255 case "lldp":
256 data = ret.Lldps
257 case "port":
258 data = ret.Ports
259 case "network":
260 data = ret.Networks
261 case "ip":
262 data = ret.IPLastSeens
263 case "vinterface":
264 teamIDList := map[uint32]bool{}
265 teamIDs, _ := c.GetQueryArray("team_id")
266 for _, t := range teamIDs {
267 teamID, err := strconv.Atoi(t)
268 if err != nil {
269 log.Warningf(err.Error())
270 continue
271 }
272 teamIDList[uint32(teamID)] = false
273 }
274
275 filterType := c.Query("team_id_filter")
276 switch filterType {
277 case "":
278 data = ret.Vinterfaces
279 case "whitelist":
280 retVinterfaces := []model.GenesisVinterface{}
281 for _, v := range ret.Vinterfaces {
282 if _, ok := teamIDList[v.TeamID]; !ok {
283 continue
284 }
285 retVinterfaces = append(retVinterfaces, v)
286 }
287 data = retVinterfaces
288 case "blacklist":

Callers 1

RegisterToMethod · 0.85

Calls 7

JSONMethod · 0.80
NewMethod · 0.80
GetGenesisSyncDataMethod · 0.65
ErrorMethod · 0.65
QueryMethod · 0.65
WarningfMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected