From 6cc5c04c1f4e28dd5c3a9747e659c81798dfd15d Mon Sep 17 00:00:00 2001 From: dgghinea-axway Date: Mon, 17 Feb 2025 14:33:23 +0200 Subject: [PATCH] APIGOV-29554 - use updated scripts --- scripts/apiserver/apiserver_generate.sh | 3 +- scripts/apiserver/generate.js | 41 ++++++++++++++++++++----- scripts/apiserver/modify_models.sh | 1 - 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/scripts/apiserver/apiserver_generate.sh b/scripts/apiserver/apiserver_generate.sh index 15752a148..713c81826 100755 --- a/scripts/apiserver/apiserver_generate.sh +++ b/scripts/apiserver/apiserver_generate.sh @@ -14,12 +14,13 @@ cd ${cwd} if [ -z "${PROTOCOL}" ]; then export PROTOCOL=https; fi if [ -z "${HOST}" ]; then export HOST=apicentral.axway.com; fi if [ -z "${PORT}" ]; then export PORT=443; fi +if [ -z "${DEBUG}" ]; then export DEBUG="false"; fi # set the environment vars export GO_POST_PROCESS_FILE="`command -v gofmt` -w" export GO111MODULE=on -if node ./generate.js ${PROTOCOL} ${HOST} ${PORT}; then +if node ./generate.js ${PROTOCOL} ${HOST} ${PORT} ${DEBUG}; then # update all go imports goimports -w=true ${OUTDIR} diff --git a/scripts/apiserver/generate.js b/scripts/apiserver/generate.js index 7b7436659..7d6e50019 100644 --- a/scripts/apiserver/generate.js +++ b/scripts/apiserver/generate.js @@ -19,6 +19,7 @@ const https = require("https"); const http = require("http"); const fs = require("fs"); const { exit } = require("process"); +const { version } = require("os"); const outDir = process.env.OUTDIR; const clientsPath = outDir + "/clients/"; @@ -26,8 +27,13 @@ const modelsPath = outDir + "/models/"; const resourcesTmplPath = "resources.tmpl"; const clientsTmplPath = "clients.tmpl"; +var isDebug = false; + +function parseBool(val) { return val === true || val === "true" } + const fetch = () => { - const [, , protocol, host, port] = process.argv; + const [, , protocol, host, port, debug] = process.argv; + isDebug = parseBool(debug); if (!protocol || !host || !port) { throw new Error( "Protocol, host, and port are required. Ex: node generate.js https apicentral.axway.com 443", @@ -67,9 +73,11 @@ fetch() process.exit(1); } const [subResources, mainResources] = createMainAndSubResources(resources); - // uncomment to see how the resources are grouped - //fs.writeFileSync(outDir + '/sub-resources.json', JSON.stringify(subResources)); - //fs.writeFileSync(outDir + '/main-resources.json', JSON.stringify(mainResources)); + + if (isDebug) { + fs.writeFileSync(outDir + '/sub-resources.json', JSON.stringify(subResources)); + fs.writeFileSync(outDir + '/main-resources.json', JSON.stringify(mainResources)); + } delete subResources.api; // the api resources are common resources, and have been written manually. writeSubResources(subResources); writeMainResources(mainResources); @@ -90,9 +98,26 @@ const writeSubResources = (subResources) => { for (let versionKey in groupObj) { // stringify the group and version data, update all references to drop group and version within path const data = JSON.stringify(groupObj[versionKey]).replaceAll(`components/schemas/${groupKey}.${versionKey}.`, `components/schemas/`); - const res = execSync( - `openapi-generator-cli generate -g go -i /dev/stdin --package-name ${groupKey} --output ${modelsPath}${groupKey}/${versionKey} --global-property modelDocs=false,models << 'EOF'\n${data}\nEOF` - ); + const fn =`${groupKey}-${versionKey}.json`; + fs.writeFileSync(fn, data) + + console.log(`generating from ${fn}`); + try { + if (isDebug) { + const res1 = execSync(`openapi-generator-cli validate -i ${fn}`); + console.log(res1.toString()); + } + const res = execSync(`openapi-generator-cli generate -g go -i ${fn} --package-name ${groupKey} --output ${modelsPath}${groupKey}/${versionKey} --global-property modelDocs=false,models`); + + if (isDebug) { + console.log(res.toString()); + } else { + fs.unlinkSync(fn) + } + } catch (error) { + console.error(error.message) + throw error + } } } }; @@ -283,4 +308,4 @@ const writeSet = (resources) => { `gomplate --context input='stdin:?type=application/json' -f ./set.tmpl --out "` + outDir + `/clients/set.go"`, { input: setInput } ); -}; +}; \ No newline at end of file diff --git a/scripts/apiserver/modify_models.sh b/scripts/apiserver/modify_models.sh index 84bb27ef9..df343e758 100755 --- a/scripts/apiserver/modify_models.sh +++ b/scripts/apiserver/modify_models.sh @@ -231,7 +231,6 @@ MODELS=`find ${OUTDIR}/models -type f -name "*.go" \ ! -name 'AmplifyRuntimeConfig.go' \ ! -name 'AssetMapping.go' \ ! -name 'DiscoveryAgent.go' \ - ! -name 'GovernanceAgent.go' \ ! -name 'TraceabilityAgent.go'` SEARCH="\s*Status.*\s*\`json:\"status\"\`$"