* org.onap.aaf
* ===========================================================================
* Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ *
+ * Modifications Copyright (C) 2019 IBM.
* ===========================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
private static boolean showDetails = false;
private static boolean ignoreDelay = false;
private static int globalDelay=0;
-
- public static int timeout() {
- return TIMEOUT;
- }
// Create when only have Access
public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException, CadiException {
this(access,new AuthzEnv(access.getProperties()),wtr,hman, si,ss);
}
- public AAFcli(Access access, AuthzEnv env, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException, CadiException {
+ public AAFcli(Access access, AuthzEnv env, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException {
this.env = env;
this.access = access;
this.ss = ss;
cmds.add(new Mgmt(this));
}
+ public AuthzEnv env() {
+ return env;
+ }
+
+ public static int timeout() {
+ return TIMEOUT;
+ }
+
public void verbose(boolean v) {
verbose = v;
}
}
} else if ("expect".equalsIgnoreCase(largs[idx])) {
expect.clear();
- if (largs.length > idx++) {
- if (!"nothing".equals(largs[idx])) {
+ if ((largs.length > idx++)&&(!"nothing".equals(largs[idx]))) {
for (String str : largs[idx].split(",")) {
try {
if ("Exception".equalsIgnoreCase(str)) {
}
}
++idx;
- }
- }
+ }
continue;
// Sleep, typically for reports, to allow DB to update
// Milliseconds
pw.println("Press <Return> to continue...");
++idx;
// Sonar insists we do something with the string, though it's only a pause. Not very helpful...
- String sonar = new BufferedReader(new InputStreamReader(System.in)).readLine();
+ BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+ String sonar;
+ try {
+ sonar = br.readLine();
+ } finally {
+ br.close();
+ }
sonar=""; // this useless code brought to you by Sonar.
pw.print(sonar);
continue;
} else if ("exit".equalsIgnoreCase(largs[idx])) {
pw.println("Exiting...");
return false;
+ } else if ("set".equalsIgnoreCase(largs[idx])) {
+ while (largs.length > ++idx) {
+ int equals = largs[idx].indexOf('=');
+ String tag, value;
+ if (equals < 0) {
+ tag = largs[idx];
+ value = access.getProperty(Config.AAF_APPPASS,null);
+ if (value==null) {
+ break;
+ } else {
+ value = access.decrypt(value, false);
+ if (value==null) {
+ break;
+ }
+ access.getProperties().put(tag, value);
+ pw.println("set " + tag + " <encrypted>");
+ }
+ } else {
+ tag = largs[idx].substring(0, equals);
+ value = largs[idx].substring(++equals);
+ pw.println("set " + tag + ' ' + value);
+ }
+ boolean isTrue = "TRUE".equalsIgnoreCase(value);
+ if ("FORCE".equalsIgnoreCase(tag)) {
+ force = value;
+ } else if ("REQUEST".equalsIgnoreCase(tag)) {
+ request = isTrue;
+ } else if ("DETAILS".equalsIgnoreCase(tag)) {
+ showDetails = isTrue;
+ } else {
+ access.getProperties().put(tag, value);
+ }
+ }
+ continue;
+ // Allow Script to indicate if Failure is what is expected
}
}
} else if ("DETAILS".equalsIgnoreCase(largs[idx])) {
showDetails=true;
++idx;
- } else if ("set".equalsIgnoreCase(largs[idx])) {
- while (largs.length > ++idx) {
- int equals = largs[idx].indexOf('=');
- String tag, value;
- if (equals < 0) {
- tag = largs[idx];
- value = access.getProperty(Config.AAF_APPPASS,null);
- if (value==null) {
- break;
- } else {
- value = access.decrypt(value, false);
- if (value==null) {
- break;
- }
- access.getProperties().put(tag, value);
- pw.println("set " + tag + " <encrypted>");
- }
- } else {
- tag = largs[idx].substring(0, equals);
- value = largs[idx].substring(++equals);
- pw.println("set " + tag + ' ' + value);
- }
- boolean isTrue = "TRUE".equalsIgnoreCase(value);
- if ("FORCE".equalsIgnoreCase(tag)) {
- force = value;
- } else if ("REQUEST".equalsIgnoreCase(tag)) {
- request = isTrue;
- } else if ("DETAILS".equalsIgnoreCase(tag)) {
- showDetails = isTrue;
- } else {
- access.getProperties().put(tag, value);
- }
- }
- continue;
- // Allow Script to indicate if Failure is what is expected
}
int ret = 0;
} finally {
clearSingleLineProperties();
}
- rv = expect.isEmpty() ? true : expect.contains(ret);
+ rv = expect.isEmpty() || expect.contains(ret);
if (verbose) {
if (rv) {
pw.println();
char last = 0;
for (int i = 0; i < line.length(); ++i) {
char ch;
- if (Character.isWhitespace(ch = line.charAt(i))) {
+ ch = line.charAt(i);
+ if (Character.isWhitespace(ch)) {
if (start || last==',') {
continue; // trim
} else if (quote != 0) {
// }
TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF));
-// HMangr hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion(Config.AAF_DEFAULT_VERSION);
+// HMangr hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion(Config.AAF_DEFAULT_API_VERSION);
if (access.getProperty(Config.AAF_DEFAULT_REALM)==null) {
access.setProperty(Config.AAF_DEFAULT_REALM, "people.osaaf.org");
String line;
while ((line = reader.readLine()) != null) {
- showDetails = (line.contains("-d"))?true:false;
+ showDetails = (line.contains("-d"));
if (line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("q") || line.equalsIgnoreCase("exit")) {
break;
}
} else if (rdr != null) {
BufferedReader br = new BufferedReader(rdr);
- String line;
- while ((line = br.readLine()) != null) {
- if (!aafcli.eval(line) && exitOnFailure) {
- rv = 1;
- break;
+ try {
+ String line;
+ while ((line = br.readLine()) != null) {
+ if (!aafcli.eval(line) && exitOnFailure) {
+ rv = 1;
+ break;
+ }
}
+ } finally {
+ br.close();
}
} else { // just run the command line
aafcli.verbose(false);