CORD-628 Refactored VTN service network and port API
- Removed direct use of Neutron data model and Neutron API
- Extended service network and service port API to have all network
information required for VTN
- Removed unnecessary dependency manager and store
- Removed network state sync method with Neutron and XOS
- Removed Neutron and XOS access information from the network config
- Re-organized API packages
Change-Id: I18f49ec733309315f683dfb2e6be6526056118f1
diff --git a/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
index d4339df..153eed3 100644
--- a/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
@@ -20,6 +20,7 @@
import com.google.common.collect.Sets;
import org.onlab.packet.TpPort;
import org.onosproject.net.DeviceId;
+import org.opencord.cordvtn.api.net.CidrAddr;
import java.util.Comparator;
import java.util.Objects;
@@ -37,9 +38,9 @@
public final class CordVtnNode {
private final String hostname;
- private final NetworkAddress hostMgmtIp;
- private final NetworkAddress localMgmtIp;
- private final NetworkAddress dataIp;
+ private final CidrAddr hostMgmtIp;
+ private final CidrAddr localMgmtIp;
+ private final CidrAddr dataIp;
private final Optional<TpPort> ovsdbPort;
private final SshAccessInfo sshInfo;
private final DeviceId integrationBridgeId;
@@ -65,9 +66,9 @@
* @param state cordvtn node state
*/
private CordVtnNode(String hostname,
- NetworkAddress hostMgmtIp,
- NetworkAddress localMgmtIp,
- NetworkAddress dataIp,
+ CidrAddr hostMgmtIp,
+ CidrAddr localMgmtIp,
+ CidrAddr dataIp,
Optional<TpPort> ovsdbPort,
SshAccessInfo sshInfo,
DeviceId integrationBridgeId,
@@ -117,7 +118,7 @@
*
* @return network address
*/
- public NetworkAddress hostMgmtIp() {
+ public CidrAddr hostMgmtIp() {
return this.hostMgmtIp;
}
@@ -126,7 +127,7 @@
*
* @return network address
*/
- public NetworkAddress localMgmtIp() {
+ public CidrAddr localMgmtIp() {
return this.localMgmtIp;
}
@@ -135,7 +136,7 @@
*
* @return network address
*/
- public NetworkAddress dataIp() {
+ public CidrAddr dataIp() {
return this.dataIp;
}
@@ -286,9 +287,9 @@
*/
public static final class Builder {
private String hostname;
- private NetworkAddress hostMgmtIp;
- private NetworkAddress localMgmtIp;
- private NetworkAddress dataIp;
+ private CidrAddr hostMgmtIp;
+ private CidrAddr localMgmtIp;
+ private CidrAddr dataIp;
private Optional<TpPort> ovsdbPort =
Optional.of(TpPort.tpPort(DEFAULT_OVSDB_PORT));
private SshAccessInfo sshInfo;
@@ -344,7 +345,7 @@
* @param hostMgmtIp host management netework ip address
* @return cordvtn node builder
*/
- public Builder hostMgmtIp(NetworkAddress hostMgmtIp) {
+ public Builder hostMgmtIp(CidrAddr hostMgmtIp) {
checkNotNull(hostMgmtIp);
this.hostMgmtIp = hostMgmtIp;
return this;
@@ -357,7 +358,7 @@
* @return cordvtn node builder
*/
public Builder hostMgmtIp(String cidr) {
- this.hostMgmtIp = NetworkAddress.valueOf(cidr);
+ this.hostMgmtIp = CidrAddr.valueOf(cidr);
return this;
}
@@ -367,7 +368,7 @@
* @param localMgmtIp local management network ip address
* @return cordvtn node builder
*/
- public Builder localMgmtIp(NetworkAddress localMgmtIp) {
+ public Builder localMgmtIp(CidrAddr localMgmtIp) {
checkNotNull(localMgmtIp);
this.localMgmtIp = localMgmtIp;
return this;
@@ -380,7 +381,7 @@
* @return cordvtn node builder
*/
public Builder localMgmtIp(String cidr) {
- this.localMgmtIp = NetworkAddress.valueOf(cidr);
+ this.localMgmtIp = CidrAddr.valueOf(cidr);
return this;
}
@@ -390,7 +391,7 @@
* @param dataIp data network ip address
* @return cordvtn node builder
*/
- public Builder dataIp(NetworkAddress dataIp) {
+ public Builder dataIp(CidrAddr dataIp) {
checkNotNull(dataIp);
this.dataIp = dataIp;
return this;
@@ -403,7 +404,7 @@
* @return cordvtn node builder
*/
public Builder dataIp(String cidr) {
- this.dataIp = NetworkAddress.valueOf(cidr);
+ this.dataIp = CidrAddr.valueOf(cidr);
return this;
}
diff --git a/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java b/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
deleted file mode 100644
index 93bcb7a..0000000
--- a/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2016-present 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.opencord.cordvtn.api.node;
-
-import com.google.common.base.MoreObjects;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.IpPrefix;
-
-import java.util.Objects;
-
-import static com.google.common.base.Preconditions.checkArgument;
-
-/**
- * Representation of a network address, which consists of IP address and prefix.
- */
-public final class NetworkAddress {
- private final IpAddress ip;
- private final IpPrefix prefix;
-
- /**
- * Constructor for a given IP address and prefix.
- *
- * @param ip ip address
- * @param prefix ip prefix
- */
- public NetworkAddress(IpAddress ip, IpPrefix prefix) {
- this.ip = ip;
- this.prefix = prefix;
- }
-
- /**
- * Converts a CIDR notation string into a network address.
- *
- * @param cidr cidr
- * @return network address
- * @throws IllegalArgumentException if the cidr is not valid
- */
- public static NetworkAddress valueOf(String cidr) {
- checkArgument(cidr.contains("/"));
-
- IpAddress ipAddress = IpAddress.valueOf(cidr.split("/")[0]);
- IpPrefix ipPrefix = IpPrefix.valueOf(cidr);
-
- return new NetworkAddress(ipAddress, ipPrefix);
- }
-
- /**
- * Returns the IP address value of the network address.
- *
- * @return ip address
- */
- public IpAddress ip() {
- return this.ip;
- }
-
- /**
- * Returns the IP prefix value of the network address.
- *
- * @return ip prefix
- */
- public IpPrefix prefix() {
- return this.prefix;
- }
-
- /**
- * Converts a network address to a CIDR notation.
- *
- * @return cidr notation string
- */
- public String cidr() {
- return ip.toString() + "/" + prefix.prefixLength();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (obj instanceof NetworkAddress) {
- NetworkAddress that = (NetworkAddress) obj;
- if (Objects.equals(ip, that.ip) && Objects.equals(prefix, that.prefix)) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(ip, prefix);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(getClass())
- .add("IpAddress", ip)
- .add("IpPrefix", prefix)
- .toString();
- }
-}