Revert "Fixing Hosts filtered by RegionId... for topo-2 view."

This reverts commit 4aef6c371a5fd25171ef9ea8faf193d662c5544c.

Change-Id: Ib2959eb73686af2788525710e33f8fc8db78b819
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..a21a1f9 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
@@ -17,6 +17,7 @@
 
 import org.onosproject.cluster.NodeId;
 import org.onosproject.net.DeviceId;
+import org.onosproject.net.HostId;
 import org.onosproject.store.Store;
 
 import java.util.Collection;
@@ -110,4 +111,12 @@
      */
     void removeDevices(RegionId regionId, Collection<DeviceId> deviceIds);
 
+    /**
+     * Returns the set of hosts that belong to the specified region.
+     *
+     * @param regionId region identifier
+     * @return set of identifiers for hosts in the given region
+     */
+    Set<HostId> getRegionHosts(RegionId regionId);
+
 }
diff --git a/core/net/src/main/java/org/onosproject/net/region/impl/RegionManager.java b/core/net/src/main/java/org/onosproject/net/region/impl/RegionManager.java
index b988021..75d96ed 100644
--- a/core/net/src/main/java/org/onosproject/net/region/impl/RegionManager.java
+++ b/core/net/src/main/java/org/onosproject/net/region/impl/RegionManager.java
@@ -25,9 +25,7 @@
 import org.onosproject.cluster.NodeId;
 import org.onosproject.event.AbstractListenerManager;
 import org.onosproject.net.DeviceId;
-import org.onosproject.net.Host;
 import org.onosproject.net.HostId;
-import org.onosproject.net.host.HostService;
 import org.onosproject.net.region.Region;
 import org.onosproject.net.region.RegionAdminService;
 import org.onosproject.net.region.RegionEvent;
@@ -39,17 +37,15 @@
 import org.slf4j.Logger;
 
 import java.util.Collection;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 import static com.google.common.collect.ImmutableList.of;
+import static org.slf4j.LoggerFactory.getLogger;
 import static org.onosproject.security.AppGuard.checkPermission;
 import static org.onosproject.security.AppPermission.Type.REGION_READ;
