mirror of
https://github.com/nsacyber/HIRS.git
synced 2025-04-14 14:36:51 +00:00
issue_811: Replaced var with let in the script tags of the jsp files. I believe the search function is tied to one of the js files. Might need to write some JS.
This commit is contained in:
parent
9c0ff0384f
commit
93b71456e4
.github/workflows
create_aca_images.ymldotnet_provisioner_unit_tests.ymlhirs_package_linux.ymlhirs_unit_tests.ymlrim_tests.yml
HIRS_AttestationCAPortal/src/main
java/hirs/attestationca/portal/page/controllers
webapp/WEB-INF/jsp
package/linux/systemd
250
.github/workflows/create_aca_images.yml
vendored
250
.github/workflows/create_aca_images.yml
vendored
@ -17,7 +17,7 @@ env:
|
||||
PUBLIC_IMAGE_NAME: ghcr.io/nsacyber/hirs/aca
|
||||
PUBLIC_IMAGE_TAG_LATEST: ghcr.io/nsacyber/hirs/aca:latest
|
||||
TAG_LATEST: ${{ github.event_name == 'release' || inputs.also_tag_latest }} # The public docker image will be tagged 'latest' for releases, or if this option is manually selected.
|
||||
jobs:
|
||||
jobs:
|
||||
setup:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
@ -27,44 +27,44 @@ jobs:
|
||||
WINDOWS_COMPAT_IMAGE_TAG: ${{ steps.setenv.outputs.WINDOWS_COMPAT_IMAGE_TAG }}
|
||||
PUBLIC_IMAGE_TAG: ${{ steps.setenv.outputs.PUBLIC_IMAGE_TAG }}
|
||||
steps:
|
||||
- name: Set env
|
||||
id: setenv
|
||||
shell: bash
|
||||
run: |
|
||||
# Parse docker image tag from GitHub tag if available
|
||||
if [ "${{ github.ref_type }}" = "tag" ]; then
|
||||
# tags start with refs/tags/. Also remove v if it exists.
|
||||
export IMAGE_TAG_VAR=${GITHUB_REF:10}
|
||||
export IMAGE_TAG_VAR=${IMAGE_TAG_VAR//v/}
|
||||
else
|
||||
# Not a tag, use the commit hash. Do not tag as latest.
|
||||
export IMAGE_TAG_VAR=${GITHUB_SHA:0:7}
|
||||
fi
|
||||
# To lowercase
|
||||
export IMAGE_TAG_VAR=${IMAGE_TAG_VAR,,}
|
||||
|
||||
# Save to output
|
||||
echo "IMAGE_TAG=$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "ROCKY_IMAGE_TAG=$IMAGE_NAME_ROCKY:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "WINDOWS_IMAGE_TAG=$IMAGE_NAME_WINDOWS:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "WINDOWS_COMPAT_IMAGE_TAG=$IMAGE_NAME_WINDOWS_COMPAT:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "PUBLIC_IMAGE_TAG=$PUBLIC_IMAGE_NAME:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
- name: Print env
|
||||
run: |
|
||||
echo GITHUB_REF_NAME=${{ github.ref_name }}
|
||||
echo DOCKERFILE_ROCKY=$DOCKERFILE_ROCKY
|
||||
echo DOCKERFILE_WINDOWS=$DOCKERFILE_WINDOWS
|
||||
echo IMAGE_NAME_ROCKY=$IMAGE_NAME_ROCKY
|
||||
echo IMAGE_NAME_WINDOWS=$IMAGE_NAME_WINDOWS
|
||||
echo IMAGE_NAME_WINDOWS_COMPAT=$IMAGE_NAME_WINDOWS_COMPAT
|
||||
echo PUBLIC_IMAGE_NAME=$PUBLIC_IMAGE_NAME
|
||||
echo PUBLIC_IMAGE_TAG_LATEST=$PUBLIC_IMAGE_TAG_LATEST
|
||||
echo TAG_LATEST=$TAG_LATEST
|
||||
echo IMAGE_TAG=${{ steps.setenv.outputs.IMAGE_TAG }}
|
||||
echo ROCKY_IMAGE_TAG=${{ steps.setenv.outputs.ROCKY_IMAGE_TAG }}
|
||||
echo WINDOWS_IMAGE_TAG=${{ steps.setenv.outputs.WINDOWS_IMAGE_TAG }}
|
||||
echo WINDOWS_COMPAT_IMAGE_TAG=${{ steps.setenv.outputs.WINDOWS_COMPAT_IMAGE_TAG }}
|
||||
echo PUBLIC_IMAGE_TAG=${{ steps.setenv.outputs.PUBLIC_IMAGE_TAG }}
|
||||
- name: Set env
|
||||
id: setenv
|
||||
shell: bash
|
||||
run: |
|
||||
# Parse docker image tag from GitHub tag if available
|
||||
if [ "${{ github.ref_type }}" = "tag" ]; then
|
||||
# tags start with refs/tags/. Also remove v if it exists.
|
||||
export IMAGE_TAG_VAR=${GITHUB_REF:10}
|
||||
export IMAGE_TAG_VAR=${IMAGE_TAG_VAR//v/}
|
||||
else
|
||||
# Not a tag, use the commit hash. Do not tag as latest.
|
||||
export IMAGE_TAG_VAR=${GITHUB_SHA:0:7}
|
||||
fi
|
||||
# To lowercase
|
||||
export IMAGE_TAG_VAR=${IMAGE_TAG_VAR,,}
|
||||
|
||||
# Save to output
|
||||
echo "IMAGE_TAG=$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "ROCKY_IMAGE_TAG=$IMAGE_NAME_ROCKY:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "WINDOWS_IMAGE_TAG=$IMAGE_NAME_WINDOWS:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "WINDOWS_COMPAT_IMAGE_TAG=$IMAGE_NAME_WINDOWS_COMPAT:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
echo "PUBLIC_IMAGE_TAG=$PUBLIC_IMAGE_NAME:$IMAGE_TAG_VAR" >> "$GITHUB_OUTPUT"
|
||||
- name: Print env
|
||||
run: |
|
||||
echo GITHUB_REF_NAME=${{ github.ref_name }}
|
||||
echo DOCKERFILE_ROCKY=$DOCKERFILE_ROCKY
|
||||
echo DOCKERFILE_WINDOWS=$DOCKERFILE_WINDOWS
|
||||
echo IMAGE_NAME_ROCKY=$IMAGE_NAME_ROCKY
|
||||
echo IMAGE_NAME_WINDOWS=$IMAGE_NAME_WINDOWS
|
||||
echo IMAGE_NAME_WINDOWS_COMPAT=$IMAGE_NAME_WINDOWS_COMPAT
|
||||
echo PUBLIC_IMAGE_NAME=$PUBLIC_IMAGE_NAME
|
||||
echo PUBLIC_IMAGE_TAG_LATEST=$PUBLIC_IMAGE_TAG_LATEST
|
||||
echo TAG_LATEST=$TAG_LATEST
|
||||
echo IMAGE_TAG=${{ steps.setenv.outputs.IMAGE_TAG }}
|
||||
echo ROCKY_IMAGE_TAG=${{ steps.setenv.outputs.ROCKY_IMAGE_TAG }}
|
||||
echo WINDOWS_IMAGE_TAG=${{ steps.setenv.outputs.WINDOWS_IMAGE_TAG }}
|
||||
echo WINDOWS_COMPAT_IMAGE_TAG=${{ steps.setenv.outputs.WINDOWS_COMPAT_IMAGE_TAG }}
|
||||
echo PUBLIC_IMAGE_TAG=${{ steps.setenv.outputs.PUBLIC_IMAGE_TAG }}
|
||||
|
||||
rocky-image:
|
||||
needs: setup
|
||||
@ -72,78 +72,78 @@ jobs:
|
||||
env:
|
||||
TAG: ${{ needs.setup.outputs.ROCKY_IMAGE_TAG }}
|
||||
steps:
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push a release Docker image for ${{ github.repository }}
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: "{{defaultContext}}:.ci/docker"
|
||||
file: Dockerfile.${{env.DOCKERFILE_ROCKY}}
|
||||
build-args: REF=${{ github.ref_name }}
|
||||
tags: ${{env.TAG}}
|
||||
push: true
|
||||
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push a release Docker image for ${{ github.repository }}
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: "{{defaultContext}}:.ci/docker"
|
||||
file: Dockerfile.${{env.DOCKERFILE_ROCKY}}
|
||||
build-args: REF=${{ github.ref_name }}
|
||||
tags: ${{env.TAG}}
|
||||
push: true
|
||||
|
||||
windows-11-image:
|
||||
needs: setup
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
TAG: ${{ needs.setup.outputs.WINDOWS_IMAGE_TAG }}
|
||||
steps:
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build the docker image for ${{ github.repository }}
|
||||
run: |
|
||||
cd ./.ci/docker
|
||||
docker build --build-arg REF=${{ github.ref_name }} -f ./Dockerfile.${{env.DOCKERFILE_WINDOWS}} -t ${{env.TAG}} .
|
||||
|
||||
- name: Push the docker image
|
||||
run: |
|
||||
docker push ${{env.TAG}}
|
||||
|
||||
- name: Build the docker image for ${{ github.repository }}
|
||||
run: |
|
||||
cd ./.ci/docker
|
||||
docker build --build-arg REF=${{ github.ref_name }} -f ./Dockerfile.${{env.DOCKERFILE_WINDOWS}} -t ${{env.TAG}} .
|
||||
|
||||
- name: Push the docker image
|
||||
run: |
|
||||
docker push ${{env.TAG}}
|
||||
|
||||
windows-compat-image: # This job uses a different runner and build arg than the other windows job.
|
||||
needs: setup
|
||||
runs-on: windows-2019
|
||||
env:
|
||||
TAG: ${{ needs.setup.outputs.WINDOWS_COMPAT_IMAGE_TAG }}
|
||||
steps:
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build the docker image for ${{ github.repository }}
|
||||
run: |
|
||||
cd ./.ci/docker
|
||||
docker build --build-arg REF=${{ github.ref_name }} -f ./Dockerfile.${{env.DOCKERFILE_WINDOWS}} -t ${{env.TAG}} --build-arg BASE_IMAGE_TAG=lts-windowsservercore-1809 .
|
||||
|
||||
- name: Push the docker image
|
||||
run: |
|
||||
docker push ${{env.TAG}}
|
||||
|
||||
|
||||
- name: Build the docker image for ${{ github.repository }}
|
||||
run: |
|
||||
cd ./.ci/docker
|
||||
docker build --build-arg REF=${{ github.ref_name }} -f ./Dockerfile.${{env.DOCKERFILE_WINDOWS}} -t ${{env.TAG}} --build-arg BASE_IMAGE_TAG=lts-windowsservercore-1809 .
|
||||
|
||||
- name: Push the docker image
|
||||
run: |
|
||||
docker push ${{env.TAG}}
|
||||
|
||||
|
||||
manifest:
|
||||
needs: [setup, rocky-image, windows-11-image, windows-compat-image]
|
||||
needs: [ setup, rocky-image, windows-11-image, windows-compat-image ]
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
IMAGE1: ${{ needs.setup.outputs.ROCKY_IMAGE_TAG }}
|
||||
@ -151,34 +151,34 @@ jobs:
|
||||
IMAGE3: ${{ needs.setup.outputs.WINDOWS_COMPAT_IMAGE_TAG }}
|
||||
PUB: ${{ needs.setup.outputs.PUBLIC_IMAGE_TAG }}
|
||||
steps:
|
||||
- name: Print env
|
||||
run: |
|
||||
echo IMAGE1=${{env.IMAGE1}}
|
||||
echo IMAGE2=${{env.IMAGE2}}
|
||||
echo IMAGE3=${{env.IMAGE3}}
|
||||
echo PUB=${{env.PUB}}
|
||||
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Create a new manifest
|
||||
run: |
|
||||
docker manifest create ${{env.PUB}} --amend ${{env.IMAGE1}} --amend ${{env.IMAGE2}} --amend ${{env.IMAGE3}}
|
||||
|
||||
- name: Push the new manifest
|
||||
run: |
|
||||
docker manifest push ${{env.PUB}}
|
||||
|
||||
- name: Create and push manifest latest if selected
|
||||
if: env.TAG_LATEST != 'false'
|
||||
run: |
|
||||
docker manifest create $PUBLIC_IMAGE_TAG_LATEST --amend $IMAGE1 --amend $IMAGE2 --amend $IMAGE3
|
||||
docker manifest push $PUBLIC_IMAGE_TAG_LATEST
|
||||
- name: Print env
|
||||
run: |
|
||||
echo IMAGE1=${{env.IMAGE1}}
|
||||
echo IMAGE2=${{env.IMAGE2}}
|
||||
echo IMAGE3=${{env.IMAGE3}}
|
||||
echo PUB=${{env.PUB}}
|
||||
|
||||
- name: Checkout main
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v4
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Create a new manifest
|
||||
run: |
|
||||
docker manifest create ${{env.PUB}} --amend ${{env.IMAGE1}} --amend ${{env.IMAGE2}} --amend ${{env.IMAGE3}}
|
||||
|
||||
- name: Push the new manifest
|
||||
run: |
|
||||
docker manifest push ${{env.PUB}}
|
||||
|
||||
- name: Create and push manifest latest if selected
|
||||
if: env.TAG_LATEST != 'false'
|
||||
run: |
|
||||
docker manifest create $PUBLIC_IMAGE_TAG_LATEST --amend $IMAGE1 --amend $IMAGE2 --amend $IMAGE3
|
||||
docker manifest push $PUBLIC_IMAGE_TAG_LATEST
|
||||
|
||||
|
@ -2,7 +2,7 @@ name: Dotnet Provisioner Unit Tests
|
||||
|
||||
on: push
|
||||
env:
|
||||
DOTNET_VERSION: '6.0'
|
||||
DOTNET_VERSION: '8S.0'
|
||||
jobs:
|
||||
dotnet_provisioner_unit_tests:
|
||||
name: Restore and Run Unit Tests
|
||||
@ -97,7 +97,7 @@ jobs:
|
||||
|
||||
Evaluator:
|
||||
name: Evaluate Tests
|
||||
needs: [dotnet_provisioner_unit_tests]
|
||||
needs: [ dotnet_provisioner_unit_tests ]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: false
|
||||
steps:
|
||||
@ -110,7 +110,7 @@ jobs:
|
||||
run: |
|
||||
mkdir artifacts
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
|
||||
|
104
.github/workflows/hirs_package_linux.yml
vendored
104
.github/workflows/hirs_package_linux.yml
vendored
@ -8,34 +8,34 @@ on:
|
||||
|
||||
jobs:
|
||||
# run the package script for HIRS ACA, Provisioners, tcg_rim_tool, and tcg_eventlog_tool
|
||||
Package_linux:
|
||||
Package_linux:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'temurin'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
- name: directory setup
|
||||
run: |
|
||||
mkdir -p artifacts/jars
|
||||
mkdir -p artifacts/win
|
||||
mkdir -p artifacts/win/hirstools
|
||||
- name: install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install git curl nano cron mariadb-server
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
- name: Execute Gradle build
|
||||
run: |
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
java-version: '17'
|
||||
distribution: 'temurin'
|
||||
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
|
||||
settings-path: ${{ github.workspace }} # location for the settings.xml file
|
||||
- name: directory setup
|
||||
run: |
|
||||
mkdir -p artifacts/jars
|
||||
mkdir -p artifacts/win
|
||||
mkdir -p artifacts/win/hirstools
|
||||
- name: install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install git curl nano cron mariadb-server
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
- name: Execute Gradle build
|
||||
run: |
|
||||
./gradlew build;
|
||||
./gradlew bootWar;
|
||||
./gradlew buildDeb;
|
||||
@ -48,35 +48,35 @@ jobs:
|
||||
cp tools/tcg_rim_tool/build/distributions/*.zip artifacts/win
|
||||
cp tools/tcg_eventlog_tool/build/distributions/*.zip artifacts/win
|
||||
cp package/win/tcg-rim-tool/* artifacts/win/hirstools
|
||||
- name: Archive RPM files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: RPM_Files
|
||||
path: HIRS_AttestationCAPortal/build/distributions/*.rpm
|
||||
if-no-files-found: error
|
||||
- name: Archive DEB files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: DEB_Files
|
||||
path: HIRS_AttestationCAPortal/build/distributions/*.deb
|
||||
if-no-files-found: error
|
||||
- name: War files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: WAR_Files
|
||||
path: HIRS_AttestationCAPortal/build/libs/HIRS_AttestationCAPortal.war
|
||||
if-no-files-found: error
|
||||
- name: JAR_Files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: JAR_Files
|
||||
path: artifacts/jars/
|
||||
if-no-files-found: error
|
||||
- name: ZIP_Files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ZIP_Files
|
||||
path: artifacts/win/
|
||||
if-no-files-found: error
|
||||
- name: Archive RPM files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: RPM_Files
|
||||
path: HIRS_AttestationCAPortal/build/distributions/*.rpm
|
||||
if-no-files-found: error
|
||||
- name: Archive DEB files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: DEB_Files
|
||||
path: HIRS_AttestationCAPortal/build/distributions/*.deb
|
||||
if-no-files-found: error
|
||||
- name: War files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: WAR_Files
|
||||
path: HIRS_AttestationCAPortal/build/libs/HIRS_AttestationCAPortal.war
|
||||
if-no-files-found: error
|
||||
- name: JAR_Files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: JAR_Files
|
||||
path: artifacts/jars/
|
||||
if-no-files-found: error
|
||||
- name: ZIP_Files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ZIP_Files
|
||||
path: artifacts/win/
|
||||
if-no-files-found: error
|
||||
|
||||
|
||||
|
158
.github/workflows/hirs_unit_tests.yml
vendored
158
.github/workflows/hirs_unit_tests.yml
vendored
@ -17,82 +17,82 @@ jobs:
|
||||
ACA_Provisioner_Unit_Tests:
|
||||
runs-on: ubuntu-latest # Configures the job to run on the latest version of an Ubuntu Linux runner
|
||||
steps:
|
||||
- uses: actions/checkout@v3 # run v3 of actions/checkout action, which checks out your repository onto the runner
|
||||
# Build will archive build reports and will create a failedFile if build is not successful
|
||||
- name: Directory setup
|
||||
run: |
|
||||
mkdir -p artifacts/githubActionsResults
|
||||
mkdir -p artifacts/upload_reports/HIRS_AttestationCA
|
||||
mkdir -p artifacts/upload_reports/HIRS_AttestationCAPortal
|
||||
mkdir -p artifacts/upload_reports/HIRS_Provisioner
|
||||
mkdir -p artifacts/upload_reports/HIRS_ProvisionerTPM2
|
||||
mkdir -p artifacts/upload_reports/HIRS_Structs
|
||||
mkdir -p artifacts/upload_reports/HIRS_Utils
|
||||
mkdir -p artifacts/upload_reports/tcg_rim_tool
|
||||
mkdir -p artifacts/upload_reports/tcg_eventlog_tool
|
||||
# Run the provisioner and ACA unit tests via gradle build in a Rocky Docker container
|
||||
- name: Build HIRS and run unit tests
|
||||
run: |
|
||||
|
||||
# log into and run docker (note: must set up secrets in github for ghcr username and access_token)
|
||||
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $ --password-stdin
|
||||
|
||||
# docker run options:
|
||||
# create a mount between curr directory on the runner and the HIRS folder created by the cloning of HIRS repo
|
||||
# -v $(pwd):/HIRS
|
||||
# image used for the container, given by <repository>:<tag_name>
|
||||
# rocky8: ghcr.io/nsacyber/hirs/hirs-rocky8-ci:latest [repo: https://github.com/orgs/nsacyber/packages]
|
||||
# bash commands to clean/build/test each subproject
|
||||
# /bin/bash -c '<commands>'
|
||||
docker run --rm \
|
||||
-v $(pwd):/HIRS \
|
||||
ghcr.io/nsacyber/hirs/hirs-rocky8-ci:latest /bin/bash -c \
|
||||
'pushd /HIRS
|
||||
gradle_status=0
|
||||
|
||||
# git added a feature that gives error if user is not owner of the top-level directory; need to override this
|
||||
git config --global --add safe.directory /HIRS
|
||||
|
||||
# clean, build and run unit tests on all sub-projects; copy build reports to an artifacts directory
|
||||
./gradlew :HIRS_AttestationCA:clean :HIRS_AttestationCA:build :HIRS_AttestationCA:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_AttestationCA/build/reports/ /HIRS/artifacts/upload_reports/HIRS_AttestationCA/.
|
||||
./gradlew :HIRS_AttestationCAPortal:clean :HIRS_AttestationCAPortal:build :HIRS_AttestationCAPortal:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_AttestationCAPortal/build/reports/ /HIRS/artifacts/upload_reports/HIRS_AttestationCAPortal/.
|
||||
#./gradlew :HIRS_Provisioner:clean :HIRS_Provisioner:build :HIRS_Provisioner:test
|
||||
#if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
#cp -r /HIRS/HIRS_Provisioner/build/reports/ /HIRS/artifacts/upload_reports/HIRS_Provisioner/.
|
||||
#./gradlew :HIRS_ProvisionerTPM2:clean :HIRS_ProvisionerTPM2:build :HIRS_ProvisionerTPM2:test
|
||||
#if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
#cp -r /HIRS/HIRS_ProvisionerTPM2/docs/ /HIRS/artifacts/upload_reports/HIRS_ProvisionerTPM2/.
|
||||
./gradlew :HIRS_Structs:clean :HIRS_Structs:build :HIRS_Structs:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_Structs/build/reports/ /HIRS/artifacts/upload_reports/HIRS_Structs/.
|
||||
./gradlew :HIRS_Utils:clean :HIRS_Utils:build :HIRS_Utils:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_Utils/build/reports/ /HIRS/artifacts/upload_reports/HIRS_Utils/.
|
||||
#./gradlew :TPM_Utils:clean :TPM_Utils:build :TPM_Utils:test
|
||||
#if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
|
||||
# Create "fail file" to fail the Build ACA tests if gradle exited with anything other than 0
|
||||
if (( $gradle_status == "0" )) ; then
|
||||
echo "In docker: Build Passed"
|
||||
else
|
||||
echo "In docker: Build Failed"
|
||||
touch /HIRS/artifacts/githubActionsResults/buildFailed.txt
|
||||
fi; popd;'
|
||||
# Upload build report files
|
||||
- name: Archive report files
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: HIRS_Build_Reports
|
||||
path: artifacts/upload_reports/*
|
||||
if-no-files-found: ignore
|
||||
# If buildFailed file exists, use that to fail the ACA unit tests
|
||||
- name: Check if build/test passed or failed
|
||||
if: ${{ hashFiles('artifacts/githubActionsResults/buildFailed.txt') != '' }}
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
core.setFailed('Build or Unit Test Failed')
|
||||
- uses: actions/checkout@v4 # run v4 of actions/checkout action, which checks out your repository onto the runner
|
||||
# Build will archive build reports and will create a failedFile if build is not successful
|
||||
- name: Directory setup
|
||||
run: |
|
||||
mkdir -p artifacts/githubActionsResults
|
||||
mkdir -p artifacts/upload_reports/HIRS_AttestationCA
|
||||
mkdir -p artifacts/upload_reports/HIRS_AttestationCAPortal
|
||||
mkdir -p artifacts/upload_reports/HIRS_Provisioner
|
||||
mkdir -p artifacts/upload_reports/HIRS_ProvisionerTPM2
|
||||
mkdir -p artifacts/upload_reports/HIRS_Structs
|
||||
mkdir -p artifacts/upload_reports/HIRS_Utils
|
||||
mkdir -p artifacts/upload_reports/tcg_rim_tool
|
||||
mkdir -p artifacts/upload_reports/tcg_eventlog_tool
|
||||
# Run the provisioner and ACA unit tests via gradle build in a Rocky Docker container
|
||||
- name: Build HIRS and run unit tests
|
||||
run: |
|
||||
|
||||
# log into and run docker (note: must set up secrets in github for ghcr username and access_token)
|
||||
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u $ --password-stdin
|
||||
|
||||
# docker run options:
|
||||
# create a mount between curr directory on the runner and the HIRS folder created by the cloning of HIRS repo
|
||||
# -v $(pwd):/HIRS
|
||||
# image used for the container, given by <repository>:<tag_name>
|
||||
# rocky8: ghcr.io/nsacyber/hirs/hirs-rocky8-ci:latest [repo: https://github.com/orgs/nsacyber/packages]
|
||||
# bash commands to clean/build/test each subproject
|
||||
# /bin/bash -c '<commands>'
|
||||
docker run --rm \
|
||||
-v $(pwd):/HIRS \
|
||||
ghcr.io/nsacyber/hirs/hirs-rocky8-ci:latest /bin/bash -c \
|
||||
'pushd /HIRS
|
||||
gradle_status=0
|
||||
|
||||
# git added a feature that gives error if user is not owner of the top-level directory; need to override this
|
||||
git config --global --add safe.directory /HIRS
|
||||
|
||||
# clean, build and run unit tests on all sub-projects; copy build reports to an artifacts directory
|
||||
./gradlew :HIRS_AttestationCA:clean :HIRS_AttestationCA:build :HIRS_AttestationCA:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_AttestationCA/build/reports/ /HIRS/artifacts/upload_reports/HIRS_AttestationCA/.
|
||||
./gradlew :HIRS_AttestationCAPortal:clean :HIRS_AttestationCAPortal:build :HIRS_AttestationCAPortal:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_AttestationCAPortal/build/reports/ /HIRS/artifacts/upload_reports/HIRS_AttestationCAPortal/.
|
||||
#./gradlew :HIRS_Provisioner:clean :HIRS_Provisioner:build :HIRS_Provisioner:test
|
||||
#if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
#cp -r /HIRS/HIRS_Provisioner/build/reports/ /HIRS/artifacts/upload_reports/HIRS_Provisioner/.
|
||||
#./gradlew :HIRS_ProvisionerTPM2:clean :HIRS_ProvisionerTPM2:build :HIRS_ProvisionerTPM2:test
|
||||
#if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
#cp -r /HIRS/HIRS_ProvisionerTPM2/docs/ /HIRS/artifacts/upload_reports/HIRS_ProvisionerTPM2/.
|
||||
./gradlew :HIRS_Structs:clean :HIRS_Structs:build :HIRS_Structs:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_Structs/build/reports/ /HIRS/artifacts/upload_reports/HIRS_Structs/.
|
||||
./gradlew :HIRS_Utils:clean :HIRS_Utils:build :HIRS_Utils:test
|
||||
if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
cp -r /HIRS/HIRS_Utils/build/reports/ /HIRS/artifacts/upload_reports/HIRS_Utils/.
|
||||
#./gradlew :TPM_Utils:clean :TPM_Utils:build :TPM_Utils:test
|
||||
#if (( $? != "0" )) ; then gradle_status=1; fi
|
||||
|
||||
# Create "fail file" to fail the Build ACA tests if gradle exited with anything other than 0
|
||||
if (( $gradle_status == "0" )) ; then
|
||||
echo "In docker: Build Passed"
|
||||
else
|
||||
echo "In docker: Build Failed"
|
||||
touch /HIRS/artifacts/githubActionsResults/buildFailed.txt
|
||||
fi; popd;'
|
||||
# Upload build report files
|
||||
- name: Archive report files
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: HIRS_Build_Reports
|
||||
path: artifacts/upload_reports/*
|
||||
if-no-files-found: ignore
|
||||
# If buildFailed file exists, use that to fail the ACA unit tests
|
||||
- name: Check if build/test passed or failed
|
||||
if: ${{ hashFiles('artifacts/githubActionsResults/buildFailed.txt') != '' }}
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
core.setFailed('Build or Unit Test Failed')
|
4
.github/workflows/rim_tests.yml
vendored
4
.github/workflows/rim_tests.yml
vendored
@ -28,7 +28,7 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install git curl nano cron mariadb-server
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
- name: Execute Gradle build
|
||||
run: |
|
||||
./gradlew build;
|
||||
@ -37,7 +37,7 @@ jobs:
|
||||
run: |
|
||||
sudo dpkg -i tools/tcg_rim_tool/build/distributions/tcg-rim-tool*.deb
|
||||
- name: RIM tests
|
||||
run: |
|
||||
run: |
|
||||
./.ci/tcg-rim-tool/scripts/run_all_tests.sh --verbose
|
||||
|
||||
|
||||
|
@ -237,8 +237,8 @@ public class DevicePageController extends PageController<NoPageParams> {
|
||||
List<UUID> deviceIds = new ArrayList<>();
|
||||
|
||||
// loop all the devices
|
||||
for (int i = 0; i < deviceList.size(); i++) {
|
||||
deviceIds.add(deviceList.get(i).getId());
|
||||
for (Device device : deviceList) {
|
||||
deviceIds.add(device.getId());
|
||||
}
|
||||
|
||||
return deviceIds;
|
||||
|
@ -959,15 +959,15 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
var type = "${param.type}";
|
||||
var signature = ${initialData.signature};
|
||||
var serialNumber = '${initialData.serialNumber}';
|
||||
var authorityKeyIdentifier = '${initialData.authKeyId}';
|
||||
var authoritySerialNumber = '${initialData.authSerialNumber}';
|
||||
let type = "${param.type}";
|
||||
let signature = ${initialData.signature};
|
||||
let serialNumber = '${initialData.serialNumber}';
|
||||
let authorityKeyIdentifier = '${initialData.authKeyId}';
|
||||
let authoritySerialNumber = '${initialData.authSerialNumber}';
|
||||
|
||||
//Format validity time
|
||||
$("#validity span").each(function () {
|
||||
var dateText = $(this).text();
|
||||
let dateText = $(this).text();
|
||||
return $(this).text(formatCertificateDate(dateText));
|
||||
});
|
||||
|
||||
@ -993,13 +993,13 @@
|
||||
</c:if>
|
||||
<c:choose>
|
||||
<c:when test="${not empty initialData.publicKeyValue}">
|
||||
var publicKey = '${initialData.publicKeyValue}';
|
||||
let publicKey = '${initialData.publicKeyValue}';
|
||||
$("#encodedPublicKey").html(parseHexString(publicKey));
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<c:if test="${not empty initialData.encodedPublicKey}">
|
||||
//Change public key byte to hex
|
||||
var encPublicKey = ${initialData.encodedPublicKey};
|
||||
let encPublicKey = ${initialData.encodedPublicKey};
|
||||
$("#encodedPublicKey").html(byteToHexString(encPublicKey));
|
||||
</c:if>
|
||||
</c:otherwise>
|
||||
@ -1008,19 +1008,19 @@
|
||||
<c:if test="${not empty initialData.subjectKeyIdentifier}">
|
||||
//Change subject byte to hex only for CACertificate
|
||||
if (type === "certificateauthority") {
|
||||
var subjectKeyIdentifier = ${initialData.subjectKeyIdentifier};
|
||||
let subjectKeyIdentifier = ${initialData.subjectKeyIdentifier};
|
||||
$("#subjectKeyIdentifier").html(byteToHexString(subjectKeyIdentifier));
|
||||
}
|
||||
</c:if>
|
||||
|
||||
<c:if test="${not empty initialData.hwSerialNumHex}">
|
||||
var hwSerialNum = '${initialData.hwSerialNum}';
|
||||
let hwSerialNum = '${initialData.hwSerialNum}';
|
||||
$("#hwSerialNum").html(parseHexString(hwSerialNum));
|
||||
</c:if>
|
||||
|
||||
<c:if test="${not empty initialData.tcgTpmManufacturer}">
|
||||
var ekAKI = '${initialData.ekAuthorityKeyIdentifier};'
|
||||
var ekCSN = '${initialData.ekCertificateSerialNumber};'
|
||||
let ekAKI = '${initialData.ekAuthorityKeyIdentifier};'
|
||||
let ekCSN = '${initialData.ekCertificateSerialNumber};'
|
||||
|
||||
$("#ekAuthorityKeyIdentifier").html(parseHexString(ekAKI));
|
||||
$("#ekCertificateSerialNumber").html(parseHexString(ekCSN));
|
||||
@ -1038,9 +1038,9 @@
|
||||
|
||||
//Change link width
|
||||
$("#headingOne, #headingTwo, #headingThree").each(function (e) {
|
||||
var width = $(this).width();
|
||||
let width = $(this).width();
|
||||
//Get link width
|
||||
var linkWidth = $(this).find('a').width();
|
||||
let linkWidth = $(this).find('a').width();
|
||||
|
||||
//Change width for the link
|
||||
$(this).find('a').css({
|
||||
|
@ -43,13 +43,13 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = portal + '/devices/list';
|
||||
var columns = [
|
||||
let url = portal + '/devices/list';
|
||||
let columns = [
|
||||
{
|
||||
data: 'supplyChainValidationStatus',
|
||||
searchable:false,
|
||||
render: function(data, type, full, meta) {
|
||||
var html = '';
|
||||
let html = '';
|
||||
switch(full.device.supplyChainValidationStatus){
|
||||
case "PASS":
|
||||
html= '<img src="${passIcon}" title="${passText}">';
|
||||
@ -80,11 +80,11 @@
|
||||
render: function (data, type, full, meta) {
|
||||
//Display issued attestation certificate
|
||||
if(full.IssuedAttestationCertificate === undefined) return '';
|
||||
var size = full.IssuedAttestationCertificate.length;
|
||||
var html = '';
|
||||
let size = full.IssuedAttestationCertificate.length;
|
||||
let html = '';
|
||||
|
||||
for(var i = 0; i < size; i++) {
|
||||
var id = full.IssuedAttestationCertificate[i].id;
|
||||
for(let i = 0; i < size; i++) {
|
||||
let id = full.IssuedAttestationCertificate[i].id;
|
||||
html += certificateDetailsLink('issued', id, false);
|
||||
}
|
||||
|
||||
@ -98,11 +98,11 @@
|
||||
render: function (data, type, full, meta) {
|
||||
//Display platform credential
|
||||
if(full.PlatformCredential === undefined) return '';
|
||||
var size = full.PlatformCredential.length;
|
||||
var html = '';
|
||||
let size = full.PlatformCredential.length;
|
||||
let html = '';
|
||||
|
||||
for(var i = 0; i < size; i++) {
|
||||
var id = full.PlatformCredential[i].id;
|
||||
for(let i = 0; i < size; i++) {
|
||||
let id = full.PlatformCredential[i].id;
|
||||
html += certificateDetailsLink('platform', id, false) + ' ';
|
||||
}
|
||||
|
||||
@ -116,11 +116,11 @@
|
||||
render: function (data, type, full, meta) {
|
||||
//Display endorsement credential
|
||||
if(full.EndorsementCredential === undefined) return '';
|
||||
var size = full.EndorsementCredential.length;
|
||||
var html = '';
|
||||
let size = full.EndorsementCredential.length;
|
||||
let html = '';
|
||||
|
||||
for(var i = 0; i < size; i++) {
|
||||
var id = full.EndorsementCredential[i].id;
|
||||
for(let i = 0; i < size; i++) {
|
||||
let id = full.EndorsementCredential[i].id;
|
||||
html += certificateDetailsLink('endorsement', id, false) +' ';
|
||||
}
|
||||
|
||||
|
@ -46,8 +46,8 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath +'/list';
|
||||
var columns = [
|
||||
let url = pagePath +'/list';
|
||||
let columns = [
|
||||
{
|
||||
data: 'deviceName',
|
||||
render: function (data, type, full, meta) {
|
||||
@ -82,7 +82,7 @@
|
||||
// Set up a delete icon with link to handleDeleteRequest().
|
||||
// sets up a hidden input field containing the ID which is
|
||||
// used as a parameter to the REST POST call to delete
|
||||
var html = '';
|
||||
let html = '';
|
||||
html += certificateDetailsLink('endorsement', full.id, true);
|
||||
html += certificateDownloadLink(full.id, pagePath);
|
||||
html += certificateDeleteLink(full.id, pagePath);
|
||||
|
@ -42,8 +42,8 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath +'/list';
|
||||
var columns = [
|
||||
let url = pagePath +'/list';
|
||||
let columns = [
|
||||
{data: 'issuer'},
|
||||
{data: 'subject'},
|
||||
{
|
||||
@ -68,7 +68,7 @@
|
||||
// Set up a delete icon with link to handleDeleteRequest().
|
||||
// sets up a hidden input field containing the ID which is
|
||||
// used as a parameter to the REST POST call to delete
|
||||
var html = '';
|
||||
let html = '';
|
||||
html += certificateDetailsLink('idevid', full.id, true);
|
||||
html += certificateDownloadLink(full.id, pagePath);
|
||||
html += certificateDeleteLink(full.id, pagePath);
|
||||
|
@ -42,8 +42,8 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath + '/list';
|
||||
var columns = [
|
||||
let url = pagePath + '/list';
|
||||
let columns = [
|
||||
{
|
||||
data: 'deviceName',
|
||||
render: function (data, type, full, meta) {
|
||||
@ -83,10 +83,10 @@
|
||||
searchable:false,
|
||||
render: function (data, type, full, meta) {
|
||||
//Display endorsement credential
|
||||
var html = '';
|
||||
let html = '';
|
||||
if (full.endorsementCredential !== undefined
|
||||
&& full.endorsementCredential !== null){
|
||||
var id = full.endorsementCredential.id;
|
||||
let id = full.endorsementCredential.id;
|
||||
html += certificateDetailsLink('endorsement', id, false) +' ';
|
||||
}
|
||||
return html;
|
||||
@ -98,13 +98,13 @@
|
||||
searchable:false,
|
||||
render: function (data, type, full, meta) {
|
||||
//Display platform credential
|
||||
var html = '';
|
||||
let html = '';
|
||||
if (full.platformCredentials !== undefined
|
||||
&& full.platformCredentials !== null) {
|
||||
var size = full.platformCredentials.length;
|
||||
let size = full.platformCredentials.length;
|
||||
|
||||
for(var i = 0; i < size; i++) {
|
||||
var id = full.platformCredentials[i].id;
|
||||
for(let i = 0; i < size; i++) {
|
||||
let id = full.platformCredentials[i].id;
|
||||
html += certificateDetailsLink('platform', id, false) +' ';
|
||||
}
|
||||
}
|
||||
@ -118,7 +118,7 @@
|
||||
searchable:false,
|
||||
render: function(data, type, full, meta) {
|
||||
// set up link to details page
|
||||
var html = '';
|
||||
let html = '';
|
||||
html += certificateDetailsLink('issued', full.id, true);
|
||||
html += certificateDownloadLink(full.id, pagePath);
|
||||
html += certificateDeleteLink(full.id, pagePath);
|
||||
|
@ -51,8 +51,8 @@
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath +'/list';
|
||||
var columns = [
|
||||
let url = pagePath +'/list';
|
||||
let columns = [
|
||||
{
|
||||
data: 'deviceName',
|
||||
render: function (data, type, full, meta) {
|
||||
@ -96,9 +96,9 @@
|
||||
render: function (data, type, full, meta) {
|
||||
//Display endorsement credential
|
||||
if(full.endorsementCredential === null) return '';
|
||||
var html = '';
|
||||
let html = '';
|
||||
|
||||
var id = full.endorsementCredential.id;
|
||||
let id = full.endorsementCredential.id;
|
||||
html = certificateDetailsLink('endorsement', id, false) +' ';
|
||||
|
||||
return html;
|
||||
@ -112,7 +112,7 @@
|
||||
// Set up a delete icon with link to handleDeleteRequest().
|
||||
// sets up a hidden input field containing the ID which is
|
||||
// used as a parameter to the REST POST call to delete
|
||||
var html = '';
|
||||
let html = '';
|
||||
html += certificateDetailsLink('platform', full.id, true);
|
||||
html += certificateDownloadLink(full.id, pagePath);
|
||||
html += certificateDeleteLink(full.id, pagePath);
|
||||
|
@ -45,8 +45,8 @@
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath +'/list';
|
||||
var columns = [
|
||||
let url = pagePath +'/list';
|
||||
let columns = [
|
||||
{data: 'tagId'},
|
||||
{data: 'rimType'},
|
||||
{data: 'platformManufacturer'},
|
||||
@ -60,7 +60,7 @@
|
||||
// Set up a delete icon with link to handleDeleteRequest().
|
||||
// sets up a hidden input field containing the ID which is
|
||||
// used as a parameter to the REST POST call to delete
|
||||
var html = '';
|
||||
let html = '';
|
||||
html += rimDetailsLink(full.id);
|
||||
html += rimDownloadLink(full.id, pagePath);
|
||||
html += rimDeleteLink(full.id, pagePath);
|
||||
|
@ -34,8 +34,8 @@
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath +'/list';
|
||||
var columns = [
|
||||
let url = pagePath +'/list';
|
||||
let columns = [
|
||||
{data: 'manufacturer',
|
||||
orderable: true,
|
||||
searchable:false},
|
||||
|
@ -597,7 +597,7 @@
|
||||
<script>
|
||||
function eventSearch(txtInput) {
|
||||
// Declare variables
|
||||
var input, filter, table, tr, td, i, txtValue, txtFound;
|
||||
let input, filter, table, tr, td, i, txtValue, txtFound;
|
||||
|
||||
if (txtInput === null) {
|
||||
input = document.getElementById("eventInput");
|
||||
@ -635,14 +635,14 @@
|
||||
}
|
||||
window.onload = function () {
|
||||
// Constant retrieved from server-side via JSP
|
||||
var maxRows = 11;
|
||||
let maxRows = 11;
|
||||
|
||||
var table = document.getElementById('eventLog');
|
||||
var wrapper = table.parentNode;
|
||||
var rowsInTable = table.rows.length;
|
||||
var height = 0;
|
||||
let table = document.getElementById('eventLog');
|
||||
let wrapper = table.parentNode;
|
||||
let rowsInTable = table.rows.length;
|
||||
let height = 0;
|
||||
if (rowsInTable > maxRows) {
|
||||
for (var i = 0; i < maxRows; i++) {
|
||||
for (let i = 0; i < maxRows; i++) {
|
||||
height += table.rows[i].clientHeight;
|
||||
}
|
||||
wrapper.style.height = height + "px";
|
||||
|
@ -96,8 +96,8 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var url = pagePath +'/list';
|
||||
var signature = ${acaCertData.signature};
|
||||
let url = pagePath +'/list';
|
||||
let signature = ${acaCertData.signature};
|
||||
|
||||
//Format validity time
|
||||
$("#validity span").each(function(){
|
||||
@ -109,11 +109,11 @@
|
||||
|
||||
<c:if test="${not empty acaCertData.encodedPublicKey}">
|
||||
//Change publick key byte to hex
|
||||
var publicKey = ${acaCertData.encodedPublicKey};
|
||||
let publicKey = ${acaCertData.encodedPublicKey};
|
||||
$("#encodedPublicKey").html(byteToHexString(publicKey));
|
||||
</c:if>
|
||||
|
||||
var columns = [
|
||||
let columns = [
|
||||
{data: 'issuer'},
|
||||
{data: 'subject'},
|
||||
{
|
||||
@ -138,7 +138,7 @@
|
||||
// Set up a delete icon with link to handleDeleteRequest().
|
||||
// sets up a hidden input field containing the ID which is
|
||||
// used as a parameter to the REST POST call to delete
|
||||
var html = '';
|
||||
let html = '';
|
||||
html += certificateDetailsLink('certificateauthority', full.id, true);
|
||||
html += certificateDownloadLink(full.id, pagePath);
|
||||
html += certificateDeleteLink(full.id, pagePath);
|
||||
|
@ -57,18 +57,18 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
var url = portal + '/validation-reports/list';
|
||||
var columns = [
|
||||
let url = portal + '/validation-reports/list';
|
||||
let columns = [
|
||||
{
|
||||
data: 'overallValidationResult',
|
||||
searchable: false,
|
||||
render: function (data, type, full, meta) {
|
||||
var html = '';
|
||||
var unknownStatus = '<img class="icon" src="${unknownIcon}" title="${unknownText}"/>';
|
||||
let html = '';
|
||||
let unknownStatus = '<img class="icon" src="${unknownIcon}" title="${unknownText}"/>';
|
||||
|
||||
// create status icon
|
||||
var result = full.overallValidationResult;
|
||||
var overallMessage = full.message;
|
||||
let result = full.overallValidationResult;
|
||||
let overallMessage = full.message;
|
||||
if (result) {
|
||||
switch (result) {
|
||||
case "PASS":
|
||||
@ -135,21 +135,21 @@
|
||||
];
|
||||
|
||||
//Set data tables
|
||||
var dataTable = setDataTables("#reportTable", url, columns);
|
||||
let dataTable = setDataTables("#reportTable", url, columns);
|
||||
dataTable.order([1, 'desc']).draw(); //order by createTime
|
||||
});
|
||||
|
||||
$("#download").submit(function(e) {
|
||||
var tableLength = $("#reportTable").rows;
|
||||
var createTimes = "";
|
||||
var deviceNames = "";
|
||||
let tableLength = $("#reportTable").rows;
|
||||
let createTimes = "";
|
||||
let deviceNames = "";
|
||||
$('#reportTable tr').not('thead tr').each(function() {
|
||||
createTimes += $(this).find("td").eq(1).html() + ",";
|
||||
deviceNames += $(this).find("td").eq(2).html() + ",";
|
||||
});
|
||||
createTimes = createTimes.substring(0, createTimes.length - 1);
|
||||
deviceNames = deviceNames.substring(0, deviceNames.length - 1);
|
||||
var params = [
|
||||
let params = [
|
||||
{
|
||||
name: 'createTimes',
|
||||
value: createTimes
|
||||
@ -178,16 +178,16 @@
|
||||
* string is returned (and no icon will be displayed).
|
||||
*/
|
||||
function getValidationDisplayHtml(full, validation_type) {
|
||||
var html = '';
|
||||
let html = '';
|
||||
// loop through all the validations, looking for the one matching
|
||||
// the validation_type.
|
||||
for (var i = 0; i < full.validations.length; i++) {
|
||||
var curValidation = full.validations[i];
|
||||
var curResult = curValidation.validationResult;
|
||||
var curMessage = curValidation.message;
|
||||
for (let i = 0; i < full.validations.length; i++) {
|
||||
let curValidation = full.validations[i];
|
||||
let curResult = curValidation.validationResult;
|
||||
let curMessage = curValidation.message;
|
||||
|
||||
if (curValidation.validationType === validation_type) {
|
||||
var unknownStatus = '<img class="icon" src="${unknownIcon}" title="${unknownText}"/>';
|
||||
let unknownStatus = '<img class="icon" src="${unknownIcon}" title="${unknownText}"/>';
|
||||
|
||||
// display appropriate icon based on result
|
||||
if (curResult) {
|
||||
@ -195,7 +195,7 @@
|
||||
// if this validation is associated with a certificate,
|
||||
// link to the details page
|
||||
if (curValidation.certificatesUsed.length > 0) {
|
||||
var certType = '';
|
||||
let certType = '';
|
||||
switch (validation_type) {
|
||||
case "PLATFORM_CREDENTIAL":
|
||||
case "PLATFORM_CREDENTIAL_ATTRIBUTES":
|
||||
|
@ -5,7 +5,7 @@ After=network.target
|
||||
[Service]
|
||||
User=root
|
||||
Group=root
|
||||
ExecStart=/usr/bin/bash /opt/hirs/aca/scripts/aca/aca_bootRun.sh -w
|
||||
ExecStart=/usr/bin/bash /opt/hirs/aca/scripts/aca/aca_bootRun.sh -d -w
|
||||
SuccessExitStatus=0
|
||||
Restart=always
|
||||
RestartSec=60
|
||||
|
Loading…
x
Reference in New Issue
Block a user