- NeutronCRUDInterfaces interfaces = getNeutronInterfaces(true);
- INeutronRouterCRUD routerInterface = interfaces.getRouterInterface();
- INeutronNetworkCRUD networkInterface = interfaces.getNetworkInterface();
-
- NeutronRouter updatedRouter = input.getSingleton();
- NeutronRouter original = routerInterface.getRouter(routerUUID);
- updatedRouter.setID(routerUUID);
- updatedRouter.setTenantID(original.getTenantID());
-
- Object[] instances = NeutronUtil.getInstances(INeutronRouterAware.class, this);
- if (instances != null) {
- if (instances.length > 0) {
- for (Object instance : instances) {
- INeutronRouterAware service = (INeutronRouterAware) instance;
- int status = service.canUpdateRouter(updatedRouter, original);
- if (status < HTTP_OK_BOTTOM || status > HTTP_OK_TOP) {
- return Response.status(status).build();
- }
- }
- } else {
- throw new ServiceUnavailableException(NO_PROVIDERS);
- }
- } else {
- throw new ServiceUnavailableException(NO_PROVIDER_LIST);
- }
-
- /*
- * update the router entry and return the modified object
- */
- routerInterface.updateRouter(routerUUID, updatedRouter);
- if (instances != null) {
- for (Object instance : instances) {
- INeutronRouterAware service = (INeutronRouterAware) instance;
- service.neutronRouterUpdated(updatedRouter);
- }
- }
- return Response.status(HttpURLConnection.HTTP_OK).entity(
- new NeutronRouterRequest(routerInterface.getRouter(routerUUID))).build();
-