-import static org.slf4j.LoggerFactory.getLogger;
 
 /**
  * Provides implementation of the region service APIs.
@@ -73,9 +69,6 @@
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected RegionStore store;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected HostService hostService;
-
     @Activate
     public void activate() {
         store.setDelegate(delegate);
@@ -161,14 +154,7 @@
     public Set<HostId> getRegionHosts(RegionId regionId) {
         checkPermission(REGION_READ);
         checkNotNull(regionId, REGION_ID_NULL);
-        Set<DeviceId> devs = getRegionDevices(regionId);
-        Set<HostId> hostIds = new HashSet<>();
-        for (DeviceId d : devs) {
-            Set<HostId> ids = hostService.getConnectedHosts(d).stream()
-                    .map(Host::id)
-                    .collect(Collectors.toSet());
-            hostIds.addAll(ids);
-        }
-        return hostIds;
+        return store.getRegionHosts(regionId);
     }
+
 }
diff --git a/core/net/src/test/java/org/onosproject/net/region/impl/RegionManagerTest.java b/core/net/src/test/java/org/onosproject/net/region/impl/RegionManagerTest.java
index 73fba4d..fd15104 100644
--- a/core/net/src/test/java/org/onosproject/net/region/impl/RegionManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/region/impl/RegionManagerTest.java
@@ -38,16 +38,9 @@
 import java.util.List;
 import java.util.Set;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.onosproject.net.region.Region.Type.CAMPUS;
-import static org.onosproject.net.region.Region.Type.COUNTRY;
-import static org.onosproject.net.region.Region.Type.METRO;
-import static org.onosproject.net.region.RegionEvent.Type.REGION_ADDED;
-import static org.onosproject.net.region.RegionEvent.Type.REGION_MEMBERSHIP_CHANGED;
-import static org.onosproject.net.region.RegionEvent.Type.REGION_REMOVED;
-import static org.onosproject.net.region.RegionEvent.Type.REGION_UPDATED;
+import static org.junit.Assert.*;
+import static org.onosproject.net.region.Region.Type.*;
+import static org.onosproject.net.region.RegionEvent.Type.*;
 
 /**
  * Tests of the region service implementation.
@@ -75,8 +68,6 @@
         TestUtils.setField(store, "storageService", new TestStorageService());
         store.activate();
 
-        // possibly manager.hostService = new MockHostService();
-
         manager.store = store;
         manager.addListener(listener);
         NetTestTools.injectEventDispatcher(manager, new TestEventDispatcher());
diff --git a/core/store/dist/src/main/java/org/onosproject/store/region/impl/DistributedRegionStore.java b/core/store/dist/src/main/java/org/onosproject/store/region/impl/DistributedRegionStore.java
index 7e9a1a9b..e101514 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/region/impl/DistributedRegionStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/region/impl/DistributedRegionStore.java
@@ -27,6 +27,7 @@
 import org.onlab.util.Identifier;
 import org.onosproject.cluster.NodeId;
 import org.onosproject.net.DeviceId;
+import org.onosproject.net.HostId;
 import org.onosproject.net.region.DefaultRegion;
 import org.onosproject.net.region.Region;
 import org.onosproject.net.region.RegionEvent;
@@ -78,6 +79,7 @@
 
     private ConsistentMap<RegionId, Set<DeviceId>> membershipRepo;
     private Map<RegionId, Set<DeviceId>> regionDevices;
+    private Map<RegionId, Set<HostId>> regionHosts;
 
     private Map<DeviceId, Region> regionsByDevice = new HashMap<>();
 
@@ -90,7 +92,7 @@
     protected void activate() {
         Serializer serializer =
                 Serializer.using(Arrays.asList(KryoNamespaces.API),
-                        Identifier.class);
+                                 Identifier.class);
 
         regionsRepo = storageService.<RegionId, Region>consistentMapBuilder()
                 .withSerializer(serializer)
@@ -140,6 +142,12 @@
     }
 
     @Override
+    public Set<HostId> getRegionHosts(RegionId regionId) {
+        Set<HostId> hostIds = regionHosts.get(regionId);
+        return hostIds != null ? ImmutableSet.copyOf(hostIds) : ImmutableSet.of();
+    }
+
+    @Override
     public Region createRegion(RegionId regionId, String name, Region.Type type,
                                List<Set<NodeId>> masterNodeIds) {
         return regionsRepo.compute(regionId, (id, region) -> {
@@ -165,9 +173,8 @@
 
     @Override
     public void addDevices(RegionId regionId, Collection<DeviceId> deviceIds) {
-        // Devices can only be a member in one region.
-        // Remove the device if it belongs to a different region than
-        // the region for which we are attempting to add it.
+        // Devices can only be a member in one region.  Remove the device if it belongs to
+        // a different region than the region for which we are attempting to add it.
         for (DeviceId deviceId : deviceIds) {
             Region region = getRegionForDevice(deviceId);
             if ((region != null) && (!regionId.id().equals(region.id().id()))) {
@@ -201,7 +208,7 @@
             } else {
                 return ImmutableSet.<DeviceId>builder()
                         .addAll(Sets.difference(existingDevices,
-                                ImmutableSet.copyOf(deviceIds)))
+                                                ImmutableSet.copyOf(deviceIds)))
                         .build();
             }
         });
@@ -212,8 +219,7 @@
     /**
      * Listener class to map listener events to the region inventory events.
      */
-    private class InternalRegionListener
-            implements MapEventListener<RegionId, Region> {
+    private class InternalRegionListener implements MapEventListener<RegionId, Region> {
         @Override
         public void event(MapEvent<RegionId, Region> event) {
             Region region = null;
@@ -241,14 +247,13 @@
     /**
      * Listener class to map listener events to the region membership events.
      */
-    private class InternalMembershipListener
-            implements MapEventListener<RegionId, Set<DeviceId>> {
+    private class InternalMembershipListener implements MapEventListener<RegionId, Set<DeviceId>> {
         @Override
         public void event(MapEvent<RegionId, Set<DeviceId>> event) {
             if (event.type() != MapEvent.Type.REMOVE) {
                 notifyDelegate(new RegionEvent(REGION_MEMBERSHIP_CHANGED,
-                        regionsById.get(event.key()),
-                        event.newValue().value()));
+                                               regionsById.get(event.key()),
+                                               event.newValue().value()));
             }
         }
     }