Skip to content

Commit

Permalink
merge master
Browse files Browse the repository at this point in the history
  • Loading branch information
alexmcdermid committed Sep 9, 2024
2 parents b69439a + fcaac00 commit 9d54c45
Show file tree
Hide file tree
Showing 10 changed files with 140 additions and 112 deletions.
192 changes: 96 additions & 96 deletions .github/workflows/deploy-to.openshift-dev-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,99 +212,99 @@ jobs:
with:
target: 'https://${{ env.HOST_ROUTE }}'

# deploy-test:
# name: Deploy to TEST
# needs: build-and-deploy-dev
# runs-on: ubuntu-22.04
# environment: test
#
# outputs:
# ROUTE: ${{ steps.deploy-and-expose.outputs.route }}
# SELECTOR: ${{ steps.deploy-and-expose.outputs.selector }}
#
# steps:
# - name: Check for required secrets
# uses: actions/github-script@v6
# with:
# script: |
# const secrets = {
# OPENSHIFT_SERVER: `${{ secrets.OPENSHIFT_SERVER }}`,
# OPENSHIFT_TOKEN: `${{ secrets.OPENSHIFT_TOKEN }}`,
# };
#
# const GHCR = "ghcr.io";
# if (`${{ env.IMAGE_REGISTRY }}`.startsWith(GHCR)) {
# core.info(`Image registry is ${GHCR} - no registry password required`);
# }
# else {
# core.info("A registry password is required");
# secrets["IMAGE_REGISTRY_PASSWORD"] = `${{ secrets.IMAGE_REGISTRY_PASSWORD }}`;
# }
#
# const missingSecrets = Object.entries(secrets).filter(([ name, value ]) => {
# if (value.length === 0) {
# core.error(`Secret "${name}" is not set`);
# return true;
# }
# core.info(`✔️ Secret "${name}" is set`);
# return false;
# });
#
# if (missingSecrets.length > 0) {
# core.setFailed(`❌ At least one required secret is not set in the repository. \n` +
# "You can add it using:\n" +
# "GitHub UI: https://docs.github.com/en/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository \n" +
# "GitHub CLI: https://cli.github.com/manual/gh_secret_set \n" +
# "Also, refer to https://github.com/redhat-actions/oc-login#getting-started-with-the-action-or-see-example");
# }
# else {
# core.info(`✅ All the required secrets are set`);
# }
#
# - name: Check out repository
# uses: actions/checkout@v3
#
# - name: Install oc
# uses: redhat-actions/openshift-tools-installer@v1
# with:
# oc: 4
#
# # https://github.com/redhat-actions/oc-login#readme
# - uses: actions/checkout@v3
# - name: Deploy
# run: |
# set -eux
# # Login to OpenShift and select project
# oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }}
# oc project ${{ env.OPENSHIFT_NAMESPACE_TEST }}
# # Cancel any rollouts in progress
# oc rollout cancel dc/${{ env.IMAGE_NAME }} 2> /dev/null \
# || true && echo "No rollout in progress"
#
# oc tag ${{ env.NAMESPACE }}-dev/${{ env.REPO_NAME }}-frontend-static:latest ${{ env.NAMESPACE }}-test/${{ env.REPO_NAME }}-frontend-static:latest
# oc tag ${{ env.NAMESPACE }}-dev/${{ env.REPO_NAME }}-backend-${{ env.BRANCH }}:latest ${{ env.NAMESPACE }}-test/${{ env.REPO_NAME }}-backend-${{ env.BRANCH }}:latest
#
# # Process and apply deployment template
# oc process -f tools/openshift/backend.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p BRANCH=${{ env.BRANCH }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS_TEST }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS_TEST }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\
# | oc apply -f -
#
# # Process and apply deployment template
# oc process -f tools/openshift/frontend-static.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p BRANCH=${{ env.BRANCH }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS_TEST }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS_TEST }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\
# | oc apply -f -
#
# curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/master/tools/config/update-configmap.sh | bash /dev/stdin test ${{ env.APP_NAME }} ${{ env.NAMESPACE }} ${{ env.COMMON_NAMESPACE }} ${{ env.EDX_NAMESPACE }} ${{ env.SPLUNK_TOKEN }}
#
# # Start rollout (if necessary) and follow it
# oc rollout latest dc/${{ env.IMAGE_NAME }} 2> /dev/null \
# || true && echo "Rollout in progress"
#
# oc rollout latest dc/${{ env.APP_NAME_FRONTEND_MASTER }} 2> /dev/null \
# || true && echo "Rollout in progress"
# oc logs -f dc/${{ env.IMAGE_NAME }}
# # Get status, returns 0 if rollout is successful
# oc rollout status dc/${{ env.IMAGE_NAME }}
#
# - name: ZAP Scan
# uses: zaproxy/[email protected]
# with:
# target: 'https://${{ env.HOST_ROUTE }}'
deploy-test:
name: Deploy to TEST
needs: build-and-deploy-dev
runs-on: ubuntu-22.04
environment: test

