1 /*******************************************************************************
2 * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved.
3 *******************************************************************************/
4 package com.att.authz.reports;
6 import java.io.IOException;
7 import java.io.PrintStream;
11 import com.att.authz.Batch;
12 import com.att.authz.env.AuthzTrans;
13 import com.att.authz.helpers.Cred;
14 import com.att.authz.helpers.NS;
15 import com.att.authz.helpers.Perm;
16 import com.att.authz.helpers.Role;
17 import com.att.authz.helpers.UserRole;
18 import com.att.inno.env.APIException;
19 import com.att.inno.env.Env;
20 import com.att.inno.env.TimeTaken;
22 public class NSDump extends Batch{
23 private PrintStream out = System.out;
24 private final String ns, admin, owner;
26 public NSDump(AuthzTrans trans) throws APIException, IOException {
31 throw new APIException("NSDump requires \"NS\" parameter");
33 admin = ns + "|admin";
34 owner = ns + "|owner";
36 TimeTaken tt = trans.start("Connect to Cluster", Env.REMOTE);
38 session = cluster.connect();
43 NS.loadOne(trans, session,NS.v2_0_11,ns);
44 Role.loadOneNS(trans, session, ns);
45 if(Role.data.keySet().size()>5) {
46 UserRole.load(trans, session,UserRole.v2_0_11);
48 for(Role r : Role.data.keySet()) {
49 UserRole.loadOneRole(trans, session, UserRole.v2_0_11, r.fullName());
52 Perm.loadOneNS(trans,session,ns);
53 Cred.loadOneNS(trans, session, ns);
57 protected void run(AuthzTrans trans) {
58 Date now = new Date();
59 for(NS ns : NS.data.values()) {
60 out.format("# Data for Namespace [%s] - %s\n",ns.name,ns.description);
61 out.format("ns create %s",ns);
63 List<UserRole> owners = UserRole.byRole.get(owner);
64 if(owners!=null)for(UserRole ur : owners) {
74 List<UserRole> admins = UserRole.byRole.get(admin);
75 if(admins!=null)for(UserRole ur : admins) {
88 for(Cred c : Cred.data.values()) {
89 for(int i : c.types()) {
91 if(last!=null && now.before(last)) {
94 out.format(" user cred add %s %s\n", c.id,"new2you!");
97 out.format(" # CERT needs registering for %s\n", c.id);
100 out.format(" # Unknown Type for %s\n", c.id);
107 for(Role r : Role.data.keySet()) {
108 if(!"admin".equals(r.name) && !"owner".equals(r.name)) {
109 out.format(" role create %s\n",r.fullName());
110 List<UserRole> lur = UserRole.byRole.get(r.fullName());
111 if(lur!=null)for(UserRole ur : lur) {
112 if(ur.expires.after(now)) {
113 out.format(" request role user add %s %s\n", ur.role,ur.user);
120 for(Perm r : Perm.data.keySet()) {
121 out.format(" perm create %s.%s %s %s\n",r.ns,r.type,r.instance,r.action);
122 for(String role : r.roles) {
123 out.format(" request perm grant %s.%s %s %s %s\n", r.ns,r.type,r.instance,r.action,Role.fullName(role));
131 protected void _close(AuthzTrans trans) {
133 aspr.info("End " + this.getClass().getSimpleName() + " processing" );