From b731e2f1dd0972409b136aebc7b463dd72c9cfad Mon Sep 17 00:00:00 2001 From: CNlucius Date: Tue, 13 Sep 2016 11:40:12 +0800 Subject: ONOSFW-171 O/S-SFC-ONOS scenario documentation Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365 Signed-off-by: CNlucius --- .../vtnweb/resources/FloatingIpWebResource.java | 285 ------------- .../resources/FlowClassifierWebResource.java | 164 -------- .../vtnweb/resources/PortChainWebResource.java | 162 -------- .../vtnweb/resources/PortPairGroupWebResource.java | 168 -------- .../vtnweb/resources/PortPairWebResource.java | 159 -------- .../vtnweb/resources/RouterWebResource.java | 447 --------------------- .../vtnweb/resources/SubnetWebResource.java | 379 ----------------- .../vtnweb/resources/TenantNetworkWebResource.java | 364 ----------------- .../vtnweb/resources/VirtualPortWebResource.java | 412 ------------------- .../onosproject/vtnweb/resources/package-info.java | 20 - .../vtnweb/web/AllocationPoolsCodec.java | 40 -- .../vtnweb/web/AllowedAddressPairCodec.java | 40 -- .../org/onosproject/vtnweb/web/FixedIpCodec.java | 40 -- .../onosproject/vtnweb/web/FloatingIpCodec.java | 98 ----- .../vtnweb/web/FlowClassifierCodec.java | 134 ------ .../onosproject/vtnweb/web/HostRoutesCodec.java | 40 -- .../org/onosproject/vtnweb/web/PortChainCodec.java | 105 ----- .../org/onosproject/vtnweb/web/PortPairCodec.java | 94 ----- .../onosproject/vtnweb/web/PortPairGroupCodec.java | 95 ----- .../org/onosproject/vtnweb/web/RouterCodec.java | 91 ----- .../vtnweb/web/RouterGatewayInfoCodec.java | 39 -- .../onosproject/vtnweb/web/SecurityGroupCodec.java | 39 -- .../org/onosproject/vtnweb/web/SubnetCodec.java | 53 --- .../onosproject/vtnweb/web/TenantNetworkCodec.java | 47 --- .../onosproject/vtnweb/web/VirtualPortCodec.java | 57 --- .../vtnweb/web/VtnCodecRegistrator.java | 56 --- .../org/onosproject/vtnweb/web/package-info.java | 20 - .../vtn/vtnweb/src/main/webapp/WEB-INF/web.xml | 51 --- 28 files changed, 3699 deletions(-) delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FlowClassifierWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortChainWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairGroupWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/RouterWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/SubnetWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/TenantNetworkWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/VirtualPortWebResource.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/package-info.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllocationPoolsCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllowedAddressPairCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FixedIpCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FloatingIpCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/HostRoutesCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortChainCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairGroupCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterGatewayInfoCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SecurityGroupCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SubnetCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/TenantNetworkCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VirtualPortCodec.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VtnCodecRegistrator.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/package-info.java delete mode 100644 framework/src/onos/apps/vtn/vtnweb/src/main/webapp/WEB-INF/web.xml (limited to 'framework/src/onos/apps/vtn/vtnweb/src/main') diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java deleted file mode 100644 index f7e97d5d..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java +++ /dev/null @@ -1,285 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static com.google.common.base.Preconditions.checkNotNull; -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; -import static javax.ws.rs.core.Response.Status.NOT_FOUND; -import static javax.ws.rs.core.Response.Status.CREATED; -import static javax.ws.rs.core.Response.Status.CONFLICT; -import static javax.ws.rs.core.Response.Status.NO_CONTENT; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onlab.packet.IpAddress; -import org.onlab.util.ItemNotFoundException; -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.DefaultFloatingIp; -import org.onosproject.vtnrsc.FloatingIp; -import org.onosproject.vtnrsc.FloatingIpId; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.TenantNetworkId; -import org.onosproject.vtnrsc.VirtualPortId; -import org.onosproject.vtnrsc.RouterId; -import org.onosproject.vtnrsc.FloatingIp.Status; -import org.onosproject.vtnrsc.floatingip.FloatingIpService; -import org.onosproject.vtnweb.web.FloatingIpCodec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Sets; - -@Path("floatingips") -public class FloatingIpWebResource extends AbstractWebResource { - private final Logger log = LoggerFactory - .getLogger(FloatingIpWebResource.class); - public static final String CREATE_FAIL = "Floating IP is failed to create!"; - public static final String UPDATE_FAIL = "Floating IP is failed to update!"; - public static final String GET_FAIL = "Floating IP is failed to get!"; - public static final String NOT_EXIST = "Floating IP does not exist!"; - public static final String DELETE_SUCCESS = "Floating IP delete success!"; - public static final String JSON_NOT_NULL = "JsonNode can not be null"; - - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response listFloatingIps() { - Collection floatingIps = get(FloatingIpService.class) - .getFloatingIps(); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("floatingips", - new FloatingIpCodec().encode(floatingIps, this)); - return ok(result.toString()).build(); - } - - @GET - @Path("{floatingIpUUID}") - @Produces(MediaType.APPLICATION_JSON) - public Response getFloatingIp(@PathParam("floatingIpUUID") String id, - @QueryParam("fields") List fields) { - - if (!get(FloatingIpService.class).exists(FloatingIpId.of(id))) { - return Response.status(NOT_FOUND).entity(NOT_EXIST).build(); - } - FloatingIp sub = nullIsNotFound(get(FloatingIpService.class) - .getFloatingIp(FloatingIpId.of(id)), GET_FAIL); - - ObjectNode result = new ObjectMapper().createObjectNode(); - if (fields.size() > 0) { - result.set("floatingip", - new FloatingIpCodec().extracFields(sub, this, fields)); - } else { - result.set("floatingip", new FloatingIpCodec().encode(sub, this)); - } - return ok(result.toString()).build(); - } - - @POST - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response createFloatingIp(final InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - Collection floatingIps = createOrUpdateByInputStream(subnode); - Boolean result = nullIsNotFound((get(FloatingIpService.class) - .createFloatingIps(floatingIps)), - CREATE_FAIL); - if (!result) { - return Response.status(CONFLICT).entity(CREATE_FAIL).build(); - } - return Response.status(CREATED).entity(result.toString()).build(); - - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @PUT - @Path("{floatingIpUUID}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updateFloatingIp(@PathParam("floatingIpUUID") String id, - final InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - Collection floatingIps = createOrUpdateByInputStream(subnode); - Boolean result = nullIsNotFound(get(FloatingIpService.class) - .updateFloatingIps(floatingIps), UPDATE_FAIL); - if (!result) { - return Response.status(CONFLICT).entity(UPDATE_FAIL).build(); - } - return ok(result.toString()).build(); - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @Path("{floatingIpUUID}") - @DELETE - public Response deleteSingleFloatingIp(@PathParam("floatingIpUUID") String id) - throws IOException { - try { - FloatingIpId floatingIpId = FloatingIpId.of(id); - Set floatingIpIds = Sets.newHashSet(floatingIpId); - get(FloatingIpService.class).removeFloatingIps(floatingIpIds); - return Response.status(NO_CONTENT).entity(DELETE_SUCCESS).build(); - } catch (Exception e) { - return Response.status(NOT_FOUND).entity(e.getMessage()).build(); - } - } - - private Collection createOrUpdateByInputStream(JsonNode subnode) - throws Exception { - checkNotNull(subnode, JSON_NOT_NULL); - Collection floatingIps = null; - JsonNode floatingIpNodes = subnode.get("floatingips"); - if (floatingIpNodes == null) { - floatingIpNodes = subnode.get("floatingip"); - } - log.debug("floatingNodes is {}", floatingIpNodes.toString()); - - if (floatingIpNodes.isArray()) { - throw new IllegalArgumentException("only singleton requests allowed"); - } else { - floatingIps = changeJsonToSub(floatingIpNodes); - } - return floatingIps; - } - - /** - * Returns a collection of floatingIps from floatingIpNodes. - * - * @param floatingIpNodes the floatingIp json node - * @return floatingIps a collection of floatingIp - * @throws Exception when any argument is illegal - */ - public Collection changeJsonToSub(JsonNode floatingIpNodes) - throws Exception { - checkNotNull(floatingIpNodes, JSON_NOT_NULL); - Map subMap = new HashMap(); - if (!floatingIpNodes.hasNonNull("id")) { - throw new IllegalArgumentException("id should not be null"); - } else if (floatingIpNodes.get("id").asText().isEmpty()) { - throw new IllegalArgumentException("id should not be empty"); - } - FloatingIpId id = FloatingIpId.of(floatingIpNodes.get("id") - .asText()); - - if (!floatingIpNodes.hasNonNull("tenant_id")) { - throw new IllegalArgumentException("tenant_id should not be null"); - } else if (floatingIpNodes.get("tenant_id").asText().isEmpty()) { - throw new IllegalArgumentException("tenant_id should not be empty"); - } - TenantId tenantId = TenantId.tenantId(floatingIpNodes.get("tenant_id") - .asText()); - - if (!floatingIpNodes.hasNonNull("floating_network_id")) { - throw new IllegalArgumentException( - "floating_network_id should not be null"); - } else if (floatingIpNodes.get("floating_network_id").asText() - .isEmpty()) { - throw new IllegalArgumentException( - "floating_network_id should not be empty"); - } - TenantNetworkId networkId = TenantNetworkId.networkId(floatingIpNodes - .get("floating_network_id").asText()); - - VirtualPortId portId = null; - if (floatingIpNodes.hasNonNull("port_id")) { - portId = VirtualPortId.portId(floatingIpNodes.get("port_id") - .asText()); - } - - RouterId routerId = null; - if (floatingIpNodes.hasNonNull("router_id")) { - routerId = RouterId.valueOf(floatingIpNodes.get("router_id") - .asText()); - } - - IpAddress fixedIp = null; - if (floatingIpNodes.hasNonNull("fixed_ip_address")) { - fixedIp = IpAddress.valueOf(floatingIpNodes.get("fixed_ip_address") - .asText()); - } - - if (!floatingIpNodes.hasNonNull("floating_ip_address")) { - throw new IllegalArgumentException( - "floating_ip_address should not be null"); - } else if (floatingIpNodes.get("floating_ip_address").asText() - .isEmpty()) { - throw new IllegalArgumentException( - "floating_ip_address should not be empty"); - } - IpAddress floatingIp = IpAddress.valueOf(floatingIpNodes - .get("floating_ip_address").asText()); - - if (!floatingIpNodes.hasNonNull("status")) { - throw new IllegalArgumentException("status should not be null"); - } else if (floatingIpNodes.get("status").asText().isEmpty()) { - throw new IllegalArgumentException("status should not be empty"); - } - Status status = Status.valueOf(floatingIpNodes.get("status").asText()); - - DefaultFloatingIp floatingIpObj = new DefaultFloatingIp(id, tenantId, - networkId, - portId, - routerId, - floatingIp, - fixedIp, status); - subMap.put(id, floatingIpObj); - return Collections.unmodifiableCollection(subMap.values()); - } - - /** - * Returns the specified item if that items is null; otherwise throws not - * found exception. - * - * @param item item to check - * @param item type - * @param message not found message - * @return item if not null - * @throws org.onlab.util.ItemNotFoundException if item is null - */ - protected T nullIsNotFound(T item, String message) { - if (item == null) { - throw new ItemNotFoundException(message); - } - return item; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FlowClassifierWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FlowClassifierWebResource.java deleted file mode 100644 index 4fd3fa48..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FlowClassifierWebResource.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static javax.ws.rs.core.Response.Status.OK; -import static org.onlab.util.Tools.nullIsNotFound; - -import java.io.IOException; -import java.io.InputStream; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.FlowClassifier; -import org.onosproject.vtnrsc.FlowClassifierId; -import org.onosproject.vtnrsc.flowclassifier.FlowClassifierService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Query and program flow classifier. - */ -@Path("flow_classifiers") -public class FlowClassifierWebResource extends AbstractWebResource { - - private final Logger log = LoggerFactory.getLogger(FlowClassifierWebResource.class); - - public static final String FLOW_CLASSIFIER_NOT_FOUND = "Flow classifier not found"; - - /** - * Get all flow classifiers created. - * - * @return 200 OK - */ - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response getFlowClassifiers() { - Iterable flowClassifiers = get(FlowClassifierService.class).getFlowClassifiers(); - ObjectNode result = mapper().createObjectNode(); - ArrayNode flowClassifierEntry = result.putArray("flow_classifiers"); - if (flowClassifiers != null) { - for (final FlowClassifier flowClassifier : flowClassifiers) { - flowClassifierEntry.add(codec(FlowClassifier.class).encode(flowClassifier, this)); - } - } - return ok(result.toString()).build(); - } - - /** - * Get details of a flow classifier. - * - * @param id - * flow classifier id - * @return 200 OK , 404 if given identifier does not exist - */ - @GET - @Path("{flow_id}") - @Produces(MediaType.APPLICATION_JSON) - public Response getFlowClassifier(@PathParam("flow_id") String id) { - FlowClassifier flowClassifier = nullIsNotFound(get(FlowClassifierService.class) - .getFlowClassifier(FlowClassifierId.of(id)), FLOW_CLASSIFIER_NOT_FOUND); - - ObjectNode result = mapper().createObjectNode(); - result.set("flow_classifier", codec(FlowClassifier.class).encode(flowClassifier, this)); - - return ok(result.toString()).build(); - } - - /** - * Creates and stores a new flow classifier. - * - * @param stream - * flow classifier from JSON - * @return status of the request - CREATED if the JSON is correct, - * BAD_REQUEST if the JSON is invalid - */ - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response createFlowClassifier(InputStream stream) { - try { - ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream); - JsonNode flow = jsonTree.get("flow_classifier"); - - FlowClassifier flowClassifier = codec(FlowClassifier.class).decode((ObjectNode) flow, this); - Boolean issuccess = nullIsNotFound(get(FlowClassifierService.class).createFlowClassifier(flowClassifier), - FLOW_CLASSIFIER_NOT_FOUND); - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (IOException ex) { - log.error("Exception while creating flow classifier {}.", ex.toString()); - throw new IllegalArgumentException(ex); - } - } - - /** - * Update details of a flow classifier. - * - * @param id - * flow classifier id - * @param stream - * InputStream - * @return 200 OK, 404 if given identifier does not exist - */ - @PUT - @Path("{flow_id}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updateFlowClassifier(@PathParam("flow_id") String id, final InputStream stream) { - try { - - JsonNode jsonTree = mapper().readTree(stream); - JsonNode flow = jsonTree.get("flow_classifier"); - FlowClassifier flowClassifier = codec(FlowClassifier.class).decode((ObjectNode) flow, this); - Boolean result = nullIsNotFound(get(FlowClassifierService.class).updateFlowClassifier(flowClassifier), - FLOW_CLASSIFIER_NOT_FOUND); - return Response.status(OK).entity(result.toString()).build(); - } catch (IOException e) { - log.error("Update flow classifier failed because of exception {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Delete details of a flow classifier. - * - * @param id - * flow classifier id - */ - @Path("{flow_id}") - @DELETE - public void deleteFlowClassifier(@PathParam("flow_id") String id) { - log.debug("Deletes flow classifier by identifier {}.", id); - FlowClassifierId flowClassifierId = FlowClassifierId.of(id); - Boolean issuccess = nullIsNotFound(get(FlowClassifierService.class).removeFlowClassifier(flowClassifierId), - FLOW_CLASSIFIER_NOT_FOUND); - - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortChainWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortChainWebResource.java deleted file mode 100644 index e7b908b7..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortChainWebResource.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static javax.ws.rs.core.Response.Status.OK; -import static org.onlab.util.Tools.nullIsNotFound; - -import java.io.IOException; -import java.io.InputStream; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.PortChain; -import org.onosproject.vtnrsc.PortChainId; -import org.onosproject.vtnrsc.portchain.PortChainService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Query and program port chain. - */ - -@Path("port_chains") -public class PortChainWebResource extends AbstractWebResource { - - private final Logger log = LoggerFactory.getLogger(PortChainWebResource.class); - public static final String PORT_CHAIN_NOT_FOUND = "Port chain not found"; - public static final String PORT_CHAIN_ID_EXIST = "Port chain exists"; - public static final String PORT_CHAIN_ID_NOT_EXIST = "Port chain does not exist with identifier"; - - /** - * Get details of all port chains created. - * - * @return 200 OK - */ - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response getPortChains() { - Iterable portChains = get(PortChainService.class).getPortChains(); - ObjectNode result = mapper().createObjectNode(); - ArrayNode portChainEntry = result.putArray("port_chains"); - if (portChains != null) { - for (final PortChain portChain : portChains) { - portChainEntry.add(codec(PortChain.class).encode(portChain, this)); - } - } - return ok(result.toString()).build(); - } - - /** - * Get details of a specified port chain id. - * - * @param id port chain id - * @return 200 OK, 404 if given identifier does not exist - */ - @GET - @Path("{chain_id}") - @Produces(MediaType.APPLICATION_JSON) - public Response getPortPain(@PathParam("chain_id") String id) { - - PortChain portChain = nullIsNotFound(get(PortChainService.class).getPortChain(PortChainId.of(id)), - PORT_CHAIN_NOT_FOUND); - ObjectNode result = mapper().createObjectNode(); - result.set("port_chain", codec(PortChain.class).encode(portChain, this)); - return ok(result.toString()).build(); - } - - /** - * Creates a new port chain. - * - * @param stream port chain from JSON - * @return status of the request - CREATED if the JSON is correct, - * BAD_REQUEST if the JSON is invalid - */ - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response createPortChain(InputStream stream) { - try { - ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream); - JsonNode port = jsonTree.get("port_chain"); - PortChain portChain = codec(PortChain.class).decode((ObjectNode) port, this); - Boolean issuccess = nullIsNotFound(get(PortChainService.class).createPortChain(portChain), - PORT_CHAIN_NOT_FOUND); - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (IOException e) { - log.error("Exception while creating port chain {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Update details of a specified port chain id. - * - * @param id port chain id - * @param stream port chain json - * @return 200 OK, 404 if given identifier does not exist - */ - @PUT - @Path("{chain_id}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updatePortPain(@PathParam("chain_id") String id, - final InputStream stream) { - try { - ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream); - JsonNode port = jsonTree.get("port_chain"); - PortChain portChain = codec(PortChain.class).decode((ObjectNode) port, this); - Boolean result = nullIsNotFound(get(PortChainService.class).updatePortChain(portChain), - PORT_CHAIN_NOT_FOUND); - return Response.status(OK).entity(result.toString()).build(); - } catch (IOException e) { - log.error("Update port chain failed because of exception {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Delete details of a specified port chain id. - * - * @param id port chain id - */ - @Path("{chain_id}") - @DELETE - public void deletePortPain(@PathParam("chain_id") String id) { - log.debug("Deletes port chain by identifier {}.", id); - PortChainId portChainId = PortChainId.of(id); - - Boolean issuccess = nullIsNotFound(get(PortChainService.class).removePortChain(portChainId), - PORT_CHAIN_NOT_FOUND); - if (!issuccess) { - log.debug("Port Chain identifier {} does not exist", id); - } - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairGroupWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairGroupWebResource.java deleted file mode 100644 index dc5328a2..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairGroupWebResource.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.vtnweb.resources; - -import static javax.ws.rs.core.Response.Status.OK; -import static org.onlab.util.Tools.nullIsNotFound; - -import java.io.IOException; -import java.io.InputStream; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.PortPairGroup; -import org.onosproject.vtnrsc.PortPairGroupId; -import org.onosproject.vtnrsc.portpairgroup.PortPairGroupService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Query and program port pair group. - */ - -@Path("port_pair_groups") -public class PortPairGroupWebResource extends AbstractWebResource { - - private final Logger log = LoggerFactory.getLogger(PortPairGroupWebResource.class); - public static final String PORT_PAIR_GROUP_NOT_FOUND = "Port pair group not found"; - public static final String PORT_PAIR_GROUP_ID_EXIST = "Port pair group exists"; - public static final String PORT_PAIR_GROUP_ID_NOT_EXIST = "Port pair group does not exist with identifier"; - - /** - * Get details of all port pair groups created. - * - * @return 200 OK - */ - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response getPortPairGroups() { - Iterable portPairGroups = get(PortPairGroupService.class).getPortPairGroups(); - ObjectNode result = mapper().createObjectNode(); - ArrayNode portPairGroupEntry = result.putArray("port_pair_groups"); - if (portPairGroups != null) { - for (final PortPairGroup portPairGroup : portPairGroups) { - portPairGroupEntry.add(codec(PortPairGroup.class).encode(portPairGroup, this)); - } - } - return ok(result.toString()).build(); - } - - /** - * Get details of a specified port pair group id. - * - * @param id port pair group id - * @return 200 OK, 404 if given identifier does not exist - */ - @GET - @Path("{group_id}") - @Produces(MediaType.APPLICATION_JSON) - public Response getPortPairGroup(@PathParam("group_id") String id) { - PortPairGroup portPairGroup = nullIsNotFound(get(PortPairGroupService.class) - .getPortPairGroup(PortPairGroupId.of(id)), - PORT_PAIR_GROUP_NOT_FOUND); - - ObjectNode result = mapper().createObjectNode(); - result.set("port_pair_group", codec(PortPairGroup.class).encode(portPairGroup, this)); - return ok(result.toString()).build(); - } - - /** - * Creates a new port pair group. - * - * @param stream port pair group from JSON - * @return status of the request - CREATED if the JSON is correct, - * BAD_REQUEST if the JSON is invalid - */ - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response createPortPairGroup(InputStream stream) { - - try { - ObjectMapper mapper = new ObjectMapper(); - ObjectNode jsonTree = (ObjectNode) mapper.readTree(stream); - JsonNode port = jsonTree.get("port_pair_group"); - - PortPairGroup portPairGroup = codec(PortPairGroup.class).decode((ObjectNode) port, this); - Boolean issuccess = nullIsNotFound(get(PortPairGroupService.class).createPortPairGroup(portPairGroup), - PORT_PAIR_GROUP_NOT_FOUND); - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (IOException e) { - log.error("Exception while creating port pair group {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Update details of a specified port pair group id. - * - * @param id port pair group id - * @param stream port pair group from json - * @return 200 OK, 404 if given identifier does not exist - */ - @PUT - @Path("{group_id}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updatePortPairGroup(@PathParam("group_id") String id, - final InputStream stream) { - try { - ObjectMapper mapper = new ObjectMapper(); - ObjectNode jsonTree = (ObjectNode) mapper.readTree(stream); - JsonNode port = jsonTree.get("port_pair_group"); - PortPairGroup portPairGroup = codec(PortPairGroup.class).decode((ObjectNode) port, this); - Boolean isSuccess = nullIsNotFound(get(PortPairGroupService.class).updatePortPairGroup(portPairGroup), - PORT_PAIR_GROUP_NOT_FOUND); - return Response.status(OK).entity(isSuccess.toString()).build(); - } catch (IOException e) { - log.error("Update port pair group failed because of exception {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Delete details of a specified port pair group id. - * - * @param id port pair group id - */ - @Path("{group_id}") - @DELETE - public void deletePortPairGroup(@PathParam("group_id") String id) { - log.debug("Deletes port pair group by identifier {}.", id); - PortPairGroupId portPairGroupId = PortPairGroupId.of(id); - Boolean issuccess = nullIsNotFound(get(PortPairGroupService.class).removePortPairGroup(portPairGroupId), - PORT_PAIR_GROUP_NOT_FOUND); - if (!issuccess) { - log.debug("Port pair group identifier {} does not exist", id); - } - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairWebResource.java deleted file mode 100644 index 4ed8ecd8..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairWebResource.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.vtnweb.resources; - -import static javax.ws.rs.core.Response.Status.OK; -import static org.onlab.util.Tools.nullIsNotFound; - -import java.io.IOException; -import java.io.InputStream; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.PortPair; -import org.onosproject.vtnrsc.PortPairId; -import org.onosproject.vtnrsc.portpair.PortPairService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Query and program port pair. - */ -@Path("port_pairs") -public class PortPairWebResource extends AbstractWebResource { - - private final Logger log = LoggerFactory.getLogger(PortPairWebResource.class); - public static final String PORT_PAIR_NOT_FOUND = "Port pair not found"; - public static final String PORT_PAIR_ID_EXIST = "Port pair exists"; - public static final String PORT_PAIR_ID_NOT_EXIST = "Port pair does not exist with identifier"; - - /** - * Get details of all port pairs created. - * - * @return 200 OK - */ - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response getPortPairs() { - Iterable portPairs = get(PortPairService.class).getPortPairs(); - ObjectNode result = mapper().createObjectNode(); - ArrayNode portPairEntry = result.putArray("port_pairs"); - if (portPairs != null) { - for (final PortPair portPair : portPairs) { - portPairEntry.add(codec(PortPair.class).encode(portPair, this)); - } - } - return ok(result.toString()).build(); - } - - /** - * Get details of a specified port pair id. - * - * @param id port pair id - * @return 200 OK, 404 if given identifier does not exist - */ - @GET - @Path("{pair_id}") - @Produces(MediaType.APPLICATION_JSON) - public Response getPortPair(@PathParam("pair_id") String id) { - PortPair portPair = nullIsNotFound(get(PortPairService.class).getPortPair(PortPairId.of(id)), - PORT_PAIR_NOT_FOUND); - ObjectNode result = mapper().createObjectNode(); - result.set("port_pair", codec(PortPair.class).encode(portPair, this)); - return ok(result.toString()).build(); - } - - /** - * Creates a new port pair. - * - * @param stream port pair from JSON - * @return status of the request - CREATED if the JSON is correct, - * BAD_REQUEST if the JSON is invalid - */ - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response createPortPair(InputStream stream) { - try { - ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream); - JsonNode port = jsonTree.get("port_pair"); - PortPair portPair = codec(PortPair.class).decode((ObjectNode) port, this); - Boolean isSuccess = nullIsNotFound(get(PortPairService.class).createPortPair(portPair), - PORT_PAIR_NOT_FOUND); - return Response.status(OK).entity(isSuccess.toString()).build(); - } catch (IOException e) { - log.error("Exception while creating port pair {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Update details of a specified port pair id. - * - * @param id port pair id - * @param stream port pair from json - * @return 200 OK, 404 if the given identifier does not exist - */ - @PUT - @Path("{pair_id}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updatePortPair(@PathParam("pair_id") String id, - final InputStream stream) { - try { - ObjectNode jsonTree = (ObjectNode) mapper().readTree(stream); - JsonNode port = jsonTree.get("port_pair"); - PortPair portPair = codec(PortPair.class).decode((ObjectNode) port, this); - Boolean isSuccess = nullIsNotFound(get(PortPairService.class).updatePortPair(portPair), - PORT_PAIR_NOT_FOUND); - return Response.status(OK).entity(isSuccess.toString()).build(); - } catch (IOException e) { - log.error("Update port pair failed because of exception {}.", e.toString()); - throw new IllegalArgumentException(e); - } - } - - /** - * Delete details of a specified port pair id. - * - * @param id port pair id - */ - @Path("{pair_id}") - @DELETE - public void deletePortPair(@PathParam("pair_id") String id) { - - PortPairId portPairId = PortPairId.of(id); - Boolean isSuccess = nullIsNotFound(get(PortPairService.class).removePortPair(portPairId), PORT_PAIR_NOT_FOUND); - if (!isSuccess) { - log.debug("Port pair identifier {} does not exist", id); - } - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/RouterWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/RouterWebResource.java deleted file mode 100644 index 6f80dd15..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/RouterWebResource.java +++ /dev/null @@ -1,447 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; -import static javax.ws.rs.core.Response.Status.CONFLICT; -import static javax.ws.rs.core.Response.Status.CREATED; -import static javax.ws.rs.core.Response.Status.NOT_FOUND; -import static javax.ws.rs.core.Response.Status.NO_CONTENT; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onlab.packet.IpAddress; -import org.onlab.util.ItemNotFoundException; -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.DefaultRouter; -import org.onosproject.vtnrsc.FixedIp; -import org.onosproject.vtnrsc.Router; -import org.onosproject.vtnrsc.Router.Status; -import org.onosproject.vtnrsc.RouterGateway; -import org.onosproject.vtnrsc.RouterId; -import org.onosproject.vtnrsc.RouterInterface; -import org.onosproject.vtnrsc.SubnetId; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.TenantNetworkId; -import org.onosproject.vtnrsc.VirtualPortId; -import org.onosproject.vtnrsc.router.RouterService; -import org.onosproject.vtnrsc.routerinterface.RouterInterfaceService; -import org.onosproject.vtnweb.web.RouterCodec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -@Path("routers") -public class RouterWebResource extends AbstractWebResource { - private final Logger log = LoggerFactory.getLogger(RouterWebResource.class); - public static final String CREATE_FAIL = "Router is failed to create!"; - public static final String UPDATE_FAIL = "Router is failed to update!"; - public static final String GET_FAIL = "Router is failed to get!"; - public static final String NOT_EXIST = "Router does not exist!"; - public static final String DELETE_SUCCESS = "Router delete success!"; - public static final String JSON_NOT_NULL = "JsonNode can not be null"; - public static final String INTFACR_ADD_SUCCESS = "Interface add success"; - public static final String INTFACR_DEL_SUCCESS = "Interface delete success"; - - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response listRouters() { - Collection routers = get(RouterService.class).getRouters(); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("routers", new RouterCodec().encode(routers, this)); - return ok(result.toString()).build(); - } - - @GET - @Path("{routerUUID}") - @Produces(MediaType.APPLICATION_JSON) - public Response getRouter(@PathParam("routerUUID") String id, - @QueryParam("fields") List fields) { - - if (!get(RouterService.class).exists(RouterId.valueOf(id))) { - return Response.status(NOT_FOUND) - .entity("The Router does not exists").build(); - } - Router sub = nullIsNotFound(get(RouterService.class) - .getRouter(RouterId.valueOf(id)), - NOT_EXIST); - - ObjectNode result = new ObjectMapper().createObjectNode(); - if (fields.size() > 0) { - result.set("router", - new RouterCodec().extracFields(sub, this, fields)); - } else { - result.set("router", new RouterCodec().encode(sub, this)); - } - return ok(result.toString()).build(); - } - - @POST - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response createRouter(final InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - Collection routers = createOrUpdateByInputStream(subnode); - - Boolean result = nullIsNotFound((get(RouterService.class) - .createRouters(routers)), - CREATE_FAIL); - if (!result) { - return Response.status(CONFLICT).entity(CREATE_FAIL).build(); - } - return Response.status(CREATED).entity(result.toString()).build(); - - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @PUT - @Path("{routerUUID}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updateRouter(@PathParam("routerUUID") String id, - final InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - Collection routers = createOrUpdateByInputStream(subnode); - Boolean result = nullIsNotFound(get(RouterService.class) - .updateRouters(routers), UPDATE_FAIL); - if (!result) { - return Response.status(CONFLICT).entity(UPDATE_FAIL).build(); - } - return ok(result.toString()).build(); - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @Path("{routerUUID}") - @DELETE - public Response deleteSingleRouter(@PathParam("routerUUID") String id) - throws IOException { - try { - RouterId routerId = RouterId.valueOf(id); - Set routerIds = Sets.newHashSet(routerId); - get(RouterService.class).removeRouters(routerIds); - return Response.status(NO_CONTENT).entity(DELETE_SUCCESS).build(); - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @PUT - @Path("{routerUUID}/add_router_interface") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response addRouterInterface(@PathParam("routerUUID") String id, - final InputStream input) { - if (!get(RouterService.class).exists(RouterId.valueOf(id))) { - return Response.status(NOT_FOUND).entity(NOT_EXIST).build(); - } - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - if (!subnode.hasNonNull("id")) { - throw new IllegalArgumentException("id should not be null"); - } else if (subnode.get("id").asText().isEmpty()) { - throw new IllegalArgumentException("id should not be empty"); - } - RouterId routerId = RouterId.valueOf(id); - if (!subnode.hasNonNull("subnet_id")) { - throw new IllegalArgumentException("subnet_id should not be null"); - } else if (subnode.get("subnet_id").asText().isEmpty()) { - throw new IllegalArgumentException("subnet_id should not be empty"); - } - SubnetId subnetId = SubnetId.subnetId(subnode.get("subnet_id") - .asText()); - if (!subnode.hasNonNull("tenant_id")) { - throw new IllegalArgumentException("tenant_id should not be null"); - } else if (subnode.get("tenant_id").asText().isEmpty()) { - throw new IllegalArgumentException("tenant_id should not be empty"); - } - TenantId tenentId = TenantId.tenantId(subnode.get("tenant_id") - .asText()); - if (!subnode.hasNonNull("port_id")) { - throw new IllegalArgumentException("port_id should not be null"); - } else if (subnode.get("port_id").asText().isEmpty()) { - throw new IllegalArgumentException("port_id should not be empty"); - } - VirtualPortId portId = VirtualPortId.portId(subnode.get("port_id") - .asText()); - RouterInterface routerInterface = RouterInterface - .routerInterface(subnetId, portId, routerId, tenentId); - get(RouterInterfaceService.class) - .addRouterInterface(routerInterface); - return ok(INTFACR_ADD_SUCCESS).build(); - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - @PUT - @Path("{routerUUID}/remove_router_interface") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response removeRouterInterface(@PathParam("routerUUID") String id, - final InputStream input) { - if (!get(RouterService.class).exists(RouterId.valueOf(id))) { - return Response.status(NOT_FOUND).entity(NOT_EXIST).build(); - } - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - if (!subnode.hasNonNull("id")) { - throw new IllegalArgumentException("id should not be null"); - } else if (subnode.get("id").asText().isEmpty()) { - throw new IllegalArgumentException("id should not be empty"); - } - RouterId routerId = RouterId.valueOf(id); - if (!subnode.hasNonNull("subnet_id")) { - throw new IllegalArgumentException("subnet_id should not be null"); - } else if (subnode.get("subnet_id").asText().isEmpty()) { - throw new IllegalArgumentException("subnet_id should not be empty"); - } - SubnetId subnetId = SubnetId.subnetId(subnode.get("subnet_id") - .asText()); - if (!subnode.hasNonNull("port_id")) { - throw new IllegalArgumentException("port_id should not be null"); - } else if (subnode.get("port_id").asText().isEmpty()) { - throw new IllegalArgumentException("port_id should not be empty"); - } - VirtualPortId portId = VirtualPortId.portId(subnode.get("port_id") - .asText()); - if (!subnode.hasNonNull("tenant_id")) { - throw new IllegalArgumentException("tenant_id should not be null"); - } else if (subnode.get("tenant_id").asText().isEmpty()) { - throw new IllegalArgumentException("tenant_id should not be empty"); - } - TenantId tenentId = TenantId.tenantId(subnode.get("tenant_id") - .asText()); - RouterInterface routerInterface = RouterInterface - .routerInterface(subnetId, portId, routerId, tenentId); - get(RouterInterfaceService.class) - .removeRouterInterface(routerInterface); - return ok(INTFACR_DEL_SUCCESS).build(); - } catch (Exception e) { - return Response.status(BAD_REQUEST).entity(e.getMessage()).build(); - } - } - - private Collection createOrUpdateByInputStream(JsonNode subnode) - throws Exception { - checkNotNull(subnode, JSON_NOT_NULL); - JsonNode routerNode = subnode.get("routers"); - if (routerNode == null) { - routerNode = subnode.get("router"); - } - log.debug("routerNode is {}", routerNode.toString()); - - if (routerNode.isArray()) { - throw new Exception("only singleton requests allowed"); - } else { - return changeJsonToSub(routerNode); - } - } - - /** - * Returns a collection of floatingIps from floatingIpNodes. - * - * @param routerNode the router json node - * @return routers a collection of router - * @throws Exception when any argument is illegal - */ - public Collection changeJsonToSub(JsonNode routerNode) - throws Exception { - checkNotNull(routerNode, JSON_NOT_NULL); - Map subMap = new HashMap(); - if (!routerNode.hasNonNull("id")) { - new IllegalArgumentException("id should not be null"); - } else if (routerNode.get("id").asText().isEmpty()) { - throw new IllegalArgumentException("id should not be empty"); - } - RouterId id = RouterId.valueOf(routerNode.get("id").asText()); - - if (!routerNode.hasNonNull("tenant_id")) { - throw new IllegalArgumentException("tenant_id should not be null"); - } else if (routerNode.get("tenant_id").asText().isEmpty()) { - throw new IllegalArgumentException("tenant_id should not be empty"); - } - TenantId tenantId = TenantId.tenantId(routerNode.get("tenant_id") - .asText()); - - VirtualPortId gwPortId = null; - if (routerNode.hasNonNull("gw_port_id")) { - gwPortId = VirtualPortId.portId(routerNode.get("gw_port_id") - .asText()); - } - - if (!routerNode.hasNonNull("status")) { - throw new IllegalArgumentException("status should not be null"); - } else if (routerNode.get("status").asText().isEmpty()) { - throw new IllegalArgumentException("status should not be empty"); - } - Status status = Status.valueOf(routerNode.get("status").asText()); - - String routerName = null; - if (routerNode.hasNonNull("name")) { - routerName = routerNode.get("name").asText(); - } - - boolean adminStateUp = true; - checkArgument(routerNode.get("admin_state_up").isBoolean(), - "admin_state_up should be boolean"); - if (routerNode.hasNonNull("admin_state_up")) { - adminStateUp = routerNode.get("admin_state_up").asBoolean(); - } - boolean distributed = false; - if (routerNode.hasNonNull("distributed")) { - distributed = routerNode.get("distributed").asBoolean(); - } - RouterGateway gateway = null; - if (routerNode.hasNonNull("external_gateway_info")) { - gateway = jsonNodeToGateway(routerNode.get("external_gateway_info")); - } - List routes = new ArrayList(); - DefaultRouter routerObj = new DefaultRouter(id, routerName, - adminStateUp, status, - distributed, gateway, - gwPortId, tenantId, routes); - subMap.put(id, routerObj); - return Collections.unmodifiableCollection(subMap.values()); - } - - /** - * Changes JsonNode Gateway to the Gateway. - * - * @param gateway the gateway JsonNode - * @return gateway - */ - private RouterGateway jsonNodeToGateway(JsonNode gateway) { - checkNotNull(gateway, JSON_NOT_NULL); - if (!gateway.hasNonNull("network_id")) { - throw new IllegalArgumentException("network_id should not be null"); - } else if (gateway.get("network_id").asText().isEmpty()) { - throw new IllegalArgumentException("network_id should not be empty"); - } - TenantNetworkId networkId = TenantNetworkId.networkId(gateway - .get("network_id").asText()); - - if (!gateway.hasNonNull("enable_snat")) { - throw new IllegalArgumentException("enable_snat should not be null"); - } else if (gateway.get("enable_snat").asText().isEmpty()) { - throw new IllegalArgumentException("enable_snat should not be empty"); - } - checkArgument(gateway.get("enable_snat").isBoolean(), - "enable_snat should be boolean"); - boolean enableSnat = gateway.get("enable_snat").asBoolean(); - - if (!gateway.hasNonNull("external_fixed_ips")) { - throw new IllegalArgumentException( - "external_fixed_ips should not be null"); - } else if (gateway.get("external_fixed_ips").isNull()) { - throw new IllegalArgumentException( - "external_fixed_ips should not be empty"); - } - Collection fixedIpList = jsonNodeToFixedIp(gateway - .get("external_fixed_ips")); - RouterGateway gatewayObj = RouterGateway.routerGateway(networkId, - enableSnat, - fixedIpList); - return gatewayObj; - } - - /** - * Changes JsonNode fixedIp to a collection of the fixedIp. - * - * @param fixedIp the allocationPools JsonNode - * @return a collection of fixedIp - */ - private Collection jsonNodeToFixedIp(JsonNode fixedIp) { - checkNotNull(fixedIp, JSON_NOT_NULL); - ConcurrentMap fixedIpMaps = Maps.newConcurrentMap(); - Integer i = 0; - for (JsonNode node : fixedIp) { - if (!node.hasNonNull("subnet_id")) { - throw new IllegalArgumentException("subnet_id should not be null"); - } else if (node.get("subnet_id").asText().isEmpty()) { - throw new IllegalArgumentException("subnet_id should not be empty"); - } - SubnetId subnetId = SubnetId.subnetId(node.get("subnet_id") - .asText()); - if (!node.hasNonNull("ip_address")) { - throw new IllegalArgumentException("ip_address should not be null"); - } else if (node.get("ip_address").asText().isEmpty()) { - throw new IllegalArgumentException("ip_address should not be empty"); - } - IpAddress ipAddress = IpAddress.valueOf(node.get("ip_address") - .asText()); - FixedIp fixedIpObj = FixedIp.fixedIp(subnetId, ipAddress); - - fixedIpMaps.putIfAbsent(i, fixedIpObj); - i++; - } - return Collections.unmodifiableCollection(fixedIpMaps.values()); - } - - /** - * Returns the specified item if that items is null; otherwise throws not - * found exception. - * - * @param item item to check - * @param item type - * @param message not found message - * @return item if not null - * @throws org.onlab.util.ItemNotFoundException if item is null - */ - protected T nullIsNotFound(T item, String message) { - if (item == null) { - throw new ItemNotFoundException(message); - } - return item; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/SubnetWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/SubnetWebResource.java deleted file mode 100644 index 0cc59a4e..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/SubnetWebResource.java +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; -import static javax.ws.rs.core.Response.Status.NOT_FOUND; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onlab.packet.IpAddress; -import org.onlab.packet.IpAddress.Version; -import org.onlab.packet.IpPrefix; -import org.onlab.util.ItemNotFoundException; -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.AllocationPool; -import org.onosproject.vtnrsc.DefaultAllocationPool; -import org.onosproject.vtnrsc.DefaultHostRoute; -import org.onosproject.vtnrsc.DefaultSubnet; -import org.onosproject.vtnrsc.HostRoute; -import org.onosproject.vtnrsc.Subnet; -import org.onosproject.vtnrsc.SubnetId; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.TenantNetworkId; -import org.onosproject.vtnrsc.Subnet.Mode; -import org.onosproject.vtnrsc.subnet.SubnetService; -import org.onosproject.vtnweb.web.SubnetCodec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -@Path("subnets") -public class SubnetWebResource extends AbstractWebResource { - private final Logger log = LoggerFactory.getLogger(SubnetWebResource.class); - public static final String SUBNET_NOT_CREATED = "Subnet failed to create!"; - public static final String SUBNET_NOT_FOUND = "Subnet is not found"; - public static final String JSON_NOT_NULL = "JsonNode can not be null"; - - @GET - @Produces(MediaType.APPLICATION_JSON) - public Response listSubnets() { - Iterable subnets = get(SubnetService.class).getSubnets(); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("subnets", new SubnetCodec().encode(subnets, this)); - return ok(result.toString()).build(); - } - - @GET - @Path("{subnetUUID}") - @Produces(MediaType.APPLICATION_JSON) - public Response getSubnet(@PathParam("subnetUUID") String id) { - - if (!get(SubnetService.class).exists(SubnetId.subnetId(id))) { - return Response.status(NOT_FOUND) - .entity(SUBNET_NOT_FOUND).build(); - } - Subnet sub = nullIsNotFound(get(SubnetService.class) - .getSubnet(SubnetId.subnetId(id)), - SUBNET_NOT_FOUND); - - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("subnet", new SubnetCodec().encode(sub, this)); - return ok(result.toString()).build(); - } - - @POST - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response createSubnet(final InputStream input) { - - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - Iterable subnets = createOrUpdateByInputStream(subnode); - Boolean result = nullIsNotFound((get(SubnetService.class) - .createSubnets(subnets)), - SUBNET_NOT_CREATED); - - if (!result) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(SUBNET_NOT_CREATED).build(); - } - return Response.status(202).entity(result.toString()).build(); - } catch (Exception e) { - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - @PUT - @Path("{subnetUUID}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updateSubnet(@PathParam("id") String id, - final InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode subnode = mapper.readTree(input); - Iterable subnets = createOrUpdateByInputStream(subnode); - Boolean result = nullIsNotFound(get(SubnetService.class) - .updateSubnets(subnets), SUBNET_NOT_FOUND); - if (!result) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(SUBNET_NOT_FOUND).build(); - } - return Response.status(203).entity(result.toString()).build(); - } catch (Exception e) { - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - @Path("{subnetUUID}") - @DELETE - public Response deleteSingleSubnet(@PathParam("subnetUUID") String id) - throws IOException { - try { - SubnetId subId = SubnetId.subnetId(id); - Set subIds = new HashSet<>(); - subIds.add(subId); - get(SubnetService.class).removeSubnets(subIds); - return Response.status(201).entity("SUCCESS").build(); - } catch (Exception e) { - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - private Iterable createOrUpdateByInputStream(JsonNode subnode) { - checkNotNull(subnode, JSON_NOT_NULL); - Iterable subnets = null; - JsonNode subnetNodes = subnode.get("subnets"); - if (subnetNodes == null) { - subnetNodes = subnode.get("subnet"); - } - log.debug("subnetNodes is {}", subnetNodes.toString()); - if (subnetNodes.isArray()) { - subnets = changeJsonToSubs(subnetNodes); - } else { - subnets = changeJsonToSub(subnetNodes); - } - return subnets; - } - - /** - * Returns a collection of subnets from subnetNodes. - * - * @param subnetNodes the subnet json node - * @return subnets a collection of subnets - */ - public Iterable changeJsonToSubs(JsonNode subnetNodes) { - checkNotNull(subnetNodes, JSON_NOT_NULL); - Map subMap = new HashMap<>(); - for (JsonNode subnetNode : subnetNodes) { - if (!subnetNode.hasNonNull("id")) { - return null; - } - SubnetId id = SubnetId.subnetId(subnetNode.get("id").asText()); - String subnetName = subnetNode.get("name").asText(); - TenantId tenantId = TenantId - .tenantId(subnetNode.get("tenant_id").asText()); - TenantNetworkId networkId = TenantNetworkId - .networkId(subnetNode.get("network_id").asText()); - String version = subnetNode.get("ip_version").asText(); - Version ipVersion; - switch (version) { - case "4": - ipVersion = Version.INET; - break; - case "6": - ipVersion = Version.INET; - break; - default: - throw new IllegalArgumentException("ipVersion should be 4 or 6."); - } - IpPrefix cidr = IpPrefix.valueOf(subnetNode.get("cidr").asText()); - IpAddress gatewayIp = IpAddress - .valueOf(subnetNode.get("gateway_ip").asText()); - Boolean dhcpEnabled = subnetNode.get("enable_dhcp").asBoolean(); - Boolean shared = subnetNode.get("shared").asBoolean(); - JsonNode hostRoutes = subnetNode.get("host_routes"); - Iterable hostRoutesIt = jsonNodeToHostRoutes(hostRoutes); - JsonNode allocationPools = subnetNode.get("allocation_pools"); - Iterable allocationPoolsIt = jsonNodeToAllocationPools(allocationPools); - Mode ipV6AddressMode = Mode - .valueOf(subnetNode.get("ipv6_address_mode").asText()); - Mode ipV6RaMode = Mode - .valueOf(subnetNode.get("ipv6_ra_mode").asText()); - Subnet subnet = new DefaultSubnet(id, subnetName, networkId, - tenantId, ipVersion, cidr, - gatewayIp, dhcpEnabled, shared, - Sets.newHashSet(hostRoutesIt), ipV6AddressMode, - ipV6RaMode, Sets.newHashSet(allocationPoolsIt)); - subMap.put(id, subnet); - } - return Collections.unmodifiableCollection(subMap.values()); - } - - /** - * Returns a collection of subnets from subnetNodes. - * - * @param subnetNodes the subnet json node - * @return subnets a collection of subnets - */ - public Iterable changeJsonToSub(JsonNode subnetNodes) { - checkNotNull(subnetNodes, JSON_NOT_NULL); - checkArgument(subnetNodes.get("enable_dhcp").isBoolean(), "enable_dhcp should be boolean"); - checkArgument(subnetNodes.get("shared").isBoolean(), "shared should be boolean"); - Map subMap = new HashMap<>(); - if (!subnetNodes.hasNonNull("id")) { - return null; - } - SubnetId id = SubnetId.subnetId(subnetNodes.get("id").asText()); - String subnetName = subnetNodes.get("name").asText(); - TenantId tenantId = TenantId - .tenantId(subnetNodes.get("tenant_id").asText()); - TenantNetworkId networkId = TenantNetworkId - .networkId(subnetNodes.get("network_id").asText()); - String version = subnetNodes.get("ip_version").asText(); - Version ipVersion; - switch (version) { - case "4": - ipVersion = Version.INET; - break; - case "6": - ipVersion = Version.INET; - break; - default: - throw new IllegalArgumentException("ipVersion should be 4 or 6."); - } - - IpPrefix cidr = IpPrefix.valueOf(subnetNodes.get("cidr").asText()); - IpAddress gatewayIp = IpAddress - .valueOf(subnetNodes.get("gateway_ip").asText()); - Boolean dhcpEnabled = subnetNodes.get("enable_dhcp").asBoolean(); - Boolean shared = subnetNodes.get("shared").asBoolean(); - JsonNode hostRoutes = subnetNodes.get("host_routes"); - Iterable hostRoutesIt = jsonNodeToHostRoutes(hostRoutes); - JsonNode allocationPools = subnetNodes.get("allocation_pools"); - Iterable allocationPoolsIt = jsonNodeToAllocationPools(allocationPools); - - Mode ipV6AddressMode = getMode(subnetNodes.get("ipv6_address_mode") - .asText()); - Mode ipV6RaMode = getMode(subnetNodes.get("ipv6_ra_mode").asText()); - - Subnet subnet = new DefaultSubnet(id, subnetName, networkId, tenantId, - ipVersion, cidr, gatewayIp, - dhcpEnabled, shared, Sets.newHashSet(hostRoutesIt), - ipV6AddressMode, ipV6RaMode, - Sets.newHashSet(allocationPoolsIt)); - subMap.put(id, subnet); - return Collections.unmodifiableCollection(subMap.values()); - } - - /** - * Gets ipv6_address_mode or ipv6_ra_mode type. - * - * @param mode the String value in JsonNode - * @return ipV6Mode Mode of the ipV6Mode - */ - private Mode getMode(String mode) { - Mode ipV6Mode; - if (mode == null) { - return null; - } - switch (mode) { - case "dhcpv6-stateful": - ipV6Mode = Mode.DHCPV6_STATEFUL; - break; - case "dhcpv6-stateless": - ipV6Mode = Mode.DHCPV6_STATELESS; - break; - case "slaac": - ipV6Mode = Mode.SLAAC; - break; - default: - ipV6Mode = null; - } - return ipV6Mode; - } - - /** - * Changes JsonNode alocPools to a collection of the alocPools. - * - * @param allocationPools the allocationPools JsonNode - * @return a collection of allocationPools - */ - public Iterable jsonNodeToAllocationPools(JsonNode allocationPools) { - checkNotNull(allocationPools, JSON_NOT_NULL); - ConcurrentMap alocplMaps = Maps - .newConcurrentMap(); - Integer i = 0; - for (JsonNode node : allocationPools) { - IpAddress startIp = IpAddress.valueOf(node.get("start").asText()); - IpAddress endIp = IpAddress.valueOf(node.get("end").asText()); - AllocationPool alocPls = new DefaultAllocationPool(startIp, endIp); - alocplMaps.putIfAbsent(i, alocPls); - i++; - } - return Collections.unmodifiableCollection(alocplMaps.values()); - } - - /** - * Changes hostRoutes JsonNode to a collection of the hostRoutes. - * - * @param hostRoutes the hostRoutes json node - * @return a collection of hostRoutes - */ - public Iterable jsonNodeToHostRoutes(JsonNode hostRoutes) { - checkNotNull(hostRoutes, JSON_NOT_NULL); - ConcurrentMap hostRouteMaps = Maps - .newConcurrentMap(); - Integer i = 0; - for (JsonNode node : hostRoutes) { - IpAddress nexthop = IpAddress.valueOf(node.get("nexthop").asText()); - IpPrefix destination = IpPrefix.valueOf(node.get("destination") - .asText()); - HostRoute hostRoute = new DefaultHostRoute(nexthop, destination); - hostRouteMaps.putIfAbsent(i, hostRoute); - i++; - } - return Collections.unmodifiableCollection(hostRouteMaps.values()); - } - - /** - * Returns the specified item if that items is null; otherwise throws not - * found exception. - * - * @param item item to check - * @param item type - * @param message not found message - * @return item if not null - * @throws org.onlab.util.ItemNotFoundException if item is null - */ - protected T nullIsNotFound(T item, String message) { - if (item == null) { - throw new ItemNotFoundException(message); - } - return item; - } - -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/TenantNetworkWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/TenantNetworkWebResource.java deleted file mode 100644 index fd2c4790..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/TenantNetworkWebResource.java +++ /dev/null @@ -1,364 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkArgument; -import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; -import static javax.ws.rs.core.Response.Status.OK; -import static javax.ws.rs.core.Response.Status.NOT_FOUND; - -import java.io.InputStream; -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onlab.util.ItemNotFoundException; -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.DefaultTenantNetwork; -import org.onosproject.vtnrsc.PhysicalNetwork; -import org.onosproject.vtnrsc.SegmentationId; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.TenantNetwork; -import org.onosproject.vtnrsc.TenantNetworkId; -import org.onosproject.vtnrsc.TenantNetwork.State; -import org.onosproject.vtnrsc.TenantNetwork.Type; -import org.onosproject.vtnrsc.tenantnetwork.TenantNetworkService; -import org.onosproject.vtnweb.web.TenantNetworkCodec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Maps; - -/** - * REST resource for interacting with the inventory of networks. - */ -@Path("networks") -public class TenantNetworkWebResource extends AbstractWebResource { - public static final String NETWORK_NOT_FOUND = "Network is not found"; - public static final String NETWORK_ID_EXIST = "Network id is existed"; - public static final String NETWORK_ID_NOT_EXIST = "Network id is not existed"; - public static final String CREATE_NETWORK = "create network"; - public static final String UPDATE_NETWORK = "update network"; - public static final String DELETE_NETWORK = "delete network"; - public static final String JSON_NOT_NULL = "JsonNode can not be null"; - - protected static final Logger log = LoggerFactory - .getLogger(TenantNetworkWebResource.class); - private final ConcurrentMap networksMap = Maps - .newConcurrentMap(); - - @GET - @Produces({ MediaType.APPLICATION_JSON }) - public Response getNetworks(@QueryParam("id") String queryId, - @QueryParam("name") String queryName, - @QueryParam("admin_state_up") String queryadminStateUp, - @QueryParam("status") String querystate, - @QueryParam("shared") String queryshared, - @QueryParam("tenant_id") String querytenantId, - @QueryParam("router:external") String routerExternal, - @QueryParam("provider:network_type") String type, - @QueryParam("provider:physical_network") String physicalNetwork, - @QueryParam("provider:segmentation_id") String segmentationId) { - Iterable networks = get(TenantNetworkService.class) - .getNetworks(); - Iterator networkors = networks.iterator(); - while (networkors.hasNext()) { - TenantNetwork network = networkors.next(); - if ((queryId == null || queryId.equals(network.id().toString())) - && (queryName == null || queryName.equals(network.name())) - && (queryadminStateUp == null || queryadminStateUp - .equals(Boolean.toString(network.adminStateUp()))) - && (querystate == null || querystate.equals(network.state() - .toString())) - && (queryshared == null || queryshared.equals(Boolean.toString(network - .shared()))) - && (querytenantId == null || querytenantId.equals(network - .tenantId().toString())) - && (routerExternal == null || routerExternal.equals(Boolean.toString(network - .routerExternal()))) - && (type == null || type.equals(network.type().toString())) - && (physicalNetwork == null || physicalNetwork - .equals(network.physicalNetwork().toString())) - && (segmentationId == null || segmentationId.equals(network - .segmentationId().toString()))) { - networksMap.putIfAbsent(network.id(), network); - } - } - networks = Collections.unmodifiableCollection(networksMap.values()); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("networks", new TenantNetworkCodec().encode(networks, this)); - - return ok(result.toString()).build(); - } - - private State isState(String state) { - if (state.equals("ACTIVE")) { - return TenantNetwork.State.ACTIVE; - } else if (state.equals("BUILD")) { - return TenantNetwork.State.BUILD; - } else if (state.equals("DOWN")) { - return TenantNetwork.State.DOWN; - } else if (state.equals("ERROR")) { - return TenantNetwork.State.ERROR; - } else { - return null; - } - } - - private Type isType(String type) { - if (type.equals("LOCAL")) { - return TenantNetwork.Type.LOCAL; - } else { - return null; - } - } - - @GET - @Path("{id}") - @Produces({ MediaType.APPLICATION_JSON }) - public Response getNetwork(@PathParam("id") String id) { - - if (!get(TenantNetworkService.class).exists(TenantNetworkId - .networkId(id))) { - return Response.status(NOT_FOUND) - .entity(NETWORK_NOT_FOUND).build(); - } - TenantNetwork network = nullIsNotFound(get(TenantNetworkService.class) - .getNetwork(TenantNetworkId.networkId(id)), NETWORK_NOT_FOUND); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("network", new TenantNetworkCodec().encode(network, this)); - - return ok(result.toString()).build(); - - } - - @POST - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response createNetworks(InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode cfg = mapper.readTree(input); - JsonNode nodes = null; - Iterable networks = null; - if (cfg.get("network") != null) { - nodes = cfg.get("network"); - if (nodes.isArray()) { - networks = changeJson2objs(nodes); - } else { - networks = changeJson2obj(CREATE_NETWORK, null, nodes); - } - } else if (cfg.get("networks") != null) { - nodes = cfg.get("networks"); - networks = changeJson2objs(nodes); - } - Boolean issuccess = nullIsNotFound((get(TenantNetworkService.class) - .createNetworks(networks)), - NETWORK_NOT_FOUND); - - if (!issuccess) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(NETWORK_ID_EXIST).build(); - } - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (Exception e) { - log.error("Creates tenantNetwork exception {}.", e.toString()); - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - @PUT - @Path("{id}") - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - public Response updateNetworks(@PathParam("id") String id, InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode cfg = mapper.readTree(input); - JsonNode nodes = null; - Iterable networks = null; - if (cfg.get("network") != null) { - nodes = cfg.get("network"); - if (nodes.isArray()) { - networks = changeJson2objs(nodes); - } else { - networks = changeJson2obj(UPDATE_NETWORK, - TenantNetworkId.networkId(id), - nodes); - } - } else if (cfg.get("networks") != null) { - nodes = cfg.get("networks"); - networks = changeJson2objs(nodes); - } - Boolean issuccess = nullIsNotFound((get(TenantNetworkService.class) - .updateNetworks(networks)), - NETWORK_NOT_FOUND); - if (!issuccess) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(NETWORK_ID_NOT_EXIST).build(); - } - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (Exception e) { - log.error("Updates tenantNetwork failed because of exception {}.", - e.toString()); - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - @DELETE - @Path("{id}") - public Response deleteNetworks(@PathParam("id") String id) { - log.debug("Deletes network by identifier {}.", id); - Set networkSet = new HashSet<>(); - networkSet.add(TenantNetworkId.networkId(id)); - Boolean issuccess = nullIsNotFound(get(TenantNetworkService.class) - .removeNetworks(networkSet), NETWORK_NOT_FOUND); - if (!issuccess) { - log.debug("Network identifier {} is not existed", id); - return Response.status(INTERNAL_SERVER_ERROR) - .entity(NETWORK_ID_NOT_EXIST).build(); - } - return Response.status(OK).entity(issuccess.toString()).build(); - } - - /** - * Returns a collection of tenantNetworks. - * - * @param flag the flag - * @param networkId network identifier - * @param node the network json node - * @return a collection of tenantNetworks - */ - public Iterable changeJson2obj(String flag, - TenantNetworkId networkId, - JsonNode node) { - checkNotNull(node, JSON_NOT_NULL); - TenantNetwork network = null; - ConcurrentMap networksMap = Maps - .newConcurrentMap(); - checkArgument(node.get("admin_state_up").isBoolean(), "admin_state_up should be boolean"); - checkArgument(node.get("shared").isBoolean(), "shared should be boolean"); - checkArgument(node.get("router:external").isBoolean(), "router:external should be boolean"); - String name = node.get("name").asText(); - boolean adminStateUp = node.get("admin_state_up").asBoolean(); - String state = node.get("status").asText(); - boolean shared = node.get("shared").asBoolean(); - String tenantId = node.get("tenant_id").asText(); - boolean routerExternal = node.get("router:external").asBoolean(); - String type = node.get("provider:network_type").asText(); - String physicalNetwork = node.get("provider:physical_network").asText(); - String segmentationId = node.get("provider:segmentation_id").asText(); - TenantNetworkId id = null; - if (flag.equals(CREATE_NETWORK)) { - id = TenantNetworkId.networkId(node.get("id").asText()); - } else if (flag.equals(UPDATE_NETWORK)) { - id = networkId; - } - network = new DefaultTenantNetwork( - id, - name, - adminStateUp, - isState(state), - shared, - TenantId.tenantId(tenantId), - routerExternal, - isType(type), - PhysicalNetwork - .physicalNetwork(physicalNetwork), - SegmentationId - .segmentationId(segmentationId)); - networksMap.putIfAbsent(id, network); - - return Collections.unmodifiableCollection(networksMap.values()); - } - - /** - * Returns a collection of tenantNetworks. - * - * @param nodes the network jsonnodes - * @return a collection of tenantNetworks - */ - public Iterable changeJson2objs(JsonNode nodes) { - checkNotNull(nodes, JSON_NOT_NULL); - TenantNetwork network = null; - ConcurrentMap networksMap = Maps - .newConcurrentMap(); - for (JsonNode node : nodes) { - String id = node.get("id").asText(); - String name = node.get("name").asText(); - boolean adminStateUp = node.get("admin_state_up").asBoolean(); - String state = node.get("status").asText(); - boolean shared = node.get("shared").asBoolean(); - String tenantId = node.get("tenant_id").asText(); - boolean routerExternal = node.get("router:external") - .asBoolean(); - String type = node.get("provider:network_type").asText(); - String physicalNetwork = node.get("provider:physical_network").asText(); - String segmentationId = node.get("provider:segmentation_id").asText(); - network = new DefaultTenantNetwork( - TenantNetworkId.networkId(id), - name, - adminStateUp, - isState(state), - shared, - TenantId.tenantId(tenantId), - routerExternal, - isType(type), - PhysicalNetwork.physicalNetwork(physicalNetwork), - SegmentationId.segmentationId(segmentationId)); - networksMap.putIfAbsent(TenantNetworkId.networkId(id), network); - } - - return Collections.unmodifiableCollection(networksMap.values()); - } - - /** - * Returns the specified item if that items is null; otherwise throws not - * found exception. - * - * @param item item to check - * @param item type - * @param message not found message - * @return item if not null - * @throws org.onlab.util.ItemNotFoundException if item is null - */ - protected T nullIsNotFound(T item, String message) { - if (item == null) { - throw new ItemNotFoundException(message); - } - return item; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/VirtualPortWebResource.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/VirtualPortWebResource.java deleted file mode 100644 index e47a57df..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/VirtualPortWebResource.java +++ /dev/null @@ -1,412 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.resources; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; -import static javax.ws.rs.core.Response.Status.OK; -import static javax.ws.rs.core.Response.Status.NOT_FOUND; - -import java.io.InputStream; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentMap; - -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.onlab.packet.IpAddress; -import org.onlab.packet.MacAddress; -import org.onlab.util.ItemNotFoundException; -import org.onosproject.net.DeviceId; -import org.onosproject.rest.AbstractWebResource; -import org.onosproject.vtnrsc.AllowedAddressPair; -import org.onosproject.vtnrsc.BindingHostId; -import org.onosproject.vtnrsc.DefaultVirtualPort; -import org.onosproject.vtnrsc.FixedIp; -import org.onosproject.vtnrsc.SecurityGroup; -import org.onosproject.vtnrsc.SubnetId; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.TenantNetworkId; -import org.onosproject.vtnrsc.VirtualPort; -import org.onosproject.vtnrsc.VirtualPort.State; -import org.onosproject.vtnrsc.VirtualPortId; -import org.onosproject.vtnrsc.virtualport.VirtualPortService; -import org.onosproject.vtnweb.web.VirtualPortCodec; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -/** - * REST resource for interacting with the inventory of infrastructure - * virtualPort. - */ -@Path("ports") -public class VirtualPortWebResource extends AbstractWebResource { - public static final String VPORT_NOT_FOUND = "VirtualPort is not found"; - public static final String VPORT_ID_EXIST = "VirtualPort id is exist"; - public static final String VPORT_ID_NOT_EXIST = "VirtualPort id is not exist"; - public static final String JSON_NOT_NULL = "JsonNode can not be null"; - protected static final Logger log = LoggerFactory - .getLogger(VirtualPortService.class); - - @GET - @Produces({ MediaType.APPLICATION_JSON }) - public Response getPorts() { - Iterable virtualPorts = get(VirtualPortService.class) - .getPorts(); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("ports", new VirtualPortCodec().encode(virtualPorts, this)); - return ok(result.toString()).build(); - } - - @GET - @Path("{id}") - @Produces({ MediaType.APPLICATION_JSON }) - public Response getportsById(@PathParam("id") String id) { - - if (!get(VirtualPortService.class).exists(VirtualPortId.portId(id))) { - return Response.status(NOT_FOUND) - .entity(VPORT_NOT_FOUND).build(); - } - VirtualPort virtualPort = nullIsNotFound(get(VirtualPortService.class) - .getPort(VirtualPortId.portId(id)), VPORT_NOT_FOUND); - ObjectNode result = new ObjectMapper().createObjectNode(); - result.set("port", new VirtualPortCodec().encode(virtualPort, this)); - return ok(result.toString()).build(); - } - - @POST - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response createPorts(InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode cfg = mapper.readTree(input); - Iterable vPorts = createOrUpdateByInputStream(cfg); - Boolean issuccess = nullIsNotFound(get(VirtualPortService.class) - .createPorts(vPorts), VPORT_NOT_FOUND); - if (!issuccess) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(VPORT_ID_NOT_EXIST).build(); - } - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (Exception e) { - log.error("Creates VirtualPort failed because of exception {}", - e.toString()); - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - @Path("{portUUID}") - @DELETE - public Response deletePorts(@PathParam("portUUID") String id) { - Set vPortIds = new HashSet<>(); - try { - if (id != null) { - vPortIds.add(VirtualPortId.portId(id)); - } - Boolean issuccess = nullIsNotFound(get(VirtualPortService.class) - .removePorts(vPortIds), VPORT_NOT_FOUND); - if (!issuccess) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(VPORT_ID_NOT_EXIST).build(); - } - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (Exception e) { - log.error("Deletes VirtualPort failed because of exception {}", - e.toString()); - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - @PUT - @Path("{id}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updatePorts(@PathParam("id") String id, InputStream input) { - try { - ObjectMapper mapper = new ObjectMapper(); - JsonNode cfg = mapper.readTree(input); - Iterable vPorts = createOrUpdateByInputStream(cfg); - Boolean issuccess = nullIsNotFound(get(VirtualPortService.class) - .updatePorts(vPorts), VPORT_NOT_FOUND); - if (!issuccess) { - return Response.status(INTERNAL_SERVER_ERROR) - .entity(VPORT_ID_NOT_EXIST).build(); - } - return Response.status(OK).entity(issuccess.toString()).build(); - } catch (Exception e) { - log.error("Updates failed because of exception {}", e.toString()); - return Response.status(INTERNAL_SERVER_ERROR).entity(e.toString()) - .build(); - } - } - - /** - * Returns a Object of the currently known infrastructure virtualPort. - * - * @param vPortNode the virtualPort json node - * @return a collection of virtualPorts - */ - public Iterable createOrUpdateByInputStream(JsonNode vPortNode) { - checkNotNull(vPortNode, JSON_NOT_NULL); - JsonNode vPortNodes = vPortNode.get("ports"); - if (vPortNodes == null) { - vPortNodes = vPortNode.get("port"); - } - if (vPortNodes.isArray()) { - return changeJsonToPorts(vPortNodes); - } else { - return changeJsonToPort(vPortNodes); - } - } - - /** - * Returns the iterable collection of virtualports from subnetNodes. - * - * @param vPortNodes the virtualPort json node - * @return virtualPorts a collection of virtualPorts - */ - public Iterable changeJsonToPorts(JsonNode vPortNodes) { - checkNotNull(vPortNodes, JSON_NOT_NULL); - Map portMap = new HashMap<>(); - Map strMap = new HashMap<>(); - for (JsonNode vPortnode : vPortNodes) { - VirtualPortId id = VirtualPortId.portId(vPortnode.get("id") - .asText()); - String name = vPortnode.get("name").asText(); - TenantId tenantId = TenantId.tenantId(vPortnode.get("tenant_id") - .asText()); - TenantNetworkId networkId = TenantNetworkId.networkId(vPortnode - .get("network_id").asText()); - checkArgument(vPortnode.get("admin_state_up").isBoolean(), "admin_state_up should be boolean"); - Boolean adminStateUp = vPortnode.get("admin_state_up").asBoolean(); - String state = vPortnode.get("status").asText(); - MacAddress macAddress = MacAddress.valueOf(vPortnode - .get("mac_address").asText()); - DeviceId deviceId = DeviceId.deviceId(vPortnode.get("device_id") - .asText()); - String deviceOwner = vPortnode.get("device_owner").asText(); - JsonNode fixedIpNodes = vPortNodes.get("fixed_ips"); - Set fixedIps = new HashSet<>(); - for (JsonNode fixedIpNode : fixedIpNodes) { - FixedIp fixedIp = jsonNodeToFixedIps(fixedIpNode); - fixedIps.add(fixedIp); - } - - BindingHostId bindingHostId = BindingHostId - .bindingHostId(vPortnode.get("binding:host_id").asText()); - String bindingVnicType = vPortnode.get("binding:vnic_type") - .asText(); - String bindingVifType = vPortnode.get("binding:vif_type").asText(); - String bindingVifDetails = vPortnode.get("binding:vif_details") - .asText(); - JsonNode allowedAddressPairJsonNode = vPortnode - .get("allowed_address_pairs"); - Collection allowedAddressPairs = - jsonNodeToAllowedAddressPair(allowedAddressPairJsonNode); - JsonNode securityGroupNode = vPortnode.get("security_groups"); - Collection securityGroups = jsonNodeToSecurityGroup(securityGroupNode); - strMap.put("name", name); - strMap.put("deviceOwner", deviceOwner); - strMap.put("bindingVnicType", bindingVnicType); - strMap.put("bindingVifType", bindingVifType); - strMap.put("bindingVifDetails", bindingVifDetails); - VirtualPort vPort = new DefaultVirtualPort(id, networkId, - adminStateUp, strMap, - isState(state), - macAddress, tenantId, - deviceId, fixedIps, - bindingHostId, - Sets.newHashSet(allowedAddressPairs), - Sets.newHashSet(securityGroups)); - portMap.put(id, vPort); - } - return Collections.unmodifiableCollection(portMap.values()); - } - - /** - * Returns a collection of virtualPorts from subnetNodes. - * - * @param vPortNodes the virtualPort json node - * @return virtualPorts a collection of virtualPorts - */ - public Iterable changeJsonToPort(JsonNode vPortNodes) { - checkNotNull(vPortNodes, JSON_NOT_NULL); - Map vportMap = new HashMap<>(); - Map strMap = new HashMap<>(); - VirtualPortId id = VirtualPortId.portId(vPortNodes.get("id").asText()); - String name = vPortNodes.get("name").asText(); - TenantId tenantId = TenantId.tenantId(vPortNodes.get("tenant_id") - .asText()); - TenantNetworkId networkId = TenantNetworkId.networkId(vPortNodes - .get("network_id").asText()); - Boolean adminStateUp = vPortNodes.get("admin_state_up").asBoolean(); - String state = vPortNodes.get("status").asText(); - MacAddress macAddress = MacAddress.valueOf(vPortNodes - .get("mac_address").asText()); - DeviceId deviceId = DeviceId.deviceId(vPortNodes.get("device_id") - .asText()); - String deviceOwner = vPortNodes.get("device_owner").asText(); - JsonNode fixedIpNodes = vPortNodes.get("fixed_ips"); - Set fixedIps = new HashSet<>(); - for (JsonNode fixedIpNode : fixedIpNodes) { - FixedIp fixedIp = jsonNodeToFixedIps(fixedIpNode); - fixedIps.add(fixedIp); - } - - BindingHostId bindingHostId = BindingHostId - .bindingHostId(vPortNodes.get("binding:host_id").asText()); - String bindingVnicType = vPortNodes.get("binding:vnic_type").asText(); - String bindingVifType = vPortNodes.get("binding:vif_type").asText(); - String bindingVifDetails = vPortNodes.get("binding:vif_details") - .asText(); - JsonNode allowedAddressPairJsonNode = vPortNodes - .get("allowed_address_pairs"); - Collection allowedAddressPairs = - jsonNodeToAllowedAddressPair(allowedAddressPairJsonNode); - JsonNode securityGroupNode = vPortNodes.get("security_groups"); - Collection securityGroups = jsonNodeToSecurityGroup(securityGroupNode); - strMap.put("name", name); - strMap.put("deviceOwner", deviceOwner); - strMap.put("bindingVnicType", bindingVnicType); - strMap.put("bindingVifType", bindingVifType); - strMap.put("bindingVifDetails", bindingVifDetails); - VirtualPort vPort = new DefaultVirtualPort(id, networkId, adminStateUp, - strMap, isState(state), - macAddress, tenantId, - deviceId, fixedIps, - bindingHostId, - Sets.newHashSet(allowedAddressPairs), - Sets.newHashSet(securityGroups)); - vportMap.put(id, vPort); - - return Collections.unmodifiableCollection(vportMap.values()); - } - - /** - * Returns a Object of the currently known infrastructure virtualPort. - * - * @param allowedAddressPairs the allowedAddressPairs json node - * @return a collection of allowedAddressPair - */ - public Collection jsonNodeToAllowedAddressPair(JsonNode allowedAddressPairs) { - checkNotNull(allowedAddressPairs, JSON_NOT_NULL); - ConcurrentMap allowMaps = Maps - .newConcurrentMap(); - int i = 0; - for (JsonNode node : allowedAddressPairs) { - IpAddress ip = IpAddress.valueOf(node.get("ip_address").asText()); - MacAddress mac = MacAddress.valueOf(node.get("mac_address") - .asText()); - AllowedAddressPair allows = AllowedAddressPair - .allowedAddressPair(ip, mac); - allowMaps.put(i, allows); - i++; - } - log.debug("The jsonNode of allowedAddressPairallow is {}" - + allowedAddressPairs.toString()); - return Collections.unmodifiableCollection(allowMaps.values()); - } - - /** - * Returns a collection of virtualPorts. - * - * @param securityGroups the virtualPort jsonnode - * @return a collection of securityGroups - */ - public Collection jsonNodeToSecurityGroup(JsonNode securityGroups) { - checkNotNull(securityGroups, JSON_NOT_NULL); - ConcurrentMap securMaps = Maps - .newConcurrentMap(); - int i = 0; - for (JsonNode node : securityGroups) { - SecurityGroup securityGroup = SecurityGroup - .securityGroup(node.asText()); - securMaps.put(i, securityGroup); - i++; - } - return Collections.unmodifiableCollection(securMaps.values()); - } - - /** - * Returns a collection of fixedIps. - * - * @param fixedIpNode the fixedIp jsonnode - * @return a collection of SecurityGroup - */ - public FixedIp jsonNodeToFixedIps(JsonNode fixedIpNode) { - SubnetId subnetId = SubnetId.subnetId(fixedIpNode.get("subnet_id") - .asText()); - IpAddress ipAddress = IpAddress.valueOf(fixedIpNode.get("ip_address") - .asText()); - FixedIp fixedIps = FixedIp.fixedIp(subnetId, ipAddress); - return fixedIps; - } - - /** - * Returns VirtualPort State. - * - * @param state the virtualport state - * @return the virtualPort state - */ - private State isState(String state) { - if (state.equals("ACTIVE")) { - return VirtualPort.State.ACTIVE; - } else { - return VirtualPort.State.DOWN; - } - - } - - /** - * Returns the specified item if that items is null; otherwise throws not - * found exception. - * - * @param item item to check - * @param item type - * @param message not found message - * @return item if not null - * @throws org.onlab.util.ItemNotFoundException if item is null - */ - protected T nullIsNotFound(T item, String message) { - if (item == null) { - throw new ItemNotFoundException(message); - } - return item; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/package-info.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/package-info.java deleted file mode 100644 index c81fc3d8..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * VTN web that used rest to creat vtn resources. - */ -package org.onosproject.vtnweb.resources; diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllocationPoolsCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllocationPoolsCodec.java deleted file mode 100644 index 4b6b662f..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllocationPoolsCodec.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.AllocationPool; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Subnet AllocationPool codec. - */ -public final class AllocationPoolsCodec extends JsonCodec { - - @Override - public ObjectNode encode(AllocationPool alocPool, CodecContext context) { - checkNotNull(alocPool, "AllocationPools cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("start", alocPool.startIp().toString()) - .put("end", alocPool.endIp().toString()); - return result; - } - -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllowedAddressPairCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllowedAddressPairCodec.java deleted file mode 100644 index 8ffc4e91..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllowedAddressPairCodec.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.AllowedAddressPair; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * VirtualPort AllowedAddressPair codec. - */ -public final class AllowedAddressPairCodec extends JsonCodec { - - @Override - public ObjectNode encode(AllowedAddressPair alocAddPair, CodecContext context) { - checkNotNull(alocAddPair, "AllowedAddressPair cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("ip_address", alocAddPair.ip().toString()) - .put("mac_address", alocAddPair.mac().toString()); - return result; - } - -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FixedIpCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FixedIpCodec.java deleted file mode 100644 index 559de685..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FixedIpCodec.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.FixedIp; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * VirtualPort FixedIp codec. - */ -public final class FixedIpCodec extends JsonCodec { - - @Override - public ObjectNode encode(FixedIp fixIp, CodecContext context) { - checkNotNull(fixIp, "FixedIp cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("subnet_id", fixIp.subnetId().toString()) - .put("ip_address", fixIp.ip().toString()); - return result; - } - -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FloatingIpCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FloatingIpCodec.java deleted file mode 100644 index ff5aebb4..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FloatingIpCodec.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Iterator; -import java.util.List; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.FloatingIp; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * FloatingIp JSON codec. - */ -public final class FloatingIpCodec extends JsonCodec { - @Override - public ObjectNode encode(FloatingIp floatingIp, CodecContext context) { - checkNotNull(floatingIp, "floatingIp cannot be null"); - ObjectNode result = context - .mapper() - .createObjectNode() - .put("id", floatingIp.id().floatingIpId().toString()) - .put("floating_network_id", floatingIp.networkId().toString()) - .put("router_id", - floatingIp.routerId() == null ? null : floatingIp - .routerId().routerId()) - .put("tenant_id", floatingIp.tenantId().toString()) - .put("port_id", - floatingIp.portId() == null ? null : floatingIp.portId() - .toString()) - .put("fixed_ip_address", - floatingIp.fixedIp() == null ? null : floatingIp.fixedIp() - .toString()) - .put("floating_ip_address", floatingIp.floatingIp().toString()) - .put("status", floatingIp.status().toString()); - return result; - } - - public ObjectNode extracFields(FloatingIp floatingIp, CodecContext context, - List fields) { - checkNotNull(floatingIp, "floatingIp cannot be null"); - ObjectNode result = context.mapper().createObjectNode(); - Iterator i = fields.iterator(); - while (i.hasNext()) { - String s = i.next(); - if (s.equals("floating_network_id")) { - result.put("floating_network_id", floatingIp.networkId() - .toString()); - } - if (s.equals("router_id")) { - result.put("router_id", - floatingIp.routerId() == null ? null : floatingIp - .routerId().routerId()); - } - if (s.equals("tenant_id")) { - result.put("tenant_id", floatingIp.tenantId().toString()); - } - if (s.equals("port_id")) { - result.put("port_id", - floatingIp.portId() == null ? null : floatingIp - .portId().toString()); - } - if (s.equals("id")) { - result.put("id", floatingIp.id().floatingIpId().toString()); - } - if (s.equals("fixed_ip_address")) { - result.put("fixed_ip_address", - floatingIp.fixedIp() == null ? null : floatingIp - .fixedIp().toString()); - } - if (s.equals("floating_ip_address")) { - result.put("floating_ip_address", floatingIp.floatingIp() - .toString()); - } - if (s.equals("status")) { - result.put("status", floatingIp.status().toString()); - } - } - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java deleted file mode 100644 index a18ca362..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.onlab.util.Tools.nullIsIllegal; - -import org.onlab.packet.IpPrefix; -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.DefaultFlowClassifier; -import org.onosproject.vtnrsc.FlowClassifier; -import org.onosproject.vtnrsc.FlowClassifierId; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.VirtualPortId; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Flow Classifier JSON codec. - */ -public final class FlowClassifierCodec extends JsonCodec { - - private static final String FLOW_CLASSIFIER_ID = "id"; - private static final String TENANT_ID = "tenant_id"; - private static final String NAME = "name"; - private static final String DESCRIPTION = "description"; - private static final String ETHER_TYPE = "ethertype"; - private static final String PROTOCOL = "protocol"; - private static final String MIN_SRC_PORT_RANGE = "source_port_range_min"; - private static final String MAX_SRC_PORT_RANGE = "source_port_range_max"; - private static final String MIN_DST_PORT_RANGE = "destination_port_range_min"; - private static final String MAX_DST_PORT_RANGE = "destination_port_range_max"; - private static final String SRC_IP_PREFIX = "source_ip_prefix"; - private static final String DST_IP_PREFIX = "destination_ip_prefix"; - private static final String SRC_PORT = "logical_source_port"; - private static final String DST_PORT = "logical_destination_port"; - private static final String MISSING_MEMBER_MESSAGE = " member is required in Flow Classifier."; - - @Override - public FlowClassifier decode(ObjectNode json, CodecContext context) { - if (json == null || !json.isObject()) { - return null; - } - - FlowClassifier.Builder resultBuilder = new DefaultFlowClassifier.Builder(); - - String flowClassifierId = nullIsIllegal(json.get(FLOW_CLASSIFIER_ID), - FLOW_CLASSIFIER_ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setFlowClassifierId(FlowClassifierId.of(flowClassifierId)); - - String tenantId = nullIsIllegal(json.get(TENANT_ID), TENANT_ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setTenantId(TenantId.tenantId(tenantId)); - - String flowClassiferName = nullIsIllegal(json.get(NAME), NAME + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setName(flowClassiferName); - - String flowClassiferDescription = (json.get(DESCRIPTION)).asText(); - resultBuilder.setDescription(flowClassiferDescription); - - String etherType = nullIsIllegal(json.get(ETHER_TYPE), ETHER_TYPE + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setEtherType(etherType); - - String protocol = (json.get(PROTOCOL)).asText(); - resultBuilder.setProtocol(protocol); - - int minSrcPortRange = (json.get(MIN_SRC_PORT_RANGE)).asInt(); - resultBuilder.setMinSrcPortRange(minSrcPortRange); - - int maxSrcPortRange = (json.get(MAX_SRC_PORT_RANGE)).asInt(); - resultBuilder.setMaxSrcPortRange(maxSrcPortRange); - - int minDstPortRange = (json.get(MIN_DST_PORT_RANGE)).asInt(); - resultBuilder.setMinDstPortRange(minDstPortRange); - - int maxDstPortRange = (json.get(MAX_DST_PORT_RANGE)).asInt(); - resultBuilder.setMaxDstPortRange(maxDstPortRange); - - String srcIpPrefix = (json.get(SRC_IP_PREFIX)).asText(); - if (!srcIpPrefix.isEmpty()) { - resultBuilder.setSrcIpPrefix(IpPrefix.valueOf(srcIpPrefix)); - } - - String dstIpPrefix = (json.get(DST_IP_PREFIX)).asText(); - if (!dstIpPrefix.isEmpty()) { - resultBuilder.setDstIpPrefix(IpPrefix.valueOf(dstIpPrefix)); - } - - String srcPort = json.get(SRC_PORT) != null ? (json.get(SRC_PORT)).asText() : ""; - if (!srcPort.isEmpty()) { - resultBuilder.setSrcPort(VirtualPortId.portId(srcPort)); - } - - String dstPort = json.get(DST_PORT) != null ? (json.get(DST_PORT)).asText() : ""; - if (!dstPort.isEmpty()) { - resultBuilder.setDstPort(VirtualPortId.portId(dstPort)); - } - return resultBuilder.build(); - } - - @Override - public ObjectNode encode(FlowClassifier flowClassifier, CodecContext context) { - checkNotNull(flowClassifier, "flowClassifier cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put(FLOW_CLASSIFIER_ID, flowClassifier.flowClassifierId().toString()) - .put(TENANT_ID, flowClassifier.tenantId().toString()) - .put(NAME, flowClassifier.name()) - .put(DESCRIPTION, flowClassifier.description()) - .put(ETHER_TYPE, flowClassifier.etherType()) - .put(PROTOCOL, flowClassifier.protocol()) - .put(MIN_SRC_PORT_RANGE, flowClassifier.minSrcPortRange()) - .put(MAX_SRC_PORT_RANGE, flowClassifier.maxSrcPortRange()) - .put(MIN_DST_PORT_RANGE, flowClassifier.minDstPortRange()) - .put(MAX_DST_PORT_RANGE, flowClassifier.maxDstPortRange()) - .put(SRC_IP_PREFIX, flowClassifier.srcIpPrefix().toString()) - .put(DST_IP_PREFIX, flowClassifier.dstIpPrefix().toString()) - .put(SRC_PORT, flowClassifier.srcPort().toString()) - .put(DST_PORT, flowClassifier.dstPort().toString()); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/HostRoutesCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/HostRoutesCodec.java deleted file mode 100644 index 815a0d02..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/HostRoutesCodec.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.HostRoute; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Subnet HostRoute codec. - */ -public final class HostRoutesCodec extends JsonCodec { - - @Override - public ObjectNode encode(HostRoute hostRoute, CodecContext context) { - checkNotNull(hostRoute, "HostRoute cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("nexthop", hostRoute.nexthop().toString()) - .put("destination", hostRoute.destination().toString()); - return result; - } - -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortChainCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortChainCodec.java deleted file mode 100644 index 1e9cf009..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortChainCodec.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.onlab.util.Tools.nullIsIllegal; - -import java.util.List; -import java.util.UUID; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.TenantId; -import org.onosproject.vtnrsc.DefaultPortChain; -import org.onosproject.vtnrsc.FlowClassifierId; -import org.onosproject.vtnrsc.PortChain; -import org.onosproject.vtnrsc.PortChainId; -import org.onosproject.vtnrsc.PortPairGroupId; - -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Lists; - -/** - * Port chain JSON codec. - */ -public final class PortChainCodec extends JsonCodec { - - private static final String ID = "id"; - private static final String TENANT_ID = "tenant_id"; - private static final String NAME = "name"; - private static final String DESCRIPTION = "description"; - private static final String PORT_PAIR_GROUPS = "port_pair_groups"; - private static final String FLOW_CLASSIFIERS = "flow_classifiers"; - private static final String MISSING_MEMBER_MESSAGE = - " member is required in PortChain"; - - @Override - public PortChain decode(ObjectNode json, CodecContext context) { - if (json == null || !json.isObject()) { - return null; - } - - PortChain.Builder resultBuilder = new DefaultPortChain.Builder(); - - String id = nullIsIllegal(json.get(ID), - ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setId(PortChainId.of(id)); - - String tenantId = nullIsIllegal(json.get(TENANT_ID), - TENANT_ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setTenantId(TenantId.tenantId(tenantId)); - - String name = nullIsIllegal(json.get(NAME), - NAME + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setName(name); - - String description = nullIsIllegal(json.get(DESCRIPTION), - DESCRIPTION + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setDescription(description); - - ArrayNode arrayNode = (ArrayNode) json.path(PORT_PAIR_GROUPS); - if (arrayNode != null) { - List list = Lists.newArrayList(); - arrayNode.forEach(i -> list.add(PortPairGroupId.of(i.asText()))); - resultBuilder.setPortPairGroups(list); - } - - arrayNode = (ArrayNode) json.path(FLOW_CLASSIFIERS); - if (arrayNode != null) { - List list = Lists.newArrayList(); - arrayNode.forEach(i -> list.add(FlowClassifierId.of(UUID.fromString(i.asText())))); - resultBuilder.setFlowClassifiers(list); - } - - return resultBuilder.build(); - } - - @Override - public ObjectNode encode(PortChain portChain, CodecContext context) { - checkNotNull(portChain, "port pair cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put(ID, portChain.portChainId().toString()) - .put(TENANT_ID, portChain.tenantId().toString()) - .put(NAME, portChain.name()) - .put(DESCRIPTION, portChain.description()) - .put(PORT_PAIR_GROUPS, portChain.portPairGroups().toString()) - .put(FLOW_CLASSIFIERS, portChain.flowClassifiers().toString()); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairCodec.java deleted file mode 100644 index 691536f4..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairCodec.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.onlab.util.Tools.nullIsIllegal; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.core.CoreService; -import org.onosproject.vtnrsc.DefaultPortPair; -import org.onosproject.vtnrsc.PortPair; -import org.onosproject.vtnrsc.PortPairId; -import org.onosproject.vtnrsc.TenantId; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Port Pair JSON codec. - */ -public final class PortPairCodec extends JsonCodec { - - private static final String ID = "id"; - private static final String TENANT_ID = "tenant_id"; - private static final String NAME = "name"; - private static final String DESCRIPTION = "description"; - private static final String INGRESS = "ingress"; - private static final String EGRESS = "egress"; - private static final String MISSING_MEMBER_MESSAGE = - " member is required in PortPair"; - - @Override - public PortPair decode(ObjectNode json, CodecContext context) { - if (json == null || !json.isObject()) { - return null; - } - - PortPair.Builder resultBuilder = new DefaultPortPair.Builder(); - - CoreService coreService = context.getService(CoreService.class); - - String id = nullIsIllegal(json.get(ID), - ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setId(PortPairId.of(id)); - - String tenantId = nullIsIllegal(json.get(TENANT_ID), - TENANT_ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setTenantId(TenantId.tenantId(tenantId)); - - String name = nullIsIllegal(json.get(NAME), - NAME + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setName(name); - - String description = nullIsIllegal(json.get(DESCRIPTION), - DESCRIPTION + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setDescription(description); - - String ingressPort = nullIsIllegal(json.get(INGRESS), - INGRESS + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setIngress(ingressPort); - - String egressPort = nullIsIllegal(json.get(EGRESS), - EGRESS + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setEgress(egressPort); - - return resultBuilder.build(); - } - - @Override - public ObjectNode encode(PortPair portPair, CodecContext context) { - checkNotNull(portPair, "port pair cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put(ID, portPair.portPairId().toString()) - .put(TENANT_ID, portPair.tenantId().toString()) - .put(NAME, portPair.name()) - .put(DESCRIPTION, portPair.description()) - .put(INGRESS, portPair.ingress()) - .put(EGRESS, portPair.egress()); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairGroupCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairGroupCodec.java deleted file mode 100644 index b5ae266b..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairGroupCodec.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.onlab.util.Tools.nullIsIllegal; - -import java.util.List; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.core.CoreService; -import org.onosproject.vtnrsc.DefaultPortPairGroup; -import org.onosproject.vtnrsc.PortPairGroup; -import org.onosproject.vtnrsc.PortPairGroupId; -import org.onosproject.vtnrsc.PortPairId; -import org.onosproject.vtnrsc.TenantId; - -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Lists; - -/** - * Port Pair Group JSON codec. - */ -public final class PortPairGroupCodec extends JsonCodec { - - private static final String ID = "id"; - private static final String TENANT_ID = "tenant_id"; - private static final String NAME = "name"; - private static final String DESCRIPTION = "description"; - private static final String PORT_PAIRS = "port_pairs"; - private static final String MISSING_MEMBER_MESSAGE = - " member is required in PortPairGroup"; - - @Override - public PortPairGroup decode(ObjectNode json, CodecContext context) { - if (json == null || !json.isObject()) { - return null; - } - - PortPairGroup.Builder resultBuilder = new DefaultPortPairGroup.Builder(); - - CoreService coreService = context.getService(CoreService.class); - - String id = nullIsIllegal(json.get(ID), - ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setId(PortPairGroupId.of(id)); - - String tenantId = nullIsIllegal(json.get(TENANT_ID), - TENANT_ID + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setTenantId(TenantId.tenantId(tenantId)); - - String name = nullIsIllegal(json.get(NAME), - NAME + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setName(name); - - String description = nullIsIllegal(json.get(DESCRIPTION), - DESCRIPTION + MISSING_MEMBER_MESSAGE).asText(); - resultBuilder.setDescription(description); - - List list = Lists.newArrayList(); - ArrayNode arrayNode = (ArrayNode) json.path(PORT_PAIRS); - arrayNode.forEach(i -> list.add(PortPairId.of(i.asText()))); - resultBuilder.setPortPairs(list); - - return resultBuilder.build(); - } - - @Override - public ObjectNode encode(PortPairGroup portPairGroup, CodecContext context) { - checkNotNull(portPairGroup, "port pair group cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put(ID, portPairGroup.portPairGroupId().toString()) - .put(TENANT_ID, portPairGroup.tenantId().toString()) - .put(NAME, portPairGroup.name()) - .put(DESCRIPTION, portPairGroup.description()) - .put(PORT_PAIRS, portPairGroup.portPairs().toString()); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterCodec.java deleted file mode 100644 index 61f7e955..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterCodec.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Iterator; -import java.util.List; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.Router; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Router JSON codec. - */ -public class RouterCodec extends JsonCodec { - @Override - public ObjectNode encode(Router router, CodecContext context) { - checkNotNull(router, "router cannot be null"); - ObjectNode result = context - .mapper() - .createObjectNode() - .put("id", router.id().routerId()) - .put("status", router.status().toString()) - .put("name", router.name().toString()) - .put("admin_state_up", router.adminStateUp()) - .put("tenant_id", router.tenantId().toString()) - .put("routes", - router.routes() == null ? null : router.routes() - .toString()); - result.set("external_gateway_info", - router.externalGatewayInfo() == null ? null - : new RouterGatewayInfoCodec() - .encode(router.externalGatewayInfo(), context)); - - return result; - } - - public ObjectNode extracFields(Router router, CodecContext context, - List fields) { - checkNotNull(router, "router cannot be null"); - ObjectNode result = context.mapper().createObjectNode(); - Iterator i = fields.iterator(); - while (i.hasNext()) { - String s = i.next(); - if (s.equals("id")) { - result.put("id", router.id().routerId()); - } - if (s.equals("status")) { - result.put("status", router.status().toString()); - } - if (s.equals("name")) { - result.put("name", router.name().toString()); - } - if (s.equals("admin_state_up")) { - result.put("admin_state_up", router.adminStateUp()); - } - if (s.equals("tenant_id")) { - result.put("tenant_id", router.tenantId().toString()); - } - if (s.equals("routes")) { - result.put("routes", router.routes() == null ? null : router - .routes().toString()); - } - if (s.equals("external_gateway_info")) { - result.set("external_gateway_info", - router.externalGatewayInfo() == null ? null - : new RouterGatewayInfoCodec() - .encode(router.externalGatewayInfo(), - context)); - } - } - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterGatewayInfoCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterGatewayInfoCodec.java deleted file mode 100644 index cb9fb67d..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterGatewayInfoCodec.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.RouterGateway; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Subnet Router Gateway Info codec. - */ -public class RouterGatewayInfoCodec extends JsonCodec { - @Override - public ObjectNode encode(RouterGateway routerGateway, CodecContext context) { - checkNotNull(routerGateway, "routerGateway cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("network_id", routerGateway.networkId().toString()); - result.set("external_fixed_ips", new FixedIpCodec() - .encode(routerGateway.externalFixedIps(), context)); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SecurityGroupCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SecurityGroupCodec.java deleted file mode 100644 index 18ed61ba..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SecurityGroupCodec.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.SecurityGroup; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Virtualport SecurityGroup codec. - */ -public final class SecurityGroupCodec extends JsonCodec { - - @Override - public ObjectNode encode(SecurityGroup securGroup, CodecContext context) { - checkNotNull(securGroup, "SecurityGroup cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("security_group", securGroup.securityGroup()); - return result; - } - -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SubnetCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SubnetCodec.java deleted file mode 100644 index e3d92fea..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SubnetCodec.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.Subnet; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * Subnet JSON codec. - */ -public final class SubnetCodec extends JsonCodec { - @Override - public ObjectNode encode(Subnet subnet, CodecContext context) { - checkNotNull(subnet, "Subnet cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("id", subnet.id().toString()) - .put("gateway_ip", subnet.gatewayIp().toString()) - .put("network_id", subnet.networkId().toString()) - .put("name", subnet.subnetName()) - .put("ip_version", subnet.ipVersion().toString()) - .put("cidr", subnet.cidr().toString()) - .put("shared", subnet.shared()) - .put("enabled_dchp", subnet.dhcpEnabled()) - .put("tenant_id", subnet.tenantId().toString()) - .put("ipv6_address_mode", subnet.ipV6AddressMode() == null ? null - : subnet.ipV6AddressMode().toString()) - .put("ipv6_ra_mode", subnet.ipV6RaMode() == null ? null - : subnet.ipV6RaMode().toString()); - result.set("allocation_pools", new AllocationPoolsCodec().encode(subnet - .allocationPools(), context)); - result.set("host_routes", - new HostRoutesCodec().encode(subnet.hostRoutes(), context)); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/TenantNetworkCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/TenantNetworkCodec.java deleted file mode 100644 index 8adba034..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/TenantNetworkCodec.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.TenantNetwork; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * TenantNetwork JSON codec. - */ -public final class TenantNetworkCodec extends JsonCodec { - - @Override - public ObjectNode encode(TenantNetwork network, CodecContext context) { - checkNotNull(network, "Network cannot be null"); - ObjectNode result = context.mapper().createObjectNode() - .put("id", network.id().toString()) - .put("name", network.name()) - .put("admin_state_up", network.adminStateUp()) - .put("status", "" + network.state()) - .put("shared", network.shared()) - .put("tenant_id", network.tenantId().toString()) - .put("router:external", network.routerExternal()) - .put("provider:network_type", "" + network.type()) - .put("provider:physical_network", network.physicalNetwork().toString()) - .put("provider:segmentation_id", network.segmentationId().toString()); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VirtualPortCodec.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VirtualPortCodec.java deleted file mode 100644 index 5cea5327..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VirtualPortCodec.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.onosproject.codec.CodecContext; -import org.onosproject.codec.JsonCodec; -import org.onosproject.vtnrsc.VirtualPort; - -import com.fasterxml.jackson.databind.node.ObjectNode; - -/** - * VirtualPort JSON codec. - */ -public final class VirtualPortCodec extends JsonCodec { - @Override - public ObjectNode encode(VirtualPort vPort, CodecContext context) { - checkNotNull(vPort, "VPort cannot be null"); - ObjectNode result = context - .mapper() - .createObjectNode() - .put("id", vPort.portId().toString()) - .put("network_id", vPort.networkId().toString()) - .put("admin_state_up", vPort.adminStateUp()) - .put("name", vPort.name()) - .put("status", vPort.state().toString()) - .put("mac_address", vPort.macAddress().toString()) - .put("tenant_id", vPort.tenantId().toString()) - .put("device_id", vPort.deviceId().toString()) - .put("device_owner", vPort.deviceOwner()) - .put("binding:vnic_type", vPort.bindingVnicType()) - .put("binding:Vif_type", vPort.bindingVifType()) - .put("binding:host_id", vPort.bindingHostId().toString()) - .put("binding:vif_details", vPort.bindingVifDetails()); - result.set("allowed_address_pairs", new AllowedAddressPairCodec().encode( - vPort.allowedAddressPairs(), context)); - result.set("fixed_ips", new FixedIpCodec().encode( - vPort.fixedIps(), context)); - result.set("security_groups", new SecurityGroupCodec().encode( - vPort.securityGroups(), context)); - return result; - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VtnCodecRegistrator.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VtnCodecRegistrator.java deleted file mode 100644 index e2defe59..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VtnCodecRegistrator.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.vtnweb.web; - -import org.apache.felix.scr.annotations.Activate; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.Deactivate; -import org.apache.felix.scr.annotations.Reference; -import org.apache.felix.scr.annotations.ReferenceCardinality; -import org.onosproject.codec.CodecService; -import org.onosproject.vtnrsc.FlowClassifier; -import org.onosproject.vtnrsc.PortChain; -import org.onosproject.vtnrsc.PortPair; -import org.onosproject.vtnrsc.PortPairGroup; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Implementation of the JSON codec brokering service for VTN app. - */ -@Component(immediate = true) -public class VtnCodecRegistrator { - - private static Logger log = LoggerFactory.getLogger(VtnCodecRegistrator.class); - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected CodecService codecService; - - @Activate - public void activate() { - codecService.registerCodec(PortPair.class, new PortPairCodec()); - codecService.registerCodec(PortPairGroup.class, new PortPairGroupCodec()); - codecService.registerCodec(FlowClassifier.class, new FlowClassifierCodec()); - codecService.registerCodec(PortChain.class, new PortChainCodec()); - - log.info("Started"); - } - - @Deactivate - public void deactivate() { - log.info("Stopped"); - } -} diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/package-info.java b/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/package-info.java deleted file mode 100644 index 3a609435..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Codecs for virtual tenant objects. - */ -package org.onosproject.vtnweb.web; diff --git a/framework/src/onos/apps/vtn/vtnweb/src/main/webapp/WEB-INF/web.xml b/framework/src/onos/apps/vtn/vtnweb/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 13b377bf..00000000 --- a/framework/src/onos/apps/vtn/vtnweb/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - VTNRSC REST API v1.0 - - - JAX-RS Service - com.sun.jersey.spi.container.servlet.ServletContainer - - com.sun.jersey.config.property.resourceConfigClass - com.sun.jersey.api.core.ClassNamesResourceConfig - - - com.sun.jersey.config.property.classnames - - org.onosproject.vtnweb.resources.TenantNetworkWebResource, - org.onosproject.vtnweb.resources.SubnetWebResource, - org.onosproject.vtnweb.resources.VirtualPortWebResource - org.onosproject.vtnweb.resources.FlowClassifierWebResource - org.onosproject.vtnweb.resources.PortChainWebResource - org.onosproject.vtnweb.resources.PortPairGroupWebResource - org.onosproject.vtnweb.resources.PortPairWebResource - org.onosproject.vtnweb.resources.FloatingIpWebResource - org.onosproject.vtnweb.resources.RouterWebResource - - - 1 - - - - JAX-RS Service - /* - - -- cgit 1.2.3-korg