outputs:
ROUTE: ${{ steps.deploy-and-expose.outputs.route }}
SELECTOR: ${{ steps.deploy-and-expose.outputs.selector }}

steps:
- name: Check for required secrets
uses: actions/github-script@v6
with:
script: |
const secrets = {
OPENSHIFT_SERVER: `${{ secrets.OPENSHIFT_SERVER }}`,
OPENSHIFT_TOKEN: `${{ secrets.OPENSHIFT_TOKEN }}`,
};
const GHCR = "ghcr.io";
if (`${{ env.IMAGE_REGISTRY }}`.startsWith(GHCR)) {
core.info(`Image registry is ${GHCR} - no registry password required`);
}
else {
core.info("A registry password is required");
secrets["IMAGE_REGISTRY_PASSWORD"] = `${{ secrets.IMAGE_REGISTRY_PASSWORD }}`;
}
const missingSecrets = Object.entries(secrets).filter(([ name, value ]) => {
if (value.length === 0) {
core.error(`Secret "${name}" is not set`);
return true;
}
core.info(`✔️ Secret "${name}" is set`);
return false;
});
if (missingSecrets.length > 0) {
core.setFailed(`❌ At least one required secret is not set in the repository. \n` +
"You can add it using:\n" +
"GitHub UI: https://docs.github.com/en/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository \n" +
"GitHub CLI: https://cli.github.com/manual/gh_secret_set \n" +
"Also, refer to https://github.com/redhat-actions/oc-login#getting-started-with-the-action-or-see-example");
}
else {
core.info(`✅ All the required secrets are set`);
}
- name: Check out repository
uses: actions/checkout@v3

- name: Install oc
uses: redhat-actions/openshift-tools-installer@v1
with:
oc: 4

