X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cass%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fdao%2Fcass%2FCacheInfoDAO.java;h=0ad15277f22020dcd78dca0837e440dc8b48e49d;hb=4a5f63f7f149ecba9556ee67a4ca00fb51845bf0;hp=4aa94866ae29b17a197598372c94cff6db33b492;hpb=7e966914050e66219689001ff4ab601a49eef0ac;p=aaf%2Fauthz.git diff --git a/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CacheInfoDAO.java b/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CacheInfoDAO.java index 4aa94866..0ad15277 100644 --- a/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CacheInfoDAO.java +++ b/auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CacheInfoDAO.java @@ -47,6 +47,7 @@ import org.onap.aaf.cadi.SecuritySetter; import org.onap.aaf.cadi.client.Future; import org.onap.aaf.cadi.client.Rcli; import org.onap.aaf.cadi.client.Retryable; +import org.onap.aaf.cadi.config.Config; import org.onap.aaf.cadi.http.HMangr; import org.onap.aaf.misc.env.APIException; import org.onap.aaf.misc.env.Env; @@ -69,20 +70,32 @@ public class CacheInfoDAO extends CassDAOImpl impl // Hold current time stamps from Tables private final Date startTime; + private final boolean cacheNotify; private PreparedStatement psCheck; public CacheInfoDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException { super(trans, CacheInfoDAO.class.getSimpleName(),cluster,keyspace,Data.class,TABLE,readConsistency(trans,TABLE), writeConsistency(trans,TABLE)); startTime = new Date(); + cacheNotify = noK8s(trans); init(trans); } - public CacheInfoDAO(AuthzTrans trans, AbsCassDAO aDao) throws APIException, IOException { + public CacheInfoDAO(AuthzTrans trans, AbsCassDAO aDao) throws APIException, IOException { super(trans, CacheInfoDAO.class.getSimpleName(),aDao,Data.class,TABLE,readConsistency(trans,TABLE), writeConsistency(trans,TABLE)); startTime = new Date(); init(trans); + cacheNotify = noK8s(trans); } + /** + * Need a different point to point cache clear strategy for K8s... + * @param trans + * @return + */ + private boolean noK8s(AuthzTrans trans) { + String container = trans.getProperty(Config.AAF_LOCATOR_CONTAINER); + return ! ("helm".equals(container) || "oom".equals(container)); + } ////////////////////////////////////////// // Data Definition, matches Cassandra DM @@ -137,7 +150,7 @@ public class CacheInfoDAO extends CassDAOImpl impl } } - public static void startUpdate(AuthzEnv env, HMangr hman, SecuritySetter ss, String ip, int port) { + public static synchronized void startUpdate(AuthzEnv env, HMangr hman, SecuritySetter ss, String ip, int port) { if (cacheUpdate==null) { Thread t= new Thread(cacheUpdate = new CacheUpdate(env,hman,ss, ip,port),"CacheInfo Update Thread"); t.setDaemon(true); @@ -328,7 +341,6 @@ public class CacheInfoDAO extends CassDAOImpl impl } private void init(AuthzTrans trans) throws APIException, IOException { - String[] helpers = setCRUD(trans, TABLE, Data.class, InfoLoader.dflt); psCheck = getSession(trans).prepare(SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE); @@ -347,7 +359,7 @@ public class CacheInfoDAO extends CassDAOImpl impl ///////////// // ConcurrentQueues are open-ended. We don't want any Memory leaks // Note: we keep a separate counter, because "size()" on a Linked Queue is expensive - if (cacheUpdate!=null) { + if (cacheNotify && cacheUpdate!=null) { try { if (!CacheUpdate.notifyDQ.offer(new CacheUpdate.Transfer(name, seg),2,TimeUnit.SECONDS)) { trans.error().log("Cache Notify Queue is not accepting messages, bouncing may be appropriate" );