X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cass%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fdirect%2FDirectAAFLocator.java;h=cc9ee66cea3dcd709eaafffc7f543ceed18d1be9;hb=2b46f76d9a688acf326424659ec9672a2614fdcf;hp=586ae4dfc54beec332b7e74b78e56fac961ecd03;hpb=6261a19e61138e861f5c7eaf37835205f19f1fe0;p=aaf%2Fauthz.git diff --git a/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java b/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java index 586ae4df..cc9ee66c 100644 --- a/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java +++ b/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java @@ -23,6 +23,7 @@ package org.onap.aaf.auth.direct; import java.net.URI; import java.net.URISyntaxException; +import java.net.UnknownHostException; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -34,99 +35,105 @@ import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.layer.Result; import org.onap.aaf.cadi.LocatorException; import org.onap.aaf.cadi.Access.Level; +import org.onap.aaf.cadi.CadiException; import org.onap.aaf.cadi.aaf.v2_0.AbsAAFLocator; import org.onap.aaf.cadi.config.Config; +import org.onap.aaf.cadi.config.RegistrationPropHolder; import org.onap.aaf.misc.env.util.Split; import locate.v1_0.Endpoint; public class DirectAAFLocator extends AbsAAFLocator { - private LocateDAO ldao; - private int major=-1, minor=-1, patch=-1, pkg=-1; - private AuthzEnv env; - private final URI uri; + private LocateDAO ldao; + private int major=-1, minor=-1, patch=-1, pkg=-1; + private AuthzEnv env; + private final URI uri; - /** - * - * @param env - * @param ldao - * @param key must be one or more of service, version, other in that order - * @throws LocatorException - */ - public DirectAAFLocator(AuthzEnv env, LocateDAO ldao, String name, String version) throws LocatorException { - super(env.access(), name, 1000L /* Don't hit DB more than once a second */); - this.env = env; - this.ldao = ldao; - if(version!=null) { - try { - String[] v = Split.split('.',version); - if(v.length>0) {major = Integer.parseInt(v[0]);} - if(v.length>1) {minor = Integer.parseInt(v[1]);} - if(v.length>2) {patch = Integer.parseInt(v[2]);} - if(v.length>3) {pkg = Integer.parseInt(v[3]);} - } catch (NumberFormatException e) { - throw new LocatorException("Invalid Version String: " + version); - } - } - - try { - uri = new URI(access.getProperty(Config.AAF_LOCATE_URL, "localhost")+"/locate/"+name+':'+version); - } catch (URISyntaxException e) { - throw new LocatorException(e); - } - myhostname=null; - myport = 0; - } - - - @Override - public boolean refresh() { - AuthzTrans trans = env.newTransNoAvg(); - Result> rl = ldao.readByName(trans, name); - if(rl.isOK()) { - LinkedList epl = new LinkedList<>(); - for(Data d : rl.value) { -// if(myhostname!=null && d.port==myport && d.hostname.equals(myhostname)) { -// continue; -// } - if((major<0 || major==d.major) && - (minor<0 || minor<=d.minor) && - (patch<0 || patch==d.patch) && - (pkg<0 || pkg ==d.pkg)) { - Endpoint endpoint = new Endpoint(); - endpoint.setName(d.name); - endpoint.setHostname(d.hostname); - endpoint.setPort(d.port); - endpoint.setMajor(d.major); - endpoint.setMinor(d.minor); - endpoint.setPatch(d.patch); - endpoint.setPkg(d.pkg); - endpoint.setLatitude(d.latitude); - endpoint.setLongitude(d.longitude); - endpoint.setProtocol(d.protocol); - for(String s : d.subprotocol(false)) { - endpoint.getSubprotocol().add(s); - } - - try { - epl.add(new EP(endpoint,latitude,longitude)); - } catch (URISyntaxException e) { - e.printStackTrace(); - } - } - } - Collections.sort(epl); - replace(epl); - return true; - } else { - access.log(Level.ERROR, rl.errorString()); - } - return false; - } + /** + * + * @param env + * @param ldao + * @param key must be one or more of service, version, other in that order + * @throws LocatorException + */ + public DirectAAFLocator(AuthzEnv env, LocateDAO ldao, String name, String version) throws LocatorException { + super(env.access(), name, 1000L /* Don't hit DB more than once a second */); + this.env = env; + this.ldao = ldao; + if (version!=null) { + try { + String[] v = Split.split('.',version); + if (v.length>0) {major = Integer.parseInt(v[0]);} + if (v.length>1) {minor = Integer.parseInt(v[1]);} + if (v.length>2) {patch = Integer.parseInt(v[2]);} + if (v.length>3) {pkg = Integer.parseInt(v[3]);} + } catch (NumberFormatException e) { + throw new LocatorException("Invalid Version String: " + version); + } + } + + try { + RegistrationPropHolder rph = new RegistrationPropHolder(access,0); + String aaf_url = rph.replacements("https://"+Config.AAF_LOCATE_URL_TAG+"/%CNS."+name, null,null); + //access.getProperty("/locate/"+name+':'+version; + access.printf(Level.INIT,"Creating DirectAAFLocator to %s",aaf_url); + uri = new URI(aaf_url); + } catch (URISyntaxException | UnknownHostException | CadiException e) { + throw new LocatorException(e); + } + myhostname=null; + myport = 0; + } + + + @Override + public boolean refresh() { + AuthzTrans trans = env.newTransNoAvg(); + Result> rl = ldao.readByName(trans, name); + if (rl.isOK()) { + LinkedList epl = new LinkedList<>(); + for (Data d : rl.value) { +// if (myhostname!=null && d.port==myport && d.hostname.equals(myhostname)) { +// continue; +// } + if ((major<0 || major==d.major) && + (minor<0 || minor<=d.minor) && + (patch<0 || patch==d.patch) && + (pkg<0 || pkg ==d.pkg)) { + Endpoint endpoint = new Endpoint(); + endpoint.setName(d.name); + endpoint.setHostname(d.hostname); + endpoint.setPort(d.port); + endpoint.setMajor(d.major); + endpoint.setMinor(d.minor); + endpoint.setPatch(d.patch); + endpoint.setPkg(d.pkg); + endpoint.setLatitude(d.latitude); + endpoint.setLongitude(d.longitude); + endpoint.setProtocol(d.protocol); + for (String s : d.subprotocol(false)) { + endpoint.getSubprotocol().add(s); + } + + try { + epl.add(new EP(endpoint,latitude,longitude)); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + } + } + Collections.sort(epl); + replace(epl); + return true; + } else { + access.log(Level.ERROR, rl.errorString()); + } + return false; + } - @Override - protected URI getURI() { - return uri; - } + @Override + protected URI getURI() { + return uri; + } }