# https://github.com/redhat-actions/oc-login#readme
- uses: actions/checkout@v3
- name: Deploy
run: |
set -eux
# Login to OpenShift and select project
oc login --token=${{ env.OPENSHIFT_TOKEN }} --server=${{ env.OPENSHIFT_SERVER }}
oc project ${{ env.OPENSHIFT_NAMESPACE_TEST }}
# Cancel any rollouts in progress
oc rollout cancel dc/${{ env.IMAGE_NAME }} 2> /dev/null \
|| true && echo "No rollout in progress"
oc tag ${{ env.NAMESPACE }}-dev/${{ env.REPO_NAME }}-frontend-static:latest ${{ env.NAMESPACE }}-test/${{ env.REPO_NAME }}-frontend-static:latest
oc tag ${{ env.NAMESPACE }}-dev/${{ env.REPO_NAME }}-backend-${{ env.BRANCH }}:latest ${{ env.NAMESPACE }}-test/${{ env.REPO_NAME }}-backend-${{ env.BRANCH }}:latest
# Process and apply deployment template
oc process -f tools/openshift/backend.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p BRANCH=${{ env.BRANCH }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS_TEST }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS_TEST }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\
| oc apply -f -
# Process and apply deployment template
oc process -f tools/openshift/frontend-static.dc.yaml -p APP_NAME=${{ env.APP_NAME }} -p REPO_NAME=${{ env.REPO_NAME }} -p BRANCH=${{ env.BRANCH }} -p NAMESPACE=${{ env.OPENSHIFT_NAMESPACE_TEST }} -p TAG=${{ env.TAG }} -p MIN_REPLICAS=${{ env.MIN_REPLICAS_TEST }} -p MAX_REPLICAS=${{ env.MAX_REPLICAS_TEST }} -p MIN_CPU=${{ env.MIN_CPU }} -p MAX_CPU=${{ env.MAX_CPU }} -p MIN_MEM=${{ env.MIN_MEM }} -p MAX_MEM=${{ env.MAX_MEM }} -p HOST_ROUTE=${{ env.HOST_ROUTE }}\
| oc apply -f -
curl -s https://raw.githubusercontent.com/bcgov/${{ env.REPO_NAME }}/master/tools/config/update-configmap.sh | bash /dev/stdin test ${{ env.APP_NAME }} ${{ env.NAMESPACE }} ${{ env.COMMON_NAMESPACE }} ${{ env.EDX_NAMESPACE }} ${{ env.SPLUNK_TOKEN }}
# Start rollout (if necessary) and follow it
oc rollout latest dc/${{ env.IMAGE_NAME }} 2> /dev/null \
|| true && echo "Rollout in progress"
oc rollout latest dc/${{ env.APP_NAME_FRONTEND_MASTER }} 2> /dev/null \
|| true && echo "Rollout in progress"
oc logs -f dc/${{ env.IMAGE_NAME }}
# Get status, returns 0 if rollout is successful
oc rollout status dc/${{ env.IMAGE_NAME }}
- name: ZAP Scan
uses: zaproxy/[email protected]
with:
target: 'https://${{ env.HOST_ROUTE }}'
2 changes: 1 addition & 1 deletion backend/src/components/edx/exchange.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ async function getExchangesPaginated(req, res) {
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(criteria),
}
};
Expand Down
8 changes: 4 additions & 4 deletions backend/src/components/institute/institute.js
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ async function getStudentRegistrationContactByMincode(req, res) {
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(schoolSearchCriteria)
}
};
Expand Down Expand Up @@ -958,7 +958,7 @@ async function getSchoolsPaginated(req, res){
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(schoolSearchCriteria)
}
};
Expand Down Expand Up @@ -1060,7 +1060,7 @@ async function getSchoolHistoryPaginated(req, res) {
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(historySearchCriteria)
}
};
Expand Down Expand Up @@ -1262,7 +1262,7 @@ async function getAuthoritiesPaginated(req, res){
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(authoritySearchCriteria)
}
};
Expand Down
4 changes: 2 additions & 2 deletions backend/src/components/ministrySDCReports.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ const { logApiError, errorResponse, getData } = require('./utils');
const config = require('../config/index');
const HttpStatus = require('http-status-codes');
let reportTypes = ['indy-inclusive-ed-enrollment-headcounts', 'school-enrollment-headcounts', 'indy-school-enrollment-headcounts', 'school-address-report', 'fsa-registration-report',
'offshore-enrollment-headcounts', 'offshore-languages-headcounts', 'inclusive-education-variance-headcounts'];
'offshore-enrollment-headcounts', 'offshore-languages-headcounts', 'indy-inclusive-ed-funding-headcounts', 'inclusive-education-variance-headcounts'];

