OpenstackRouting refactoring
- Replace OpenstackPortInfo with HostService
- Replace OpenstackRoutingConfig with OpenstackNodeService
(Remove OpenstackRoutingConfig)
- Rebased with 10330 (existing_vm)
- Added initialization process using OpenstackNodeListener
Change-Id: If2ce8eb86d242a7180c9154e1a0f1668b266bf1c
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/AbstractVmHandler.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/AbstractVmHandler.java
index 9bf2baa..d7b7a8a 100644
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/AbstractVmHandler.java
+++ b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/AbstractVmHandler.java
@@ -26,6 +26,7 @@
import org.onosproject.net.host.HostEvent;
import org.onosproject.net.host.HostListener;
import org.onosproject.net.host.HostService;
+import org.onosproject.openstacknetworking.Constants;
import org.slf4j.Logger;
import java.util.Objects;
@@ -36,7 +37,7 @@
import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor;
import static org.onlab.util.Tools.groupedThreads;
-import static org.onosproject.openstacknetworking.switching.Constants.*;
+import static org.onosproject.openstacknetworking.Constants.*;
import static org.slf4j.LoggerFactory.getLogger;
/**
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/Constants.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/Constants.java
deleted file mode 100644
index b173f29..0000000
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/Constants.java
+++ /dev/null
@@ -1,54 +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.onosproject.openstacknetworking.switching;
-
-import org.onlab.packet.Ip4Address;
-import org.onlab.packet.Ip4Prefix;
-import org.onlab.packet.IpPrefix;
-
-/**
- * Provides constants used in OpenStack node services.
- */
-public final class Constants {
-
- private Constants() {
- }
-
- public static final String APP_ID = "org.onosproject.openstackswitching";
-
- public static final String PORTNAME_PREFIX_VM = "tap";
- public static final String PORTNAME_PREFIX_ROUTER = "qr-";
- public static final String PORTNAME_PREFIX_TUNNEL = "vxlan";
-
- // TODO remove this
- public static final String ROUTER_INTERFACE = "network:router_interface";
- public static final String DEVICE_OWNER_GATEWAY = "network:router_gateway";
-
- public static final Ip4Address DNS_SERVER_IP = Ip4Address.valueOf("8.8.8.8");
- public static final IpPrefix IP_PREFIX_ANY = Ip4Prefix.valueOf("0.0.0.0/0");
- public static final int DHCP_INFINITE_LEASE = -1;
-
- public static final String NETWORK_ID = "networkId";
- public static final String PORT_ID = "portId";
- public static final String VXLAN_ID = "vxlanId";
- public static final String TENANT_ID = "tenantId";
- public static final String GATEWAY_IP = "gatewayIp";
- public static final String CREATE_TIME = "createTime";
-
- public static final int SWITCHING_RULE_PRIORITY = 30000;
- public static final int TUNNELTAG_RULE_PRIORITY = 30000;
- public static final int ACL_RULE_PRIORITY = 30000;
-}
\ No newline at end of file
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java
index c855403..c31bfd9 100644
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java
+++ b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackArpHandler.java
@@ -48,7 +48,7 @@
import java.util.Set;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.openstacknetworking.switching.Constants.*;
+import static org.onosproject.openstacknetworking.Constants.*;
/**
* Handles ARP packet from VMs.
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSecurityGroupRulePopulator.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSecurityGroupRulePopulator.java
index 7477404..b963988 100644
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSecurityGroupRulePopulator.java
+++ b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSecurityGroupRulePopulator.java
@@ -50,7 +50,7 @@
import java.util.Set;
import java.util.stream.Collectors;
-import static org.onosproject.openstacknetworking.switching.Constants.*;
+import static org.onosproject.openstacknetworking.Constants.*;
/**
* Populates flows rules for Security Groups of VMs.
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java
index 5388e9b..55fce2c 100644
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java
+++ b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java
@@ -16,7 +16,6 @@
package org.onosproject.openstacknetworking.switching;
import com.google.common.base.Strings;
-import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
@@ -27,7 +26,6 @@
import org.onlab.packet.Ip4Address;
import org.onlab.packet.IpPrefix;
import org.onlab.packet.VlanId;
-import org.onlab.util.Tools;
import org.onosproject.core.CoreService;
import org.onosproject.dhcp.DhcpService;
import org.onosproject.dhcp.IpAssignment;
@@ -54,8 +52,6 @@
import org.onosproject.openstackinterface.OpenstackNetwork;
import org.onosproject.openstackinterface.OpenstackPort;
import org.onosproject.openstackinterface.OpenstackSubnet;
-import org.onosproject.openstacknetworking.OpenstackPortInfo;
-import org.onosproject.openstacknetworking.OpenstackSwitchingService;
import org.onosproject.openstacknode.OpenstackNode;
import org.onosproject.openstacknode.OpenstackNodeEvent;
import org.onosproject.openstacknode.OpenstackNodeListener;
@@ -64,7 +60,6 @@
import org.slf4j.LoggerFactory;
import java.util.Date;
-import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -74,7 +69,7 @@
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.onosproject.net.AnnotationKeys.PORT_NAME;
-import static org.onosproject.openstacknetworking.switching.Constants.*;
+import static org.onosproject.openstacknetworking.Constants.*;
@Service
@Component(immediate = true)
@@ -82,7 +77,7 @@
* Populates forwarding rules for VMs created by Openstack.
*/
public final class OpenstackSwitchingManager extends AbstractProvider
- implements OpenstackSwitchingService, HostProvider {
+ implements HostProvider {
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -153,41 +148,6 @@
// no probe is required
}
- @Override
- // TODO remove this and openstackPortInfo
- public Map<String, OpenstackPortInfo> openstackPortInfo() {
- Map<String, OpenstackPortInfo> portInfoMap = Maps.newHashMap();
-
- Tools.stream(hostService.getHosts()).filter(this::isValidHost).forEach(host -> {
- Port port = deviceService.getPort(
- host.location().deviceId(),
- host.location().port());
-
- OpenstackPortInfo portInfo = OpenstackPortInfo.builder()
- .setDeviceId(host.location().deviceId())
- .setHostMac(host.mac())
- .setNetworkId(host.annotations().value(NETWORK_ID))
- .setGatewayIP(Ip4Address.valueOf(host.annotations().value(GATEWAY_IP)))
- .setVni(Long.valueOf(host.annotations().value(VXLAN_ID)))
- .setHostIp(host.ipAddresses().stream().findFirst().get().getIp4Address())
- .build();
-
- portInfoMap.put(port.annotations().value(PORT_NAME), portInfo);
- });
-
- return portInfoMap;
- }
-
- // TODO remove this and openstackPortInfo
- private boolean isValidHost(Host host) {
- return !host.ipAddresses().isEmpty() &&
- host.annotations().value(VXLAN_ID) != null &&
- host.annotations().value(NETWORK_ID) != null &&
- host.annotations().value(TENANT_ID) != null &&
- host.annotations().value(GATEWAY_IP) != null &&
- host.annotations().value(PORT_ID) != null;
- }
-
private void processPortAdded(Port port) {
// TODO check the node state is COMPLETE
OpenstackPort osPort = openstackService.port(port);
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java
index 732be7d..b3707a8 100644
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java
+++ b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingRulePopulator.java
@@ -47,7 +47,7 @@
import java.util.Optional;
import static org.onosproject.net.flow.instructions.ExtensionTreatmentType.ExtensionTreatmentTypes.NICIRA_SET_TUNNEL_DST;
-import static org.onosproject.openstacknetworking.switching.Constants.*;
+import static org.onosproject.openstacknetworking.Constants.*;
/**
* Populates switching flow rules.