K8s doesn't necessarily support DNS
[aaf/authz.git] / cadi / client / src / main / java / org / onap / aaf / cadi / locator / DNSLocator.java
index 66ef4b1..8053dab 100644 (file)
@@ -27,11 +27,10 @@ import java.net.URI;
 import java.net.URISyntaxException;
 
 import org.onap.aaf.cadi.Access;
-import org.onap.aaf.cadi.Locator;
-import org.onap.aaf.cadi.LocatorException;
 import org.onap.aaf.cadi.Access.Level;
+import org.onap.aaf.cadi.LocatorException;
 
-public class DNSLocator implements Locator<URI> {
+public class DNSLocator implements SizedLocator<URI> {
     private static enum Status {UNTRIED, OK, INVALID, SLOW};
     private static final int CHECK_TIME = 3000;
     
@@ -40,6 +39,8 @@ public class DNSLocator implements Locator<URI> {
     private Host[] hosts;
     private int startPort, endPort;
     private String suffix;
+
+    private int size = 1; // initial, until refreshed.
     
     public DNSLocator(Access access, String protocol, String host, String range) {
         this.host = host;
@@ -61,11 +62,11 @@ public class DNSLocator implements Locator<URI> {
             throw new LocatorException("Null passed into DNSLocator constructor");
         }
         int start, defPort;
-        if (aaf_locate.startsWith("https:")) {
+        if (aaf_locate.startsWith("https://")) {
             protocol = "https";
             start = 8; // https://
             defPort = 443;
-        } else if (aaf_locate.startsWith("http:")) {
+        } else if (aaf_locate.startsWith("http://")) {
             protocol = "http";
             start = 7; // http://
             defPort = 80;
@@ -77,10 +78,10 @@ public class DNSLocator implements Locator<URI> {
     }
 
     public static DNSLocator create(Access access, String url) throws LocatorException {
-               return new DNSLocator(access, url);
-       }
+        return new DNSLocator(access, url);
+    }
 
-       @Override
+    @Override
     public URI get(Item item) throws LocatorException {
         return hosts[((DLItem)item).cnt].uri;
     }
@@ -156,6 +157,7 @@ public class DNSLocator implements Locator<URI> {
                 }
             }
             hosts = temp;
+            size = temp.length * (endPort-startPort+1);
             return true;
         } catch (Exception e) {
             access.log(Level.ERROR, e);
@@ -167,7 +169,7 @@ public class DNSLocator implements Locator<URI> {
         int slash, start;
         int colon = aaf_locate.indexOf(':',_start);
         if (colon > 0) {
-               host = aaf_locate.substring(_start,colon);
+            host = aaf_locate.substring(_start,colon);
             start = colon + 1;
             int left = aaf_locate.indexOf('[', start);
             if (left > 0) {
@@ -189,7 +191,7 @@ public class DNSLocator implements Locator<URI> {
                 }
                 slash = aaf_locate.indexOf('/', start);
                 if(slash>=0) {
-                       suffix = aaf_locate.substring(slash);
+                    suffix = aaf_locate.substring(slash);
                 }
                 
             } else {
@@ -205,8 +207,8 @@ public class DNSLocator implements Locator<URI> {
                 }
             }
         } else {
-               slash = aaf_locate.indexOf('/', _start);
-               host = slash<_start?aaf_locate.substring(_start):aaf_locate.substring(_start,slash);
+            slash = aaf_locate.indexOf('/', _start);
+            host = slash<_start?aaf_locate.substring(_start):aaf_locate.substring(_start,slash);
             startPort = endPort = defaultPort;
         }
         
@@ -225,7 +227,7 @@ public class DNSLocator implements Locator<URI> {
         }
         
         public String toString() {
-               return uri.toString() + " - " + status.name();
+            return uri.toString() + " - " + status.name();
         }
     }
     
@@ -238,4 +240,8 @@ public class DNSLocator implements Locator<URI> {
     }
     
     public void destroy() {}
+
+    public int size() {
+        return size;
+    }
 }