X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Faaf%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Fregister%2FRemoteRegistrant.java;h=49af80fd6195cc8081c458b9ce851a3c76d24d7a;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=ae7ded3ae9b5c124e07629d663f1600ad368f3db;hpb=4b5a7d721d994a49057e9bfb403c7bff1b376660;p=aaf%2Fauthz.git diff --git a/cadi/aaf/src/main/java/org/onap/aaf/cadi/register/RemoteRegistrant.java b/cadi/aaf/src/main/java/org/onap/aaf/cadi/register/RemoteRegistrant.java index ae7ded3a..49af80fd 100644 --- a/cadi/aaf/src/main/java/org/onap/aaf/cadi/register/RemoteRegistrant.java +++ b/cadi/aaf/src/main/java/org/onap/aaf/cadi/register/RemoteRegistrant.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,7 +22,6 @@ package org.onap.aaf.cadi.register; import java.net.HttpURLConnection; -import java.net.Inet4Address; import java.net.URI; import java.net.URISyntaxException; import java.net.UnknownHostException; @@ -37,18 +36,16 @@ import org.onap.aaf.cadi.client.Future; import org.onap.aaf.cadi.client.Rcli; import org.onap.aaf.cadi.client.Result; import org.onap.aaf.cadi.config.Config; +import org.onap.aaf.cadi.config.RegistrationPropHolder; import org.onap.aaf.cadi.locator.PropertyLocator; import org.onap.aaf.cadi.locator.SingleEndpointLocator; -import org.onap.aaf.cadi.util.Split; import org.onap.aaf.misc.env.APIException; import org.onap.aaf.misc.env.impl.BasicEnv; import org.onap.aaf.misc.rosetta.env.RosettaDF; -import locate.v1_0.MgmtEndpoint; import locate.v1_0.MgmtEndpoints; public class RemoteRegistrant implements Registrant { - private final MgmtEndpoint mep; private final MgmtEndpoints meps; private final AAFCon aafcon; private final RosettaDF mgmtEndpointsDF; @@ -56,8 +53,7 @@ public class RemoteRegistrant implements Registrant { private final Access access; private final int timeout; - @SafeVarargs - public RemoteRegistrant(AAFCon aafcon, String name, String version, int port, RemoteRegistrant ... others) throws CadiException, LocatorException { + public RemoteRegistrant(AAFCon aafcon, int port) throws CadiException, LocatorException { this.aafcon = aafcon; access = aafcon.access; try { @@ -67,81 +63,36 @@ public class RemoteRegistrant implements Registrant { } timeout = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF)); String aaf_locate = access.getProperty(Config.AAF_LOCATE_URL,null); - if(aaf_locate==null) { + if (aaf_locate==null) { throw new CadiException(Config.AAF_LOCATE_URL + " is required."); } else { // Note: want Property Locator or Single, not AAFLocator, because we want the core service, not what it can find try { - if(aaf_locate.indexOf(',')>=0) { + RegistrationPropHolder rph = new RegistrationPropHolder(access, 0); + aaf_locate = rph.replacements(getClass().getSimpleName(),aaf_locate, null,null); + if (aaf_locate.indexOf(',')>=0) { locator = new PropertyLocator(aaf_locate); } else { locator = new SingleEndpointLocator(aaf_locate); } - } catch (URISyntaxException e) { + } catch (UnknownHostException e) { throw new CadiException(e); } } - - mep = new MgmtEndpoint(); - mep.setName(name); - mep.setPort(port); - try { - String hostnameToRegister = access.getProperty(Config.AAF_REGISTER_AS, null); - if(hostnameToRegister==null) { - hostnameToRegister = access.getProperty(Config.HOSTNAME, null); - } - if(hostnameToRegister==null) { - hostnameToRegister = Inet4Address.getLocalHost().getHostName(); - } - mep.setHostname(hostnameToRegister); - - String latitude = access.getProperty(Config.CADI_LATITUDE, null); - if(latitude==null) { - latitude = access.getProperty("AFT_LATITUDE", null); - } - String longitude = access.getProperty(Config.CADI_LONGITUDE, null); - if(longitude==null) { - longitude = access.getProperty("AFT_LONGITUDE", null); - } - if(latitude==null || longitude==null) { - throw new CadiException(Config.CADI_LATITUDE + " and " + Config.CADI_LONGITUDE + " is required"); - } else { - mep.setLatitude(Float.parseFloat(latitude)); - mep.setLongitude(Float.parseFloat(longitude)); - } - String split[] = Split.split('.', version); - mep.setPkg(split.length>3?Integer.parseInt(split[3]):0); - mep.setPatch(split.length>2?Integer.parseInt(split[2]):0); - mep.setMinor(split.length>1?Integer.parseInt(split[1]):0); - mep.setMajor(split.length>0?Integer.parseInt(split[0]):0); - - String subprotocols = access.getProperty(Config.CADI_PROTOCOLS, null); - if(subprotocols==null) { - mep.setProtocol("http"); - } else { - mep.setProtocol("https"); - for(String s : Split.split(',', subprotocols)) { - mep.getSubprotocol().add(s); - } - } - } catch (NumberFormatException | UnknownHostException e) { - throw new CadiException("Error extracting Data from Properties for Registrar",e); - } - meps = new MgmtEndpoints(); - meps.getMgmtEndpoint().add(mep); - for(RemoteRegistrant rr : others) { - meps.getMgmtEndpoint().add(rr.mep); - } + RegistrationCreator rcreator = new RegistrationCreator(access); + meps = rcreator.create(port); } - + + + @Override public Result update(ENV env) { try { Rcli client = aafcon.client(locator); try { Future fup = client.update("/registration",mgmtEndpointsDF,meps); - if(fup.get(timeout)) { + if (fup.get(timeout)) { access.log(Level.INFO, "Registration complete to",client.getURI()); return Result.ok(fup.code(),null); } else { @@ -152,7 +103,7 @@ public class RemoteRegistrant implements Registrant { access.log(e, "Error registering service to AAF Locator"); return Result.err(503,e.getMessage()); } - + } catch (CadiException e) { return Result.err(503,e.getMessage()); } @@ -164,7 +115,7 @@ public class RemoteRegistrant implements Registrant { Rcli client = aafcon.client(locator); try { Future fup = client.delete("/registration",mgmtEndpointsDF,meps); - if(fup.get(timeout)) { + if (fup.get(timeout)) { access.log(Level.INFO, "Deregistration complete on",client.getURI()); return Result.ok(fup.code(),null); } else { @@ -174,7 +125,7 @@ public class RemoteRegistrant implements Registrant { access.log(e, "Error deregistering service on AAF Locator"); return Result.err(503,e.getMessage()); } - + } catch (CadiException e) { return Result.err(503,e.getMessage()); }