(g *genesis.Genesis, isLocal bool)
| 229 | } |
| 230 | |
| 231 | func 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": |
no test coverage detected