} 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;
import org.onap.aaf.cadi.Access.Level;
import org.onap.aaf.cadi.CadiException;
import org.onap.aaf.cadi.LocatorException;
+import org.onap.aaf.cadi.aaf.Defaults;
import org.onap.aaf.cadi.aaf.v2_0.AAFConHttp;
import org.onap.aaf.cadi.client.Rcli;
import org.onap.aaf.cadi.client.Retryable;
locator_deploy = null;
} else {
locator_deploy = Split.splitTrim(':', component);
+ if(locator_deploy.length>1 && "AAF_RELEASE".equals(locator_deploy[1])) {
+ locator_deploy[1]=access.getProperty(Config.AAF_RELEASE, Defaults.AAF_VERSION);
+ int snapshot = locator_deploy[1].indexOf("-SNAPSHOT");
+ if(snapshot>0) {
+ locator_deploy[1]=locator_deploy[1].substring(0, snapshot);
+ }
+ }
}
if (component == null || locator_deploy==null || locator_deploy.length<2) {
import org.onap.aaf.misc.env.Env;
import org.onap.aaf.misc.env.Slot;
import org.onap.aaf.misc.env.StaticSlot;
-import org.onap.aaf.misc.env.util.Split;
import org.onap.aaf.misc.rosetta.env.RosettaDF;
import org.onap.aaf.misc.xgen.html.HTMLGen;
import org.onap.aaf.misc.xgen.html.State;
public final Slot slot_httpServletRequest;
protected final String deployedVersion;
- private StaticSlot sTheme;
+ private StaticSlot sThemeWebPath;
public final String theme;
public AAF_GUI(final AuthzEnv env) throws Exception {
super(env.access(), env);
- sTheme = env.staticSlot(CachingFileAccess.CFA_WEB_PATH,access.getProperty(CachingFileAccess.CFA_WEB_PATH,null)==null?AAF_GUI_THEME:CachingFileAccess.CFA_WEB_PATH);
- theme = env.getProperty(AAF_GUI_THEME);
+ theme = env.getProperty(AAF_GUI_THEME,"theme/onap");
+ sThemeWebPath = env.staticSlot(CachingFileAccess.CFA_WEB_PATH);
+ if(env.get(sThemeWebPath)==null) {
+ env.put(sThemeWebPath,theme);
+ }
slot_httpServletRequest = env.slot(HTTP_SERVLET_REQUEST);
- String[] component = Split.split(':', access.getProperty(Config.AAF_COMPONENT, "N/A:2.x"));
- if (component.length>1) {
- deployedVersion =component[1];
- } else {
- deployedVersion = "2.x";
- }
+ deployedVersion = access.getProperty(Config.AAF_RELEASE, "N/A:2.x");
// Certificate Manager
cmCon = new AAFConHttp(env.access(),Config.CM_URL);
///////////////////////
// WebContent Handler
///////////////////////
- route(env,GET,"/"+env.get(sTheme)+"/:key", new CachingFileAccess<AuthzTrans>(env));
+ route(env,GET,"/"+env.get(sThemeWebPath)+"/:key", new CachingFileAccess<AuthzTrans>(env));
///////////////////////
aafCon = aafCon();
lur = aafCon.newLur();
ORG=onap
PROJECT=aaf
DOCKER_REPOSITORY=nexus3.onap.org:10003
-VERSION=2.1.3
+
+####################################
+# WARNING - CSIT MUST NOT BE SET TO SNAPSHOT, OR JENKINS WILL FAIL
+####################################
+VERSION=2.1.5
+
+
CONF_ROOT_DIR=/opt/app/osaaf
# For local builds, set PREFIX=
PREFIX="$DOCKER_REPOSITORY/"
COPY pod/* /opt/app/aaf/pod/
-CMD ["/bin/bash","-c","/opt/app/aaf/bin/${AAF_COMPONENT}"]
+CMD ["/bin/bash","-c","cd /opt/app/aaf;bin/${AAF_COMPONENT}"]
# For Debugging installation
# CMD ["/bin/bash","-c","pwd;cd /opt/app/osaaf;find /opt/app/osaaf -depth;df -k; cat /opt/app/aaf/${AAF_COMPONENT}/bin/${AAF_COMPONENT};cat /etc/hosts;/opt/app/aaf/${AAF_COMPONENT}/bin/${AAF_COMPONENT}"]
- name: {{ .Chart.Name }}-cm
image: {{ .Values.image.repository }}onap/aaf/aaf_cm:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_cm","sleep","45", "/opt/app/aaf/bin/cm"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_cm","sleep","45", "cd /opt/app/aaf;bin/cm"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
- name: {{ .Chart.Name }}-fs
image: {{ .Values.image.repository }}onap/aaf/aaf_fs:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_fs","sleep","50", "/opt/app/aaf/bin/fs"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_fs","sleep","50", "cd /opt/app/aaf;bin/fs"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
- name: {{ .Chart.Name }}-gui
image: {{ .Values.image.repository }}onap/aaf/aaf_gui:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_gui","sleep","50", "/opt/app/aaf/bin/gui"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_gui","sleep","50", "cd /opt/app/aaf;bin/gui"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
- name: {{ .Chart.Name }}-hello
image: {{ .Values.image.repository }}onap/aaf/aaf_hello:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_hello","sleep","50", "/opt/app/aaf/bin/hello"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_hello","sleep","50", "cd /opt/app/aaf;bin/hello"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
- name: {{ .Chart.Name }}-locate
image: {{ .Values.image.repository }}onap/aaf/aaf_locate:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_locate","sleep","50", "/opt/app/aaf/bin/locate"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_locate","sleep","50", "cd /opt/app/aaf;bin/locate"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
- name: {{ .Chart.Name }}-oauth
image: {{ .Values.image.repository }}onap/aaf/aaf_oauth:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_oauth","sleep","50", "/opt/app/aaf/bin/oauth"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_oauth","sleep","50", "cd /opt/app/aaf;bin/oauth"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
- name: {{ .Chart.Name }}-service
image: {{ .Values.image.repository }}onap/aaf/aaf_service:{{ .Values.image.version }}
imagePullPolicy: IfNotPresent
- command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_service","sleep","50", "/opt/app/aaf/bin/service"]
+ command: ["/bin/bash","/opt/app/aaf/pod/pod_wait.sh","aaf_service","sleep","50", "cd /opt/app/aaf;bin/service"]
volumeMounts:
- mountPath: "/opt/app/osaaf"
name: {{ .Chart.Name }}-config-vol
# When using Docker Repo, add, and include trailing "/"
# repository: nexus3.onap.org:10003/
# repository: localhost:5000/
- version: 2.1.4-SNAPSHOT
+ version: 2.1.6-SNAPSHOT
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
TMP=$(mktemp)
echo aaf_env=${AAF_ENV} >> ${TMP}
+ echo aaf_release=${VERSION} >> ${TMP}
echo cadi_latitude=${LATITUDE} >> ${TMP}
echo cadi_longitude=${LONGITUDE} >> ${TMP}
echo cadi_x509_issuers=${CADI_X509_ISSUERS} >> ${TMP}
## Note: Link to CA Properties in "local" dir
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props:/opt/app/osaaf/local/org.osaaf.aaf.cassandra.props:/opt/app/osaaf/etc/org.osaaf.aaf.orgs.props:/opt/app/osaaf/local/org.osaaf.aaf.cm.ca.props
-aaf_component=AAF_NS.cm:2.1
+aaf_component=AAF_NS.cm:AAF_RELEASE
port=8150
#Certman
## AAF Fileserver Properties
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props
-aaf_component=AAF_NS.fs:2.1
+aaf_component=AAF_NS.fs:AAF_RELEASE
port=8096
aaf_public_dir=/opt/app/osaaf/public
## AAF GUI Properties
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props:/opt/app/osaaf/etc/org.osaaf.aaf.orgs.props
-aaf_component=AAF_NS.gui:2.1
+aaf_component=AAF_NS.gui:AAF_RELEASE
port=8200
aaf_gui_title=AAF
cadi_loginpage_url=https://AAF_LOCATE_URL/AAF_NS.gui:2.0/login
# GUI URLS and Help URLS
-cm_url=https://aaf.osaaf.org:8150
-gw_url=https://aaf.osaaf.org:8095
-fs_url=http://aaf.osaaf.org:8096
-
aaf_url.gui_onboard=https://wiki.onap.org/display/DW/Client+Onboarding
# aaf_url.cuigui=https://???/Using+the+Command+Prompt
## AAF Hello Properties
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props
-aaf_component=AAF_NS.hello:2.1
+aaf_component=AAF_NS.hello:AAF_RELEASE
port=8130
## AAF Locator Properties
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props:/opt/app/osaaf/etc/org.osaaf.aaf.orgs.props:/opt/app/osaaf/local/org.osaaf.aaf.cassandra.props
-aaf_component=AAF_NS.locator:2.1
+aaf_component=AAF_NS.locator:AAF_RELEASE
port=8095
## AAF OAuth2 Properties
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props:/opt/app/osaaf/local/org.osaaf.aaf.cassandra.props
-aaf_component=AAF_NS.oauth:2.1
+aaf_component=AAF_NS.oauth:AAF_RELEASE
port=8140
## AAF Service Properties
##
cadi_prop_files=/opt/app/osaaf/local/org.osaaf.aaf.props:/opt/app/osaaf/etc/org.osaaf.aaf.log4j.props:/opt/app/osaaf/local/org.osaaf.aaf.cassandra.props:/opt/app/osaaf/etc/org.osaaf.aaf.orgs.props
-aaf_component=AAF_NS.service:2.1
+aaf_component=AAF_NS.service:AAF_RELEASE
port=8100
-aaf_locate_url=https://meriadoc.mithril.sbc.com:8095\r
+aaf_locate_url=https://localhost:8095\r
aaf_oauth2_introspect_url=https://AAF_LOCATE_URL/AAF_NS.introspect:2.1/introspect\r
aaf_oauth2_token_url=https://AAF_LOCATE_URL/AAF_NS.token:2.1/token\r
aaf_url=https://AAF_LOCATE_URL/AAF_NS.service:2.1\r
public static final String AAF_CERT_IDS = "aaf_cert_ids";
public static final String AAF_DEBUG_IDS = "aaf_debug_ids"; // comma delimited
public static final String AAF_DATA_DIR = "aaf_data_dir"; // AAF processes and Components only.
+ public static final String AAF_RELEASE = "aaf_release";
public static final String GW_URL = "gw_url";
public static final String CM_URL = "cm_url";
return mark;\r
}\r
\r
-\r
-// @Override\r
-// protected void importCSS(Imports imports) {\r
-// if (imports.css.size() == 1) {\r
-// cssInline(imports.css.get(0));\r
-// } else {\r
-// for (String str : imports.css) {\r
-// forward.print("<link rel=\"stylesheet\" href=\"");\r
-// forward.print(imports.themePath(null));\r
-// forward.print(str);\r
-// forward.println("\">");\r
-// }\r
-// }\r
-// }\r
-//\r
-\r
- /*\r
- public void chromeFrame() {\r
- this.textCR(0,"<!--[if IE]>");\r
- Mark mark = new Mark();\r
- this.leaf(mark, "script","type=text/javascript","src=http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js")\r
- .end(mark);\r
- this.incr(mark, "style")\r
- .textCR(0,".chromeFrameInstallDefaultStyle {")\r
- .textCR(1,"width: 100%; /* default is 800px * /")\r
- .textCR(1,"border: 5px solid blue;")\r
- .textCR(0,"}")\r
- .end(mark);\r
-\r
- this.incr(mark,"div","id=prompt"); // auto comment would break IE specific Script\r
- // "if IE without GCF, prompt goes here"\r
- this.text("Please load this plugin to run ClientSide Websockets")\r
- .end(mark);\r
-\r
- this.incr(mark, "script")\r
- .textCR(0, "// The conditional ensures that this code will only execute in IE,")\r
- .textCR(0, "// Therefore we can use the IE-specific attachEvent without worry")\r
- .textCR(0, "window.attachEvent('onload', function() {")\r
- .textCR(1,"CFInstall.check({")\r
- .textCR(2,"mode: 'inline', // the default")\r
- .textCR(2,"node: 'prompt'")\r
- .textCR(1, "});")\r
- .textCR(0, "});")\r
- .end(mark);\r
- \r
- this.textCR(0,"<![endif]-->");\r
- }\r
- */\r
-\r
}\r