ONOS-3810 augmenting Rest southbound protocol and provider for https and password based auth
Change-Id: I3e5f07ba6a751bc8a7637373c037a1910181f9ab
diff --git a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
index baf26cb..aa1b959 100644
--- a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
+++ b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
@@ -16,7 +16,9 @@
package org.onosproject.protocol.rest;
+import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
+import org.apache.commons.lang3.StringUtils;
import org.onlab.packet.IpAddress;
import org.onosproject.net.DeviceId;
@@ -34,18 +36,20 @@
private final String password;
private boolean isActive;
private String protocol;
+ private String url;
public DefaultRestSBDevice(IpAddress ip, int port, String name, String password,
- String protocol, boolean isActive) {
+ String protocol, String url, boolean isActive) {
Preconditions.checkNotNull(ip, "IP address cannot be null");
Preconditions.checkArgument(port > 0, "Port address cannot be negative");
Preconditions.checkNotNull(protocol, "protocol address cannot be null");
this.ip = ip;
this.port = port;
this.name = name;
- this.password = password;
+ this.password = StringUtils.isEmpty(password) ? null : password;
this.isActive = isActive;
this.protocol = protocol;
+ this.url = StringUtils.isEmpty(url) ? null : url;
}
@Override
@@ -89,6 +93,22 @@
}
@Override
+ public String url() {
+ return url;
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("url", url)
+ .add("protocol", protocol)
+ .add("name", name)
+ .add("port", port)
+ .add("ip", ip)
+ .toString();
+ }
+
+ @Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
diff --git a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/RestSBDevice.java b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/RestSBDevice.java
index 6b76989..abef64e 100644
--- a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/RestSBDevice.java
+++ b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/RestSBDevice.java
@@ -79,4 +79,10 @@
*/
String protocol();
+ /**
+ * Returns the url for the REST requests, to be used instead of IP and PORT.
+ *
+ * @return url
+ */
+ String url();
}