Fix GUI Buttons 28/70828/1
authorInstrumental <jonathan.gathman@att.com>
Fri, 19 Oct 2018 16:13:05 +0000 (11:13 -0500)
committerInstrumental <jonathan.gathman@att.com>
Fri, 19 Oct 2018 16:13:16 +0000 (11:13 -0500)
Issue-ID: AAF-435

Change-Id: I8b5e83609176a22b5aa54cac6fd0911488bd707b
Signed-off-by: Instrumental <jonathan.gathman@att.com>
24 files changed:
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/AAFcli.java
auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsService.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/AAF_GUI.java
auth/csit/d.props.init
auth/docker/Dockerfile.ms
auth/helm/aaf/templates/aaf-cm.yaml
auth/helm/aaf/templates/aaf-fs.yaml
auth/helm/aaf/templates/aaf-gui.yaml
auth/helm/aaf/templates/aaf-hello.yaml
auth/helm/aaf/templates/aaf-locate.yaml
auth/helm/aaf/templates/aaf-oauth.yaml
auth/helm/aaf/templates/aaf-service.yaml
auth/helm/aaf/values.yaml
auth/sample/bin/service.sh
auth/sample/etc/org.osaaf.aaf.cm.props
auth/sample/etc/org.osaaf.aaf.fs.props
auth/sample/etc/org.osaaf.aaf.gui.props
auth/sample/etc/org.osaaf.aaf.hello.props
auth/sample/etc/org.osaaf.aaf.locate.props
auth/sample/etc/org.osaaf.aaf.oauth.props
auth/sample/etc/org.osaaf.aaf.service.props
auth/sample/local/initialConfig.props
cadi/core/src/main/java/org/onap/aaf/cadi/config/Config.java
misc/xgen/src/main/java/org/onap/aaf/misc/xgen/html/HTML5Gen.java

index ea36657..0222965 100644 (file)
@@ -251,6 +251,41 @@ public class AAFcli {
                 } 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
                 }
 
             } 
@@ -264,41 +299,6 @@ public class AAFcli {
             } 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;
index f249544..df80ec6 100644 (file)
@@ -34,6 +34,7 @@ import org.onap.aaf.cadi.Access;
 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;
@@ -69,6 +70,13 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
             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) {
index 4816422..2e7e5e5 100644 (file)
@@ -86,7 +86,6 @@ import org.onap.aaf.misc.env.APIException;
 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;
@@ -113,22 +112,20 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     
     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);
@@ -206,7 +203,7 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         ///////////////////////  
         // 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();
index 3ad826a..3e94046 100644 (file)
@@ -2,7 +2,13 @@
 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/"
index c1d9d0d..749ef36 100644 (file)
@@ -7,7 +7,7 @@ LABEL version=${AAF_VERSION}
 
 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}"]
index 0a4c314..7404e44 100644 (file)
@@ -62,7 +62,7 @@ spec:
       - 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
index 22935dc..4dcfdcf 100644 (file)
@@ -62,7 +62,7 @@ spec:
       - 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
index c5d11d0..6ea248d 100644 (file)
@@ -62,7 +62,7 @@ spec:
       - 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
index 033c912..5835728 100644 (file)
@@ -62,7 +62,7 @@ spec:
       - 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
index 58c249e..9f0d35c 100644 (file)
@@ -62,7 +62,7 @@ spec:
       - 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
index 0898467..821ef0d 100644 (file)
@@ -62,7 +62,7 @@ spec:
       - 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
index 306bd77..c0fba07 100644 (file)
@@ -64,7 +64,7 @@ spec:
       - 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
index 044ff42..839d939 100644 (file)
@@ -48,7 +48,7 @@ image:
   # 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
index 6b694ad..b810f0c 100644 (file)
@@ -85,6 +85,7 @@ if [ ! -e $LOCAL/org.osaaf.aaf.props ]; then
 
     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}
index 839ec24..c04201c 100644 (file)
@@ -4,7 +4,7 @@
 ## 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
index 0e423aa..ab6e79d 100644 (file)
@@ -3,7 +3,7 @@
 ## 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
index 36c05e1..6ab8b44 100644 (file)
@@ -3,7 +3,7 @@
 ## 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
@@ -12,10 +12,6 @@ aaf_gui_theme=theme/onap
 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
 
index 17ec446..7c812d3 100644 (file)
@@ -3,6 +3,6 @@
 ## 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
 
index 2ca197a..c7786aa 100644 (file)
@@ -3,6 +3,6 @@
 ## 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
 
index cf80deb..36304d7 100644 (file)
@@ -3,6 +3,6 @@
 ## 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
 
index 1b9132a..71e666d 100644 (file)
@@ -3,6 +3,6 @@
 ## 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
 
index 2f599cd..740bf84 100644 (file)
@@ -1,4 +1,4 @@
-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
index 2479a05..b7d5abe 100644 (file)
@@ -185,6 +185,7 @@ public class Config {
     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";
index b502c6c..89a39b3 100644 (file)
@@ -103,53 +103,4 @@ public class HTML5Gen extends HTMLGen {
         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