1 /*******************************************************************************
2 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3 *******************************************************************************/
4 package com.att.authz.helpers;
6 import java.util.ArrayList;
8 import java.util.HashSet;
9 import java.util.Iterator;
10 import java.util.List;
12 import java.util.TreeMap;
14 import org.onap.aaf.inno.env.Env;
15 import org.onap.aaf.inno.env.TimeTaken;
16 import org.onap.aaf.inno.env.Trans;
17 import com.datastax.driver.core.ResultSet;
18 import com.datastax.driver.core.Row;
19 import com.datastax.driver.core.Session;
20 import com.datastax.driver.core.SimpleStatement;
21 import com.datastax.driver.core.Statement;
24 public static final TreeMap<String,Cred> data = new TreeMap<String,Cred>();
26 public final String id;
27 public final List<Instance> instances;
29 public Cred(String id) {
31 instances = new ArrayList<Instance>();
34 public static class Instance {
35 public final int type;
36 public final Date expires;
37 public final Integer other;
39 public Instance(int type, Date expires, Integer other) {
41 this.expires = expires;
46 public Date last(final int type) {
48 for(Instance i : instances) {
49 if(i.type==type && (last==null || i.expires.after(last))) {
57 public Set<Integer> types() {
58 Set<Integer> types = new HashSet<Integer>();
59 for(Instance i : instances) {
65 public static void load(Trans trans, Session session ) {
66 load(trans, session,"select id, type, expires, other from authz.cred;");
70 public static void loadOneNS(Trans trans, Session session, String ns ) {
71 load(trans, session,"select id, type, expires, other from authz.cred WHERE ns='" + ns + "';");
74 private static void load(Trans trans, Session session, String query) {
76 trans.info().log( "query: " + query );
77 TimeTaken tt = trans.start("Read Creds", Env.REMOTE);
81 Statement stmt = new SimpleStatement( query );
82 results = session.execute(stmt);
88 Iterator<Row> iter = results.iterator();
90 tt = trans.start("Load Roles", Env.SUB);
92 while(iter.hasNext()) {
95 String id = row.getString(0);
96 Cred cred = data.get(id);
101 cred.instances.add(new Instance(row.getInt(1), row.getDate(2), row.getInt(3)));
107 trans.info().log("Found",count,"creds");
112 public String toString() {
113 StringBuilder sb = new StringBuilder(id);
115 for(Instance i : instances) {
119 sb.append(i.expires);
123 return sb.toString();
127 * @see java.lang.Object#hashCode()
130 public int hashCode() {
131 return id.hashCode();
135 * @see java.lang.Object#equals(java.lang.Object)
138 public boolean equals(Object obj) {
139 return id.equals(obj);