Provide northbound for controller properties
[controller.git] / opendaylight / switchmanager / api / src / main / java / org / opendaylight / controller / switchmanager / ISwitchManager.java
index 1af67719e19316407fb70f04066a2ffdc59ce4f3..8815e5e8c08a1b2f52ddabdcf9c6a28363b79419 100644 (file)
@@ -335,6 +335,14 @@ public interface ISwitchManager {
      */
     public Boolean isNodeConnectorEnabled(NodeConnector nodeConnector);
 
+    /**
+     * Test whether the given node connector exists.
+     *
+     * @param nc  {@link org.opendaylight.controller.sal.core.NodeConnector}
+     * @return    True if exists, false otherwise.
+     */
+    public boolean doesNodeConnectorExist(NodeConnector nc);
+
     /**
      * Return controller MAC address
          *
@@ -351,29 +359,19 @@ public interface ISwitchManager {
     public byte[] getNodeMAC(Node node);
 
     /**
-     * Return true if the host Refresh procedure (by sending ARP request probes
-     * to known hosts) is enabled. By default, the procedure is enabled. This can
-     * be overwritten by OSFI CLI "hostRefresh off".
-     *
-     * @return true if it is enabled; false if it's disabled.
-     */
-    public boolean isHostRefreshEnabled();
-
-    /**
-     * Return host refresh retry count
+     * Create a Name/Tier/Bandwidth Property object based on given property name
+     * and value. Other property types are not supported yet.
      *
-     * @return host refresh retry count
+     * @param propName
+     *            Name of the Property specified by
+     *            {@link org.opendaylight.controller.sal.core.Property} and its
+     *            extended classes
+     * @param propValue
+     *            Value of the Property specified by
+     *            {@link org.opendaylight.controller.sal.core.Property} and its
+     *            extended classes
+     * @return {@link org.opendaylight.controller.sal.core.Property}
      */
-    public int getHostRetryCount();
-
-        /**
-         * Create a Name/Tier/Bandwidth Property object based on given property
-         * name and value. Other property types are not supported yet.
-         *
-     * @param propName Name of the Property specified by {@link org.opendaylight.controller.sal.core.Property} and its extended classes
-     * @param propValue Value of the Property specified by {@link org.opendaylight.controller.sal.core.Property} and its extended classes
-         * @return {@link org.opendaylight.controller.sal.core.Property}
-         */
     public Property createProperty(String propName, String propValue);
 
     /**
@@ -387,4 +385,44 @@ public interface ISwitchManager {
      */
     @Deprecated
     public String getNodeDescription(Node node);
+
+    /**
+     * Return all the properties of the controller
+     *
+     * @return map of {@link org.opendaylight.controller.sal.core.Property} such
+     *         as {@link org.opendaylight.controller.sal.core.Description}
+     *         and/or {@link org.opendaylight.controller.sal.core.Tier} etc.
+     */
+    public Map<String, Property> getControllerProperties();
+
+    /**
+     * Return a specific property of the controller given the property name
+     *
+     * @param propName
+     *            the property name specified by
+     *            {@link org.opendaylight.controller.sal.core.Property} and its
+     *            extended classes
+     * @return {@link org.opendaylight.controller.sal.core.Property}
+     */
+    public Property getControllerProperty(String propertyName);
+
+    /**
+     * Set a specific property of the controller
+     *
+     * @param property
+     *            {@link org.opendaylight.controller.sal.core.Property}
+     * @return
+     */
+    public Status setControllerProperty(Property property);
+
+    /**
+     * Remove a property of a node
+     *
+     * @param propertyName
+     *            the property name specified by
+     *            {@link org.opendaylight.controller.sal.core.Property} and its
+     *            extended classes
+     * @return success or failed reason
+     */
+    public Status removeControllerProperty(String propertyName);
 }