--- /dev/null
+/*\r
+ * Copyright IBM Corporation, 2013. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.controller.networkconfig.neutron;\r
+\r
+import java.util.List;\r
+\r
+/**\r
+ * This interface defines the methods for CRUD of NB Port objects\r
+ *\r
+ */\r
+\r
+public interface INeutronPortCRUD {\r
+ /**\r
+ * Applications call this interface method to determine if a particular\r
+ * Port object exists\r
+ *\r
+ * @param uuid\r
+ * UUID of the Port object\r
+ * @return boolean\r
+ */\r
+\r
+ public boolean portExists(String uuid);\r
+\r
+ /**\r
+ * Applications call this interface method to return if a particular\r
+ * Port object exists\r
+ *\r
+ * @param uuid\r
+ * UUID of the Port object\r
+ * @return {@link org.opendaylight.controller.networkconfig.neutron.NeutronPort.OpenStackPorts}\r
+ * OpenStack Port class\r
+ */\r
+\r
+ public NeutronPort getPort(String uuid);\r
+\r
+ /**\r
+ * Applications call this interface method to return all Port objects\r
+ *\r
+ * @return List of OpenStackPorts objects\r
+ */\r
+\r
+ public List<NeutronPort> getAllPorts();\r
+\r
+ /**\r
+ * Applications call this interface method to add a Port object to the\r
+ * concurrent map\r
+ *\r
+ * @param input\r
+ * OpenStackPort object\r
+ * @return boolean on whether the object was added or not\r
+ */\r
+\r
+ public boolean addPort(NeutronPort input);\r
+\r
+ /**\r
+ * Applications call this interface method to remove a Port object to the\r
+ * concurrent map\r
+ *\r
+ * @param uuid\r
+ * identifier for the Port object\r
+ * @return boolean on whether the object was removed or not\r
+ */\r
+\r
+ public boolean removePort(String uuid);\r
+\r
+ /**\r
+ * Applications call this interface method to edit a Port object\r
+ *\r
+ * @param uuid\r
+ * identifier of the Port object\r
+ * @param delta\r
+ * OpenStackPort object containing changes to apply\r
+ * @return boolean on whether the object was updated or not\r
+ */\r
+\r
+ public boolean updatePort(String uuid, NeutronPort delta);\r
+\r
+ /**\r
+ * Applications call this interface method to see if a MAC address is in use\r
+ *\r
+ * @param macAddress\r
+ * mac Address to be tested\r
+ * @return boolean on whether the macAddress is already associated with a\r
+ * port or not\r
+ */\r
+\r
+ public boolean macInUse(String macAddress);\r
+\r
+ /**\r
+ * Applications call this interface method to retrieve the port associated with\r
+ * the gateway address of a subnet\r
+ *\r
+ * @param subnetUUID\r
+ * identifier of the subnet\r
+ * @return OpenStackPorts object if the port exists and null if it does not\r
+ */\r
+\r
+ public NeutronPort getGatewayPort(String subnetUUID);\r
+}\r