async function getMinistrySDCReport(req, res) {
try {
Expand Down Expand Up @@ -49,7 +49,7 @@ function getFileDetails(reportType) {
'fsa-registration-report': { filename: 'FsaRegistrationReport.csv', contentType: 'text/csv' },
'offshore-enrollment-headcounts': { filename: 'OffshoreSchoolsHeadcounts.csv', contentType: 'text/csv' },
'offshore-languages-headcounts': { filename: 'OffshoreSpokenLanguageHeadcounts.csv', contentType: 'text/csv' },
'inclusive-education-variance-headcounts': { filename: 'InclusiveEducationVarianceHeadcounts.csv', contentType: 'text/csv' },
'indy-inclusive-ed-funding-headcounts': { filename: 'IndependentSchoolsInclusiveEdFundingHeadcounts.csv', contentType: 'text/csv' },
'DEFAULT': { filename: 'download.pdf', contentType: 'application/pdf' }
};
return mappings[reportType] || mappings['DEFAULT'];
Expand Down
15 changes: 13 additions & 2 deletions backend/src/components/penRequests.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,20 @@ async function findPenRequestsByPen(req, res) {
try {
let yearAgo = LocalDateTime.now().minus(1, ChronoUnit.YEARS);
let now = LocalDateTime.now();
const url = `${config.get('server:penRequest:rootURL')}/paginated?pageNumber=0&pageSize=200&searchCriteriaList=[{"key":"initialSubmitDate","operation":"btn","value":"${yearAgo},${now}","valueType":"DATE_TIME"},{"key":"pen","operation":"eq","value":"${req.query.pen}","valueType":"STRING"}]}]`
let searchCriteriaList = [];
searchCriteriaList.push({key:'initialSubmitDate',operation:'btn',value:`${yearAgo},${now}`,valueType:'DATE_TIME'});
searchCriteriaList.push({key:'pen',operation:'eq',value:`${req.query.pen}`,valueType:'STRING'});
const params = {
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(searchCriteriaList)
}
};
const url = `${config.get('server:penRequest:rootURL')}/paginated`;

const response = await getData(url);
const response = await getData(url, params);
return res.status(200).json(response.numberOfElements);
} catch (e) {
logApiError(e, 'findPenRequestsByPen', 'Failed to get pen requests for the given pen.');
Expand Down
2 changes: 1 addition & 1 deletion backend/src/components/requests.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ function getAllRequests(requestType) {
params: {
pageNumber: req.query.pageNumber,
pageSize: req.query.pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(searchListCriteria)
}
};
Expand Down
4 changes: 2 additions & 2 deletions backend/src/components/studentSearch.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ async function searchStudent(req, res) {
const params = {
params: {
pageNumber: req.query.pageNumber,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(search)
}
};
Expand Down Expand Up @@ -137,7 +137,7 @@ async function getStudentHistoryByStudentID(req, res) {
params: {
pageSize: req.query.pageSize <= 20 ? req.query.pageSize : 20,
pageNumber: req.query.pageNumber,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
}
};

Expand Down
2 changes: 1 addition & 1 deletion backend/src/components/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ function getPaginatedListForSCGroups(apiName, url, handleResponse) {
params: {
pageNumber: req.query.pageNumber,
pageSize,
sort: req.query.sort,
sort: JSON.stringify(req.query.sort),
searchCriteriaList: JSON.stringify(req.query.searchQueries)
}
};
Expand Down
17 changes: 14 additions & 3 deletions frontend/src/components/data-collection/Reports.vue
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,29 @@ export default {
data() {
return {
reportView: null,
publicReports: SDC_REPORTS.publicReports,
independentReports: SDC_REPORTS.independentReports,
headcountsReports: SDC_REPORTS.headcountReports
publicReports: [],
independentReports: [],
headcountsReports: []
};
},
computed: {
...mapState(authStore, ['userInfo'])
},
created() {
this.setOriginalReportTab();
this.publicReports = this.getActiveReports(SDC_REPORTS.publicReports);
this.independentReports = this.getActiveReports(SDC_REPORTS.independentReports);
this.headcountsReports = this.getActiveReports(SDC_REPORTS.headcountReports);
},
methods: {
getActiveReports(reports){
return reports.filter(report => {
if(report.onlyForCollection && !report.onlyForCollection.includes(this.collectionObject.collectionTypeCode)){
return false;
}
return true;
});
},
setOriginalReportTab(){
if(this.hasAccessToPublicReports()){
this.reportView = 'publicReports';
Expand Down
6 changes: 6 additions & 0 deletions frontend/src/utils/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,12 @@ export const SDC_REPORTS = Object.freeze(
url: object.SDC_MINISTRY_REPORTS + '/headcount/indy-inclusive-ed-enrollment-headcounts/',
csvDownloadURL: object.SDC_MINISTRY_REPORTS + '/download/headcount/indy-inclusive-ed-enrollment-headcounts/'
},
{
label: 'Independent School Inclusive Education Funding Headcounts',
url: object.SDC_MINISTRY_REPORTS + '/headcount/indy-inclusive-ed-funding-headcounts/',
csvDownloadURL: object.SDC_MINISTRY_REPORTS + '/download/headcount/indy-inclusive-ed-funding-headcounts/',
onlyForCollection: ['FEBRUARY']
},
{
label: 'Offshore School Enrolment Headcounts',
url: object.SDC_MINISTRY_REPORTS + '/headcount/offshore-enrollment-headcounts/',
Expand Down

0 comments on commit 9d54c45

Please sign in to comment.