Committed by
Jonathan Hart
[ONOS-4280] Allow to add a subnet to external network after the external network is used in routers
Change-Id: Idc41e64c21b9b36422bba67b48027c8a7f337a70 (cherry picked from commit efbc0389)
Showing
2 changed files
with
13 additions
and
10 deletions
... | @@ -233,10 +233,7 @@ public class OpenstackRoutingManager implements OpenstackRoutingService { | ... | @@ -233,10 +233,7 @@ public class OpenstackRoutingManager implements OpenstackRoutingService { |
233 | @Override | 233 | @Override |
234 | public void updateRouter(OpenstackRouter openstackRouter) { | 234 | public void updateRouter(OpenstackRouter openstackRouter) { |
235 | if (openstackRouter.gatewayExternalInfo().externalFixedIps().size() > 0) { | 235 | if (openstackRouter.gatewayExternalInfo().externalFixedIps().size() > 0) { |
236 | - Ip4Address externalIp = openstackRouter.gatewayExternalInfo().externalFixedIps() | 236 | + checkExternalConnection(openstackRouter, getOpenstackRouterInterface(openstackRouter)); |
237 | - .values().stream().findFirst().orElse(null); | ||
238 | - OpenstackRouter router = getRouterfromExternalIp(externalIp); | ||
239 | - checkExternalConnection(router, getOpenstackRouterInterface(router)); | ||
240 | } else { | 237 | } else { |
241 | unsetExternalConnection(); | 238 | unsetExternalConnection(); |
242 | } | 239 | } | ... | ... |
... | @@ -41,7 +41,6 @@ import static com.google.common.base.Preconditions.checkNotNull; | ... | @@ -41,7 +41,6 @@ import static com.google.common.base.Preconditions.checkNotNull; |
41 | /** | 41 | /** |
42 | * Handles REST API call of Neturon L3 plugin. | 42 | * Handles REST API call of Neturon L3 plugin. |
43 | */ | 43 | */ |
44 | - | ||
45 | @Path("routers") | 44 | @Path("routers") |
46 | public class OpensatckRouterWebResource extends AbstractWebResource { | 45 | public class OpensatckRouterWebResource extends AbstractWebResource { |
47 | private final Logger log = LoggerFactory.getLogger(getClass()); | 46 | private final Logger log = LoggerFactory.getLogger(getClass()); |
... | @@ -81,18 +80,25 @@ public class OpensatckRouterWebResource extends AbstractWebResource { | ... | @@ -81,18 +80,25 @@ public class OpensatckRouterWebResource extends AbstractWebResource { |
81 | @Path("{id}") | 80 | @Path("{id}") |
82 | @Consumes(MediaType.APPLICATION_JSON) | 81 | @Consumes(MediaType.APPLICATION_JSON) |
83 | @Produces(MediaType.APPLICATION_JSON) | 82 | @Produces(MediaType.APPLICATION_JSON) |
84 | - public Response updateRouter(InputStream input) { | 83 | + public Response updateRouter(@PathParam("id") String id, InputStream input) { |
85 | checkNotNull(input); | 84 | checkNotNull(input); |
86 | try { | 85 | try { |
87 | ObjectMapper mapper = new ObjectMapper(); | 86 | ObjectMapper mapper = new ObjectMapper(); |
88 | ObjectNode routerNode = (ObjectNode) mapper.readTree(input); | 87 | ObjectNode routerNode = (ObjectNode) mapper.readTree(input); |
89 | 88 | ||
90 | - OpenstackRouter openstackRouter | 89 | + OpenstackRouter or = ROUTER_CODEC.decode(routerNode, this); |
91 | - = ROUTER_CODEC.decode(routerNode, this); | 90 | + |
91 | + OpenstackRouter.Builder osBuilder = new OpenstackRouter.Builder() | ||
92 | + .tenantId(or.tenantId()) | ||
93 | + .id(id) | ||
94 | + .name(or.name()) | ||
95 | + .status(OpenstackRouter.RouterStatus.ACTIVE) | ||
96 | + .adminStateUp(Boolean.valueOf(or.adminStateUp())) | ||
97 | + .gatewayExternalInfo(or.gatewayExternalInfo()); | ||
92 | 98 | ||
93 | OpenstackRoutingService routingService | 99 | OpenstackRoutingService routingService |
94 | = getService(OpenstackRoutingService.class); | 100 | = getService(OpenstackRoutingService.class); |
95 | - routingService.updateRouter(openstackRouter); | 101 | + routingService.updateRouter(osBuilder.build()); |
96 | 102 | ||
97 | log.debug("REST API UPDATE router is called from router {}", input.toString()); | 103 | log.debug("REST API UPDATE router is called from router {}", input.toString()); |
98 | return Response.status(Response.Status.OK).build(); | 104 | return Response.status(Response.Status.OK).build(); |
... | @@ -108,7 +114,7 @@ public class OpensatckRouterWebResource extends AbstractWebResource { | ... | @@ -108,7 +114,7 @@ public class OpensatckRouterWebResource extends AbstractWebResource { |
108 | @Path("{id}/add_router_interface") | 114 | @Path("{id}/add_router_interface") |
109 | @Consumes(MediaType.APPLICATION_JSON) | 115 | @Consumes(MediaType.APPLICATION_JSON) |
110 | @Produces(MediaType.APPLICATION_JSON) | 116 | @Produces(MediaType.APPLICATION_JSON) |
111 | - public Response addRouterInterface(InputStream input) { | 117 | + public Response addRouterInterface(@PathParam("id") String id, InputStream input) { |
112 | checkNotNull(input); | 118 | checkNotNull(input); |
113 | try { | 119 | try { |
114 | ObjectMapper mapper = new ObjectMapper(); | 120 | ObjectMapper mapper = new ObjectMapper(); | ... | ... |
-
Please register or login to post a comment