Simplified the port handling logic for VM live migration case
Change-Id: Ib28978bb2ee62c4719261c38eebb72a006f81f19
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
index 609b580..c384a44 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtil.java
@@ -24,6 +24,7 @@
import org.onosproject.openstacknetworking.api.InstancePort;
import org.onosproject.openstacknetworking.api.OpenstackNetworkService;
import org.onosproject.openstacknetworking.api.OpenstackRouterAdminService;
+import org.onosproject.openstacknetworking.impl.DefaultInstancePort;
import org.onosproject.openstacknode.api.OpenstackAuth;
import org.onosproject.openstacknode.api.OpenstackAuth.Perspective;
import org.onosproject.openstacknode.api.OpenstackNode;
@@ -383,6 +384,25 @@
}
/**
+ * Swaps current location with old location info.
+ * The revised instance port will be used to mod the flow rules after migration.
+ *
+ * @param instPort instance port
+ * @return location swapped instance port
+ */
+ public static InstancePort swapStaleLocation(InstancePort instPort) {
+ return DefaultInstancePort.builder()
+ .deviceId(instPort.oldDeviceId())
+ .portNumber(instPort.oldPortNumber())
+ .state(instPort.state())
+ .ipAddress(instPort.ipAddress())
+ .macAddress(instPort.macAddress())
+ .networkId(instPort.networkId())
+ .portId(instPort.portId())
+ .build();
+ }
+
+ /**
* Builds up and a complete endpoint URL from gateway node.
*
* @param node gateway node