Working on Bay-Area-Region Demo.
- added latitude / longitude parameters to regions, so the icons can be "placed" on a GEO-map
Change-Id: I5cf939f22597d4658ab603459b2b3059ba0db0c9
diff --git a/core/api/src/main/java/org/onosproject/net/region/DefaultRegion.java b/core/api/src/main/java/org/onosproject/net/region/DefaultRegion.java
index 1926a3d..d229e92 100644
--- a/core/api/src/main/java/org/onosproject/net/region/DefaultRegion.java
+++ b/core/api/src/main/java/org/onosproject/net/region/DefaultRegion.java
@@ -19,6 +19,8 @@
import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import org.onosproject.cluster.NodeId;
+import org.onosproject.net.AbstractAnnotated;
+import org.onosproject.net.Annotations;
import java.util.List;
import java.util.Objects;
@@ -27,7 +29,7 @@
/**
* Default implementation of a region.
*/
-public final class DefaultRegion implements Region {
+public final class DefaultRegion extends AbstractAnnotated implements Region {
private final RegionId id;
private final String name;
@@ -40,9 +42,12 @@
* @param id region identifier
* @param name friendly name
* @param type region type
+ * @param annots annotations
* @param masters list of sets of cluster node identifiers; in order of mastership
*/
- public DefaultRegion(RegionId id, String name, Type type, List<Set<NodeId>> masters) {
+ public DefaultRegion(RegionId id, String name, Type type,
+ Annotations annots, List<Set<NodeId>> masters) {
+ super(annots);
this.id = id;
this.name = name;
this.type = type;
diff --git a/core/api/src/main/java/org/onosproject/net/region/Region.java b/core/api/src/main/java/org/onosproject/net/region/Region.java
index afe1805..ed8fff18 100644
--- a/core/api/src/main/java/org/onosproject/net/region/Region.java
+++ b/core/api/src/main/java/org/onosproject/net/region/Region.java
@@ -17,6 +17,7 @@
package org.onosproject.net.region;
import org.onosproject.cluster.NodeId;
+import org.onosproject.net.Annotated;
import java.util.List;
import java.util.Set;
@@ -26,7 +27,7 @@
* logical region. Optionally, devices in the region can share the same
* cluster nodes mastership affinities.
*/
-public interface Region {
+public interface Region extends Annotated {
/**
* Coarse representation of the type of the region.
@@ -58,6 +59,11 @@
BUILDING,
/**
+ * Region represents a data center.
+ */
+ DATA_CENTER,
+
+ /**
* Region represents a building floor.
*/
FLOOR,
diff --git a/core/api/src/main/java/org/onosproject/net/region/RegionStore.java b/core/api/src/main/java/org/onosproject/net/region/RegionStore.java
index 49cc378..b8527c7 100644
--- a/core/api/src/main/java/org/onosproject/net/region/RegionStore.java
+++ b/core/api/src/main/java/org/onosproject/net/region/RegionStore.java
@@ -16,6 +16,7 @@
package org.onosproject.net.region;
import org.onosproject.cluster.NodeId;
+import org.onosproject.net.Annotations;
import org.onosproject.net.DeviceId;
import org.onosproject.store.Store;
@@ -67,12 +68,13 @@
* @param regionId region identifier
* @param name friendly name
* @param type region type
+ * @param annots annotations
* @param masterNodeIds list of master nodes; null implies empty list
* @return new region descriptor
* @throws IllegalArgumentException if item already exists
*/
Region createRegion(RegionId regionId, String name, Region.Type type,
- List<Set<NodeId>> masterNodeIds);
+ Annotations annots, List<Set<NodeId>> masterNodeIds);
/**
* Updates the specified new region using the supplied data.
@@ -80,12 +82,13 @@
* @param regionId region identifier
* @param name friendly name
* @param type region type
+ * @param annots annotations
* @param masterNodeIds list of master nodes; null implies empty list
* @return new region descriptor
* @throws IllegalArgumentException if item already exists
*/
Region updateRegion(RegionId regionId, String name, Region.Type type,
- List<Set<NodeId>> masterNodeIds);
+ Annotations annots, List<Set<NodeId>> masterNodeIds);
/**
* Removes the specified region using the new set of data.