aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java
diff options
context:
space:
mode:
authorAshlee Young <ashlee@wildernessvoice.com>2015-12-06 07:15:03 -0800
committerAshlee Young <ashlee@wildernessvoice.com>2015-12-08 10:55:21 -0800
commit76dc892491948adae5e5e62cf94448967e8d865b (patch)
tree7a33ef05cc583946db21edad627060f280a53549 /framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java
parentd333c63fdec8b064184b0a26f8d777f267577fde (diff)
Fixes bad POM file with ONOS commit 8c68536972f63069c263635c9d9f4f31d7f3e9a2
Change-Id: I7adb5a2d3738d53dbc41db7577768b0e7ced5450 Signed-off-by: Ashlee Young <ashlee@wildernessvoice.com>
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java72
1 files changed, 71 insertions, 1 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java b/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java
index 2fe2b2c0..92946312 100644
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java
+++ b/framework/src/onos/core/api/src/main/java/org/onosproject/net/config/basics/BasicHostConfig.java
@@ -15,13 +15,83 @@
*/
package org.onosproject.net.config.basics;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import org.onlab.packet.IpAddress;
+import org.onosproject.net.ConnectPoint;
import org.onosproject.net.HostId;
+import java.util.HashSet;
+import java.util.Set;
/**
* Basic configuration for network end-station hosts.
*/
public class BasicHostConfig extends BasicElementConfig<HostId> {
+ private static final String IPS = "ips";
+ private static final String LOCATION = "location";
- // TODO: determine what aspects of configuration to add for hosts
+ @Override
+ public boolean isValid() {
+ return hasOnlyFields(IPS, LOCATION) &&
+ this.location() != null &&
+ this.ipAddresses() != null;
+ }
+ /**
+ * Gets location of the host.
+ *
+ * @return location of the host. Or null if not specified with correct format.
+ */
+ public ConnectPoint location() {
+ String location = get(LOCATION, null);
+
+ if (location != null) {
+ try {
+ return ConnectPoint.deviceConnectPoint(location);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Sets the location of the host.
+ *
+ * @param location location of the host.
+ * @return the config of the host.
+ */
+ public BasicHostConfig setLocation(String location) {
+ return (BasicHostConfig) setOrClear(LOCATION, location);
+ }
+
+ /**
+ * Gets IP addresses of the host.
+ *
+ * @return IP addresses of the host. Or null if not specified with correct format.
+ */
+ public Set<IpAddress> ipAddresses() {
+ HashSet<IpAddress> ipAddresses = new HashSet<>();
+ if (object.has(IPS)) {
+ ArrayNode ipNodes = (ArrayNode) object.path(IPS);
+ try {
+ ipNodes.forEach(ipNode -> {
+ ipAddresses.add(IpAddress.valueOf(ipNode.asText()));
+ });
+ return ipAddresses;
+ } catch (Exception e) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Sets the IP addresses of the host.
+ *
+ * @param ipAddresses IP addresses of the host.
+ * @return the config of the host.
+ */
+ public BasicHostConfig setIps(Set<IpAddress> ipAddresses) {
+ return (BasicHostConfig) setOrClear(IPS, ipAddresses);
+ }
}