aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/apps/vtn/vtnweb/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/apps/vtn/vtnweb/src/main')
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FloatingIpWebResource.java285
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/FlowClassifierWebResource.java164
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortChainWebResource.java162
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairGroupWebResource.java168
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/PortPairWebResource.java159
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/RouterWebResource.java447
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/SubnetWebResource.java379
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/TenantNetworkWebResource.java364
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/VirtualPortWebResource.java412
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/resources/package-info.java20
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllocationPoolsCodec.java40
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/AllowedAddressPairCodec.java40
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FixedIpCodec.java40
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FloatingIpCodec.java98
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/FlowClassifierCodec.java134
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/HostRoutesCodec.java40
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortChainCodec.java105
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairCodec.java94
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/PortPairGroupCodec.java95
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterCodec.java91
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/RouterGatewayInfoCodec.java39
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SecurityGroupCodec.java39
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/SubnetCodec.java53
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/TenantNetworkCodec.java47
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VirtualPortCodec.java57
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/VtnCodecRegistrator.java56
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/java/org/onosproject/vtnweb/web/package-info.java20
-rw-r--r--framework/src/onos/apps/vtn/vtnweb/src/main/webapp/WEB-INF/web.xml51
28 files changed, 0 insertions, 3699 deletions
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<FloatingIp> 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<String> 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<FloatingIp> 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<FloatingIp> 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<FloatingIpId> 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<FloatingIp> createOrUpdateByInputStream(JsonNode subnode)
- throws Exception {
- checkNotNull(subnode, JSON_NOT_NULL);
- Collection<FloatingIp> 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<FloatingIp> changeJsonToSub(JsonNode floatingIpNodes)
- throws Exception {
- checkNotNull(floatingIpNodes, JSON_NOT_NULL);
- Map<FloatingIpId, FloatingIp> subMap = new HashMap<FloatingIpId, FloatingIp>();
- 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 <T> item type
- * @param message not found message
- * @return item if not null
- * @throws org.onlab.util.ItemNotFoundException if item is null
- */
- protected <T> 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<FlowClassifier> 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<PortChain> 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<PortPairGroup> 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<PortPair> 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<Router> 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<String> 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<Router> 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<Router> 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<RouterId> 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<Router> 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<Router> changeJsonToSub(JsonNode routerNode)
- throws Exception {
- checkNotNull(routerNode, JSON_NOT_NULL);
- Map<RouterId, Router> subMap = new HashMap<RouterId, Router>();
- 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<String> routes = new ArrayList<String>();
- 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<FixedIp> 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<FixedIp> jsonNodeToFixedIp(JsonNode fixedIp) {
- checkNotNull(fixedIp, JSON_NOT_NULL);
- ConcurrentMap<Integer, FixedIp> 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 <T> item type
- * @param message not found message
- * @return item if not null
- * @throws org.onlab.util.ItemNotFoundException if item is null
- */
- protected <T> 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<Subnet> 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<Subnet> 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<Subnet> 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<SubnetId> 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<Subnet> createOrUpdateByInputStream(JsonNode subnode) {
- checkNotNull(subnode, JSON_NOT_NULL);
- Iterable<Subnet> 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<Subnet> changeJsonToSubs(JsonNode subnetNodes) {
- checkNotNull(subnetNodes, JSON_NOT_NULL);
- Map<SubnetId, Subnet> 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<HostRoute> hostRoutesIt = jsonNodeToHostRoutes(hostRoutes);
- JsonNode allocationPools = subnetNode.get("allocation_pools");
- Iterable<AllocationPool> 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<Subnet> 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<SubnetId, Subnet> 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<HostRoute> hostRoutesIt = jsonNodeToHostRoutes(hostRoutes);
- JsonNode allocationPools = subnetNodes.get("allocation_pools");
- Iterable<AllocationPool> 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<AllocationPool> jsonNodeToAllocationPools(JsonNode allocationPools) {
- checkNotNull(allocationPools, JSON_NOT_NULL);
- ConcurrentMap<Integer, AllocationPool> 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<HostRoute> jsonNodeToHostRoutes(JsonNode hostRoutes) {
- checkNotNull(hostRoutes, JSON_NOT_NULL);
- ConcurrentMap<Integer, HostRoute> 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 <T> item type
- * @param message not found message
- * @return item if not null
- * @throws org.onlab.util.ItemNotFoundException if item is null
- */
- protected <T> 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<TenantNetworkId, TenantNetwork> 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<TenantNetwork> networks = get(TenantNetworkService.class)
- .getNetworks();
- Iterator<TenantNetwork> 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<TenantNetwork> 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<TenantNetwork> 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<TenantNetworkId> 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<TenantNetwork> changeJson2obj(String flag,
- TenantNetworkId networkId,
- JsonNode node) {
- checkNotNull(node, JSON_NOT_NULL);
- TenantNetwork network = null;
- ConcurrentMap<TenantNetworkId, TenantNetwork> 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<TenantNetwork> changeJson2objs(JsonNode nodes) {
- checkNotNull(nodes, JSON_NOT_NULL);
- TenantNetwork network = null;
- ConcurrentMap<TenantNetworkId, TenantNetwork> 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 <T> item type
- * @param message not found message
- * @return item if not null
- * @throws org.onlab.util.ItemNotFoundException if item is null
- */
- protected <T> 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<VirtualPort> 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<VirtualPort> 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<VirtualPortId> 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<VirtualPort> 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<VirtualPort> 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<VirtualPort> changeJsonToPorts(JsonNode vPortNodes) {
- checkNotNull(vPortNodes, JSON_NOT_NULL);
- Map<VirtualPortId, VirtualPort> portMap = new HashMap<>();
- Map<String, String> 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<FixedIp> 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<AllowedAddressPair> allowedAddressPairs =
- jsonNodeToAllowedAddressPair(allowedAddressPairJsonNode);
- JsonNode securityGroupNode = vPortnode.get("security_groups");
- Collection<SecurityGroup> 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<VirtualPort> changeJsonToPort(JsonNode vPortNodes) {
- checkNotNull(vPortNodes, JSON_NOT_NULL);
- Map<VirtualPortId, VirtualPort> vportMap = new HashMap<>();
- Map<String, String> 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<FixedIp> 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<AllowedAddressPair> allowedAddressPairs =
- jsonNodeToAllowedAddressPair(allowedAddressPairJsonNode);
- JsonNode securityGroupNode = vPortNodes.get("security_groups");
- Collection<SecurityGroup> 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<AllowedAddressPair> jsonNodeToAllowedAddressPair(JsonNode allowedAddressPairs) {
- checkNotNull(allowedAddressPairs, JSON_NOT_NULL);
- ConcurrentMap<Integer, AllowedAddressPair> 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<SecurityGroup> jsonNodeToSecurityGroup(JsonNode securityGroups) {
- checkNotNull(securityGroups, JSON_NOT_NULL);
- ConcurrentMap<Integer, SecurityGroup> 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 <T> item type
- * @param message not found message
- * @return item if not null
- * @throws org.onlab.util.ItemNotFoundException if item is null
- */
- protected <T> 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<AllocationPool> {
-
- @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<AllowedAddressPair> {
-
- @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<FixedIp> {
-
- @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<FloatingIp> {
- @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<String> fields) {
- checkNotNull(floatingIp, "floatingIp cannot be null");
- ObjectNode result = context.mapper().createObjectNode();
- Iterator<String> 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<FlowClassifier> {
-
- 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<HostRoute> {
-
- @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<PortChain> {
-
- 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<PortPairGroupId> 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<FlowClassifierId> 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<PortPair> {
-
- 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<PortPairGroup> {
-
- 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<PortPairId> 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<Router> {
- @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<String> fields) {
- checkNotNull(router, "router cannot be null");
- ObjectNode result = context.mapper().createObjectNode();
- Iterator<String> 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<RouterGateway> {
- @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<SecurityGroup> {
-
- @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<Subnet> {
- @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<TenantNetwork> {
-
- @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<VirtualPort> {
- @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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- id="ONOS" version="2.5">
- <display-name>VTNRSC REST API v1.0</display-name>
-
- <servlet>
- <servlet-name>JAX-RS Service</servlet-name>
- <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
- <init-param>
- <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
- <param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value>
- </init-param>
- <init-param>
- <param-name>com.sun.jersey.config.property.classnames</param-name>
- <param-value>
- 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
- </param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>JAX-RS Service</servlet-name>
- <url-pattern>/*</url-pattern>
- </servlet-mapping>
-</web-app>