Browse Source

WIP. working on flex routing

pull/51/head
Jonathan Cobb 4 years ago
parent
commit
43d08c5294
5 changed files with 18 additions and 11 deletions
  1. +15
    -8
      bubble-server/src/main/java/bubble/resources/stream/FilterHttpResource.java
  2. +0
    -0
      bubble-server/src/main/resources/db/migration/V2020090801__add_flex_router.sql
  3. +1
    -1
      bubble-server/src/main/resources/messages
  4. +1
    -1
      bubble-web
  5. +1
    -1
      utils/cobbzilla-wizard

+ 15
- 8
bubble-server/src/main/java/bubble/resources/stream/FilterHttpResource.java View File

@@ -90,6 +90,8 @@ public class FilterHttpResource {
@Autowired private BlockStatsService blockStats;
@Autowired private StandardFlexRouterService flexRouterService;

private static final Response NO_FLEX_ROUTER = OK_EMPTY_LIST;

private static final long ACTIVE_REQUEST_TIMEOUT = HOURS.toSeconds(12);

@Getter(lazy=true) private final RedisService activeRequestCache = redis.prefixNamespace(getClass().getSimpleName()+".requests");
@@ -638,20 +640,25 @@ public class FilterHttpResource {
@Produces(APPLICATION_JSON)
public Response getFlexRouter(@Context Request req,
@Context ContainerRequest ctx) {
final String vpnIp = getRemoteAddr(req);
final Device device = deviceService.findDeviceByIp(vpnIp);
final String publicIp = getRemoteAddr(req);
final Device device = deviceService.findDeviceByIp(publicIp);
if (device == null) {
log.warn("getFlexRouters: device not found: "+vpnIp);
return ok(Collections.emptySet());
log.warn("getFlexRouter: device not found with IP: "+publicIp);
return NO_FLEX_ROUTER;
}

if (log.isDebugEnabled()) log.debug("getFlexRouters: finding routers for vpnIp="+vpnIp);
final DeviceStatus deviceStatus = deviceService.getDeviceStatus(device.getUuid());
final String publicIp = deviceStatus.getIp();
if (!deviceStatus.hasIp()) {
log.error("getFlexRouter: no device status for device: "+device);
return NO_FLEX_ROUTER;
}
final String vpnIp = deviceStatus.getIp();

if (log.isDebugEnabled()) log.debug("getFlexRouter: finding routers for vpnIp="+vpnIp);
Collection<FlexRouterInfo> routers = flexRouterService.selectClosestRouter(device.getAccount(), vpnIp, publicIp);

if (log.isDebugEnabled()) log.debug("getFlexRouters: found router(s) for vpnIp="+vpnIp+": "+json(routers));
if (routers.isEmpty()) return ok(Collections.emptySet());
if (log.isDebugEnabled()) log.debug("getFlexRouter: found router(s) for vpnIp="+vpnIp+": "+json(routers, COMPACT_MAPPER));
if (routers.isEmpty()) return NO_FLEX_ROUTER;
return ok(routers.iterator().next().initAuth());
}



bubble-server/src/main/resources/db/migration/V2020090501__add_flex_router.sql → bubble-server/src/main/resources/db/migration/V2020090801__add_flex_router.sql View File


+ 1
- 1
bubble-server/src/main/resources/messages

@@ -1 +1 @@
Subproject commit d97340e367e1b15ab71dc1ccd564af3a0dc7a361
Subproject commit 74c7c7f2efa41dd12d74cffff5013149136d3867

+ 1
- 1
bubble-web

@@ -1 +1 @@
Subproject commit 631284006bb691d3d6d88aa2c3544ebc6cfa2893
Subproject commit 2d0df5ecd846bc81f72d37ec385ed8b46ae17fd9

+ 1
- 1
utils/cobbzilla-wizard

@@ -1 +1 @@
Subproject commit 416d45b5ba87b5c798b2940f0bf357461c3a43c0
Subproject commit f57899c2022b6dcf6d991fe4a1b0c748ca3a56b3

Loading…
Cancel
Save