Add node IP attribute in k8s node class with minor code refactoring
Change-Id: I4c1c86c95acfeb38569b91c1677e4ce8af90460f
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sExternalNetwork.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sExternalNetwork.java
index cc19ff7..fd174d7 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sExternalNetwork.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sExternalNetwork.java
@@ -29,12 +29,14 @@
private final IpAddress extBridgeIp;
private final IpAddress extGatewayIp;
private final MacAddress extGatewayMac;
+ private final String extIntf;
protected DefaultK8sExternalNetwork(IpAddress extBridgeIp, IpAddress extGatewayIp,
- MacAddress extGatewayMac) {
+ MacAddress extGatewayMac, String extIntf) {
this.extBridgeIp = extBridgeIp;
this.extGatewayIp = extGatewayIp;
this.extGatewayMac = extGatewayMac;
+ this.extIntf = extIntf;
}
@Override
@@ -52,6 +54,11 @@
return extGatewayMac;
}
+ @Override
+ public String extIntf() {
+ return extIntf;
+ }
+
/**
* Returns new builder instance.
*
@@ -71,12 +78,13 @@
}
DefaultK8sExternalNetwork that = (DefaultK8sExternalNetwork) o;
return extBridgeIp.equals(that.extBridgeIp) &&
- extGatewayIp.equals(that.extGatewayIp);
+ extGatewayIp.equals(that.extGatewayIp) &&
+ extIntf.equals(that.extIntf);
}
@Override
public int hashCode() {
- return Objects.hash(extBridgeIp, extGatewayIp, extGatewayMac);
+ return Objects.hash(extBridgeIp, extGatewayIp, extGatewayMac, extIntf);
}
@Override
@@ -85,6 +93,7 @@
.add("extBridgeIp", extBridgeIp)
.add("extGatewayIp", extGatewayIp)
.add("extGatewayMac", extGatewayMac)
+ .add("extIntf", extIntf)
.toString();
}
@@ -93,6 +102,7 @@
private IpAddress extBridgeIp;
private IpAddress extGatewayIp;
private MacAddress extGatewayMac;
+ private String extIntf;
// private constructor not intended to use from external
private Builder() {
@@ -100,7 +110,7 @@
@Override
public K8sExternalNetwork build() {
- return new DefaultK8sExternalNetwork(extBridgeIp, extGatewayIp, extGatewayMac);
+ return new DefaultK8sExternalNetwork(extBridgeIp, extGatewayIp, extGatewayMac, extIntf);
}
@Override
@@ -120,5 +130,11 @@
this.extGatewayMac = extGatewayMac;
return this;
}
+
+ @Override
+ public Builder extIntf(String extIntf) {
+ this.extIntf = extIntf;
+ return this;
+ }
}
}
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
index 9613bef..b73c118 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
@@ -80,8 +80,8 @@
private final DeviceId tunBridge;
private final IpAddress managementIp;
private final IpAddress dataIp;
+ private final IpAddress nodeIp;
private final K8sNodeState state;
- private final String extIntf;
private final K8sExternalNetwork extNetwork;
private final String podCidr;
@@ -101,9 +101,9 @@
* @param extBridge external bridge
* @param localBridge local bridge
* @param tunBridge tunnel bridge
- * @param extIntf external interface
* @param managementIp management IP address
* @param dataIp data IP address
+ * @param nodeIp node IP address
* @param state node state
* @param extNetwork external network
* @param podCidr POD CIDR
@@ -111,8 +111,8 @@
protected DefaultK8sNode(String clusterName, String hostname, Type type,
int segmentId, Mode mode, DeviceId intgBridge,
DeviceId extBridge, DeviceId localBridge,
- DeviceId tunBridge, String extIntf, IpAddress managementIp,
- IpAddress dataIp, K8sNodeState state,
+ DeviceId tunBridge, IpAddress managementIp,
+ IpAddress dataIp, IpAddress nodeIp, K8sNodeState state,
K8sExternalNetwork extNetwork, String podCidr) {
this.clusterName = clusterName;
this.hostname = hostname;
@@ -123,9 +123,9 @@
this.extBridge = extBridge;
this.localBridge = localBridge;
this.tunBridge = tunBridge;
- this.extIntf = extIntf;
this.managementIp = managementIp;
this.dataIp = dataIp;
+ this.nodeIp = nodeIp;
this.state = state;
this.extNetwork = extNetwork;
this.podCidr = podCidr;
@@ -220,7 +220,7 @@
@Override
public String extIntf() {
- return extIntf;
+ return extNetwork.extIntf();
}
@Override
@@ -235,13 +235,14 @@
.extBridge(extBridge)
.localBridge(localBridge)
.tunBridge(tunBridge)
- .extIntf(extIntf)
.managementIp(managementIp)
.dataIp(dataIp)
+ .nodeIp(nodeIp)
.state(state)
.extBridgeIp(extNetwork.extBridgeIp())
.extGatewayIp(extNetwork.extGatewayIp())
.extGatewayMac(extNetwork.extGatewayMac())
+ .extIntf(extNetwork.extIntf())
.podCidr(podCidr)
.build();
}
@@ -258,13 +259,14 @@
.extBridge(deviceId)
.localBridge(localBridge)
.tunBridge(tunBridge)
- .extIntf(extIntf)
.managementIp(managementIp)
.dataIp(dataIp)
+ .nodeIp(nodeIp)
.state(state)
.extBridgeIp(extNetwork.extBridgeIp())
.extGatewayIp(extNetwork.extGatewayIp())
.extGatewayMac(extNetwork.extGatewayMac())
+ .extIntf(extNetwork.extIntf())
.podCidr(podCidr)
.build();
}
@@ -281,13 +283,14 @@
.extBridge(extBridge)
.localBridge(deviceId)
.tunBridge(tunBridge)
- .extIntf(extIntf)
.managementIp(managementIp)
.dataIp(dataIp)
+ .nodeIp(nodeIp)
.state(state)
.extBridgeIp(extNetwork.extBridgeIp())
.extGatewayIp(extNetwork.extGatewayIp())
.extGatewayMac(extNetwork.extGatewayMac())
+ .extIntf(extNetwork.extIntf())
.podCidr(podCidr)
.build();
}
@@ -304,13 +307,14 @@
.extBridge(extBridge)
.localBridge(localBridge)
.tunBridge(deviceId)
- .extIntf(extIntf)
.managementIp(managementIp)
.dataIp(dataIp)
+ .nodeIp(nodeIp)
.state(state)
.extBridgeIp(extNetwork.extBridgeIp())
.extGatewayIp(extNetwork.extGatewayIp())
.extGatewayMac(extNetwork.extGatewayMac())
+ .extIntf(extNetwork.extIntf())
.podCidr(podCidr)
.build();
}
@@ -326,6 +330,11 @@
}
@Override
+ public IpAddress nodeIp() {
+ return nodeIp;
+ }
+
+ @Override
public K8sNodeState state() {
return state;
}
@@ -347,13 +356,14 @@
.extBridge(extBridge)
.localBridge(localBridge)
.tunBridge(tunBridge)
- .extIntf(extIntf)
.managementIp(managementIp)
.dataIp(dataIp)
+ .nodeIp(nodeIp)
.state(newState)
.extBridgeIp(extNetwork.extBridgeIp())
.extGatewayIp(extNetwork.extGatewayIp())
.extGatewayMac(extNetwork.extGatewayMac())
+ .extIntf(extNetwork.extIntf())
.podCidr(podCidr)
.build();
}
@@ -370,13 +380,14 @@
.extBridge(extBridge)
.localBridge(localBridge)
.tunBridge(tunBridge)
- .extIntf(extIntf)
.managementIp(managementIp)
.dataIp(dataIp)
+ .nodeIp(nodeIp)
.state(state)
.extBridgeIp(extNetwork.extBridgeIp())
.extGatewayIp(extNetwork.extGatewayIp())
.extGatewayMac(newMac)
+ .extIntf(extNetwork.extIntf())
.podCidr(podCidr)
.build();
}
@@ -516,7 +527,7 @@
@Override
public PortNumber extIntfPortNum() {
- if (this.extIntf == null) {
+ if (this.extIntf() == null) {
return null;
}
return portNumber(extBridge, extIntf());
@@ -807,9 +818,9 @@
extBridge.equals(that.extBridge) &&
localBridge.equals(that.localBridge) &&
tunBridge.equals(that.tunBridge) &&
- extIntf.equals(that.extIntf) &&
managementIp.equals(that.managementIp) &&
dataIp.equals(that.dataIp) &&
+ nodeIp.equals(that.nodeIp) &&
extNetwork.equals(that.extNetwork) &&
podCidr.equals(that.podCidr) &&
state == that.state;
@@ -821,7 +832,7 @@
@Override
public int hashCode() {
return Objects.hash(clusterName, hostname, type, segmentId, mode, intgBridge, extBridge,
- localBridge, tunBridge, extIntf, managementIp, dataIp, state, extNetwork, podCidr);
+ localBridge, tunBridge, managementIp, dataIp, nodeIp, state, extNetwork, podCidr);
}
@Override
@@ -836,13 +847,14 @@
.add("extBridge", extBridge)
.add("localBridge", localBridge)
.add("tunBridge", tunBridge)
- .add("extIntf", extIntf)
.add("managementIp", managementIp)
.add("dataIp", dataIp)
+ .add("nodeIp", nodeIp)
.add("state", state)
.add("extBridgeIp", extNetwork.extBridgeIp())
.add("extGatewayIp", extNetwork.extGatewayIp())
.add("extGatewayMac", extNetwork.extGatewayMac())
+ .add("extIntf", extNetwork.extIntf())
.add("podCidr", podCidr)
.toString();
}
@@ -902,10 +914,12 @@
.extIntf(node.extIntf())
.managementIp(node.managementIp())
.dataIp(node.dataIp())
+ .nodeIp(node.nodeIp())
.state(node.state())
.extBridgeIp(node.extBridgeIp())
.extGatewayIp(node.extGatewayIp())
.extGatewayMac(node.extGatewayMac())
+ .extIntf(node.extIntf())
.podCidr(node.podCidr());
}
@@ -922,6 +936,7 @@
private DeviceId tunBridge;
private IpAddress managementIp;
private IpAddress dataIp;
+ private IpAddress nodeIp;
private K8sNodeState state;
private K8sApiConfig apiConfig;
private String extIntf;
@@ -940,6 +955,7 @@
checkArgument(type != null, NOT_NULL_MSG, "type");
checkArgument(state != null, NOT_NULL_MSG, "state");
checkArgument(managementIp != null, NOT_NULL_MSG, "management IP");
+ checkArgument(nodeIp != null, NOT_NULL_MSG, "node IP");
if (StringUtils.isEmpty(clusterName)) {
clusterName = DEFAULT_CLUSTER_NAME;
@@ -953,6 +969,7 @@
.extBridgeIp(extBridgeIp)
.extGatewayIp(extGatewayIp)
.extGatewayMac(extGatewayMac)
+ .extIntf(extIntf)
.build();
return new DefaultK8sNode(clusterName,
@@ -964,9 +981,9 @@
extBridge,
localBridge,
tunBridge,
- extIntf,
managementIp,
dataIp,
+ nodeIp,
state,
extNetwork,
podCidr);
@@ -1027,12 +1044,6 @@
}
@Override
- public Builder extIntf(String intf) {
- this.extIntf = intf;
- return this;
- }
-
- @Override
public Builder managementIp(IpAddress managementIp) {
this.managementIp = managementIp;
return this;
@@ -1045,6 +1056,12 @@
}
@Override
+ public Builder nodeIp(IpAddress nodeIp) {
+ this.nodeIp = nodeIp;
+ return this;
+ }
+
+ @Override
public Builder state(K8sNodeState state) {
this.state = state;
return this;
@@ -1069,6 +1086,12 @@
}
@Override
+ public Builder extIntf(String intf) {
+ this.extIntf = intf;
+ return this;
+ }
+
+ @Override
public Builder podCidr(String podCidr) {
this.podCidr = podCidr;
return this;
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sExternalNetwork.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sExternalNetwork.java
index 3462ad0..6649837 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sExternalNetwork.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sExternalNetwork.java
@@ -45,6 +45,13 @@
MacAddress extGatewayMac();
/**
+ * Returns the external interface name.
+ *
+ * @return interface name
+ */
+ String extIntf();
+
+ /**
* Builder of new network entity.
*/
interface Builder {
@@ -57,27 +64,35 @@
K8sExternalNetwork build();
/**
- * Returns kubernetes node builder with supplied external bridge IP.
+ * Returns kubernetes external network builder with supplied external bridge IP.
*
* @param extBridgeIp external bridge IP
- * @return kubernetes node builder
+ * @return kubernetes external network builder
*/
Builder extBridgeIp(IpAddress extBridgeIp);
/**
- * Returns kubernetes node builder with supplied gateway IP.
+ * Returns kubernetes external network builder with supplied gateway IP.
*
* @param extGatewayIp external gateway IP
- * @return kubernetes node builder
+ * @return kubernetes external network builder
*/
Builder extGatewayIp(IpAddress extGatewayIp);
/**
- * Returns kubernetes node builder with supplied external gateway MAC.
+ * Returns kubernetes external network builder with supplied external gateway MAC.
*
* @param extGatewayMac external gateway MAC address
- * @return kubernetes node builder
+ * @return kubernetes external network builder
*/
Builder extGatewayMac(MacAddress extGatewayMac);
+
+ /**
+ * Returns kubernetes external network builder with supplied external interface.
+ *
+ * @param extIntf external interface name
+ * @return kubernetes external network builder
+ */
+ Builder extIntf(String extIntf);
}
}
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
index 6631e55..eabb13a 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
@@ -187,6 +187,13 @@
IpAddress dataIp();
/**
+ * Returns the kubernetes node IP address.
+ *
+ * @return ip address; null if node has no IP address
+ */
+ IpAddress nodeIp();
+
+ /**
* Returns the initialization state of the node.
*
* @return node state
@@ -647,6 +654,14 @@
Builder dataIp(IpAddress dataIp);
/**
+ * Returns the kubernetes node builder with supplied node IP address.
+ *
+ * @param nodeIp node IP address
+ * @return kubernetes node builder
+ */
+ Builder nodeIp(IpAddress nodeIp);
+
+ /**
* Returns kubernetes node builder with supplied node state.
*
* @param state kubernetes node state