account-lookup-service 15.5.0-iso.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.circleci/config.yml +11 -0
- package/.ncurc.yaml +6 -0
- package/.nvmrc +1 -0
- package/.nycrc.yml +20 -0
- package/.versionrc +15 -0
- package/CHANGELOG.md +330 -0
- package/CODEOWNERS +38 -0
- package/Dockerfile +45 -0
- package/LICENSE.md +10 -0
- package/README.md +252 -0
- package/audit-ci.jsonc +32 -0
- package/audit-resolve.json +161 -0
- package/config/default.json +109 -0
- package/config/knexfile.js +21 -0
- package/docker/account-lookup-service/default.json +106 -0
- package/docker/account-lookup-service/make-default-json.sh +5 -0
- package/docker/account-lookup-service/override.json +15 -0
- package/docker/central-ledger/default.json +458 -0
- package/docker/config-modifier/account-lookup-service.js +31 -0
- package/docker/kafka/consumer.properties +26 -0
- package/docker/kafka/producer.properties +45 -0
- package/docker/kafka/server.properties +143 -0
- package/docker/kafka/tools-log4j.properties +21 -0
- package/docker/mock-proxy/Dockerfile +15 -0
- package/docker/mock-proxy/package-lock.json +4986 -0
- package/docker/mock-proxy/package.json +24 -0
- package/docker/mock-proxy/src/config.ts +14 -0
- package/docker/mock-proxy/src/server.ts +94 -0
- package/docker/mock-proxy/src/utils.ts +29 -0
- package/docker/mock-proxy/tsconfig.json +24 -0
- package/docker/sql-init/01_permissions.sql +2 -0
- package/docker/sql-init-central-ledger/01_permissions.sql +2 -0
- package/docker/wait-for/wait-for-account-lookup-service.sh +10 -0
- package/docker/wait-for/wait-for-central-ledger.sh +11 -0
- package/docker/wait-for/wait-for-kafka.sh +7 -0
- package/docker/wait-for/wait-for-ml-api-adapter.sh +9 -0
- package/docker/wait-for/wait-for-mockserver.sh +20 -0
- package/docker/wait-for/wait-for-mysql-als.sh +14 -0
- package/docker/wait-for/wait-for-mysql-central-ledger.sh +11 -0
- package/docker/wait-for/wait-for-mysql.sh +11 -0
- package/docker/wait-for/wait-for-objstore.sh +12 -0
- package/docker/wait-for/wait-for.env +18 -0
- package/docker/wait-for/wait-for.sh +81 -0
- package/docker-compose.integration.yml +29 -0
- package/docker-compose.yml +243 -0
- package/jest-int.config.js +8 -0
- package/jest.config.js +16 -0
- package/jsdoc.json +38 -0
- package/migrations/01_currency.js +42 -0
- package/migrations/02_endpointType.js +43 -0
- package/migrations/03_endpointType-indexes.js +37 -0
- package/migrations/04_partyIdType.js +43 -0
- package/migrations/05_partyIdType-indexes.js +38 -0
- package/migrations/08_oracleEndpoint.js +51 -0
- package/migrations/09_oracleEndpoint-indexes.js +41 -0
- package/migrations/10_oracleEndpoint-remove-constraints.js +38 -0
- package/package.json +180 -0
- package/scripts/_wait4_all.js +143 -0
- package/scripts/test-functional.sh +76 -0
- package/secrets/jwsSigningKey.key +27 -0
- package/seeds/currency.js +765 -0
- package/seeds/endpointType.js +65 -0
- package/seeds/partyIdType.js +79 -0
- package/src/api/endpointcache.js +67 -0
- package/src/api/health.js +66 -0
- package/src/api/index.js +85 -0
- package/src/api/oracles/{ID}.js +100 -0
- package/src/api/oracles.js +96 -0
- package/src/api/participants/{ID}/error.js +44 -0
- package/src/api/participants/{ID}.js +44 -0
- package/src/api/participants/{Type}/{ID}/error.js +74 -0
- package/src/api/participants/{Type}/{ID}/{SubId}/error.js +68 -0
- package/src/api/participants/{Type}/{ID}/{SubId}.js +113 -0
- package/src/api/participants/{Type}/{ID}.js +133 -0
- package/src/api/participants.js +63 -0
- package/src/api/parties/{Type}/{ID}/error.js +66 -0
- package/src/api/parties/{Type}/{ID}/{SubId}/error.js +56 -0
- package/src/api/parties/{Type}/{ID}/{SubId}.js +77 -0
- package/src/api/parties/{Type}/{ID}.js +98 -0
- package/src/api/routes.js +294 -0
- package/src/constants.js +16 -0
- package/src/domain/oracle/index.js +33 -0
- package/src/domain/oracle/oracle.js +234 -0
- package/src/domain/participants/index.js +35 -0
- package/src/domain/participants/participants.js +560 -0
- package/src/domain/parties/getPartiesByTypeAndID.js +239 -0
- package/src/domain/parties/index.js +32 -0
- package/src/domain/parties/parties.js +215 -0
- package/src/domain/parties/utils.js +84 -0
- package/src/domain/timeout/dto.js +48 -0
- package/src/domain/timeout/index.js +104 -0
- package/src/handlers/TimeoutHandler.js +94 -0
- package/src/handlers/index.js +70 -0
- package/src/handlers/monitoring/index.js +51 -0
- package/src/handlers/monitoring/plugins/health.js +61 -0
- package/src/handlers/monitoring/plugins/metrics.js +48 -0
- package/src/handlers/register.js +102 -0
- package/src/index.js +66 -0
- package/src/interface/admin-swagger.yaml +804 -0
- package/src/interface/admin_swagger.json +959 -0
- package/src/interface/api-swagger-iso20022-parties.yaml +1734 -0
- package/src/interface/api-swagger.yaml +1733 -0
- package/src/interface/api_swagger.json +3046 -0
- package/src/interface/fspiop-rest-v2.0-ISO20022_parties.yaml +2256 -0
- package/src/interface/thirdparty/admin-swagger.yaml +808 -0
- package/src/interface/thirdparty/admin_swagger.json +961 -0
- package/src/interface/thirdparty/api-swagger.yaml +1739 -0
- package/src/interface/thirdparty/api_swagger.json +3142 -0
- package/src/lib/argv.js +39 -0
- package/src/lib/cache.js +126 -0
- package/src/lib/config.js +183 -0
- package/src/lib/db.js +26 -0
- package/src/lib/headers.js +53 -0
- package/src/lib/healthCheck/subServiceHealth.js +84 -0
- package/src/lib/index.js +11 -0
- package/src/lib/migrator.js +17 -0
- package/src/lib/requestLogger.js +54 -0
- package/src/lib/util.js +66 -0
- package/src/metrics/handler.js +33 -0
- package/src/metrics/plugin.js +52 -0
- package/src/metrics/routes.js +43 -0
- package/src/models/currency/currency.js +48 -0
- package/src/models/currency/index.js +32 -0
- package/src/models/endpointType/endpointType.js +48 -0
- package/src/models/endpointType/index.js +32 -0
- package/src/models/misc/migrationLock.js +49 -0
- package/src/models/oracle/facade.js +341 -0
- package/src/models/oracle/index.js +41 -0
- package/src/models/oracle/oracleEndpoint.js +192 -0
- package/src/models/oracle/oracleEndpointCached.js +108 -0
- package/src/models/participantEndpoint/facade.js +238 -0
- package/src/models/partyIdType/index.js +32 -0
- package/src/models/partyIdType/partyIdType.js +41 -0
- package/src/plugins.js +139 -0
- package/src/server.js +199 -0
- package/test/fixtures/index.js +131 -0
- package/test/fixtures/iso.js +110 -0
- package/test/integration/.env +8 -0
- package/test/integration/api/parties.test.js +137 -0
- package/test/integration/constants.js +20 -0
- package/test/integration/domain/oracle/index.test.js +324 -0
- package/test/integration/domain/timeout/index.test.js +75 -0
- package/test/integration/env.sh +15 -0
- package/test/integration/example.test.js +12 -0
- package/test/integration/models/currency/currency.test.js +68 -0
- package/test/integration/plugins.test.js +62 -0
- package/test/integration/prepareTestParticipants.js +30 -0
- package/test/integration/setup.js +5 -0
- package/test/integration-config.json +81 -0
- package/test/integration-runner.sh +108 -0
- package/test/unit/api/health.test.js +142 -0
- package/test/unit/api/oracles/{ID}.test.js +264 -0
- package/test/unit/api/oracles.test.js +173 -0
- package/test/unit/api/participants/participants.test.js +117 -0
- package/test/unit/api/participants/{Type}/{ID}/error.test.js +155 -0
- package/test/unit/api/participants/{Type}/{ID}/{SubId}/error.test.js +131 -0
- package/test/unit/api/participants/{Type}/{ID}/{SubId}.test.js +377 -0
- package/test/unit/api/participants/{Type}/{ID}.test.js +383 -0
- package/test/unit/api/participants.test.js +108 -0
- package/test/unit/api/parties/endpointcache.test.js +83 -0
- package/test/unit/api/parties/parties.test.js +102 -0
- package/test/unit/api/parties/{Type}/{ID}/error.test.js +145 -0
- package/test/unit/api/parties/{Type}/{ID}/{SubId}/error.test.js +141 -0
- package/test/unit/api/parties/{Type}/{ID}/{SubId}.test.js +241 -0
- package/test/unit/api/parties/{Type}/{ID}.test.js +240 -0
- package/test/unit/domain/oracle/oracle.test.js +505 -0
- package/test/unit/domain/participants/participants.test.js +1724 -0
- package/test/unit/domain/parties/parties.test.js +940 -0
- package/test/unit/domain/timeout/dto.test.js +28 -0
- package/test/unit/domain/timeout/index.test.js +81 -0
- package/test/unit/handlers/TimeoutHandler.test.js +125 -0
- package/test/unit/handlers/index.test.js +56 -0
- package/test/unit/handlers/register.test.js +90 -0
- package/test/unit/index.test.js +139 -0
- package/test/unit/iso20022/partiesValidation.test.js +129 -0
- package/test/unit/lib/TransformFacades.test.js +18 -0
- package/test/unit/lib/argv.test.js +40 -0
- package/test/unit/lib/cache.test.js +172 -0
- package/test/unit/lib/config.test.js +108 -0
- package/test/unit/lib/healthCheck/subServiceHealth.test.js +89 -0
- package/test/unit/lib/migrator.test.js +52 -0
- package/test/unit/lib/requestLogger.test.js +115 -0
- package/test/unit/lib/util.test.js +68 -0
- package/test/unit/mocks.js +66 -0
- package/test/unit/models/currency/currency.test.js +91 -0
- package/test/unit/models/endpointType/endpointType.test.js +69 -0
- package/test/unit/models/misc/migrationLock.test.js +96 -0
- package/test/unit/models/oracle/facade.test.js +546 -0
- package/test/unit/models/oracle/oracleEndpoint.test.js +409 -0
- package/test/unit/models/oracle/oracleEndpointCached.test.js +153 -0
- package/test/unit/models/participantEndpoint/facade.test.js +295 -0
- package/test/unit/models/partyIdType/partyIdType.test.js +88 -0
- package/test/unit/plugins.test.js +89 -0
- package/test/unit/setup.js +7 -0
- package/test/util/apiClients/AlsApiClient.js +44 -0
- package/test/util/apiClients/BasicApiClient.js +34 -0
- package/test/util/apiClients/ProxyApiClient.js +25 -0
- package/test/util/apiClients/index.js +7 -0
- package/test/util/helper.js +332 -0
- package/test/util/index.js +11 -0
- package/test/util/mockgen.js +43 -0
- package/test/util/onboarding.js +132 -0
- package/test/util/scripts/addAlsDb.sh +33 -0
- package/test/util/scripts/configureMockServer.sh +35 -0
- package/test/util/scripts/env.sh +19 -0
- package/test/util/scripts/populateTestData.sh +62 -0
- package/test/util/scripts/startMockCentralServer.sh +45 -0
- package/test/util/scripts/startMockOracleServer.sh +45 -0
- package/test/util/testConfig.js +44 -0
@@ -0,0 +1,143 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
|
3
|
+
const { execSync } = require('child_process')
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @file _wait4_all.js
|
7
|
+
* @description Waits for all docker-compose services to be running and healthy
|
8
|
+
*/
|
9
|
+
|
10
|
+
// Define the docker-compose containers you want to monitor here
|
11
|
+
const expectedContainers = [
|
12
|
+
'als_mysql',
|
13
|
+
'als_kafka',
|
14
|
+
'als_mysql_central_ledger',
|
15
|
+
'als_central-ledger'
|
16
|
+
// ## NOTE: These are not needed for Integration Tests
|
17
|
+
// 'kowl'
|
18
|
+
]
|
19
|
+
|
20
|
+
let retries = 30
|
21
|
+
const waitTimeMs = 5000
|
22
|
+
|
23
|
+
async function main () {
|
24
|
+
const waitingMap = {}
|
25
|
+
// serviceName => status, where status is healthy, unhealthy or starting
|
26
|
+
expectedContainers.forEach(serviceName => {
|
27
|
+
waitingMap[serviceName] = 'starting'
|
28
|
+
})
|
29
|
+
|
30
|
+
try {
|
31
|
+
let allHealthy = await areAllServicesHealthy(waitingMap, waitTimeMs)
|
32
|
+
|
33
|
+
while (!allHealthy && retries > 0) {
|
34
|
+
await sleep(waitTimeMs)
|
35
|
+
allHealthy = await areAllServicesHealthy(waitingMap, waitTimeMs)
|
36
|
+
|
37
|
+
if (retries === 0) {
|
38
|
+
throw new Error(`Out of retries waiting for service health.\nStill waiting for: ${getServicesForStatus(waitingMap, 'starting')}`)
|
39
|
+
}
|
40
|
+
|
41
|
+
console.log('Still waiting for service health. Retries', retries)
|
42
|
+
console.log(`${getServicesForStatus(waitingMap, 'healthy').length} services are healthy. Expected: ${expectedContainers.length}`)
|
43
|
+
console.log('Waiting for', getServicesForStatus(waitingMap, 'starting'))
|
44
|
+
|
45
|
+
retries--
|
46
|
+
}
|
47
|
+
|
48
|
+
console.log('All services are healthy. Time to get to work!')
|
49
|
+
process.exit(0)
|
50
|
+
} catch (error) {
|
51
|
+
console.error(`_wait4_all: ${error}`)
|
52
|
+
process.exit(1)
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* @function areAllServicesHealthy
|
58
|
+
* @description Get Update the service status, and sleep for `waitTimeMs` if the services aren't healthy
|
59
|
+
* @param {*} waitingMap
|
60
|
+
* @returns boolean
|
61
|
+
*/
|
62
|
+
async function areAllServicesHealthy (waitingMap) {
|
63
|
+
await updateServiceStatus(waitingMap)
|
64
|
+
|
65
|
+
if (isSystemHealthy(waitingMap)) {
|
66
|
+
return true
|
67
|
+
}
|
68
|
+
|
69
|
+
if (isSystemFailing(waitingMap)) {
|
70
|
+
throw new Error(`One or more services went to unhealthy: \n\t${getServicesForStatus(waitingMap, 'unhealthy')}\n`)
|
71
|
+
}
|
72
|
+
|
73
|
+
return false
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* @function updateServiceStatus
|
78
|
+
* @description Go through all of the waiting services, and check their status
|
79
|
+
* @param {*} waitingMap
|
80
|
+
* @returns void
|
81
|
+
*/
|
82
|
+
async function updateServiceStatus (waitingMap) {
|
83
|
+
const startingServices = getServicesForStatus(waitingMap, 'starting')
|
84
|
+
|
85
|
+
Promise.all(startingServices.map(async serviceName => {
|
86
|
+
// TODO: This info may be useful in future!
|
87
|
+
// const currentStatus = waitingMap[serviceName]
|
88
|
+
const progress = await getProgress(serviceName)
|
89
|
+
waitingMap[serviceName] = progress
|
90
|
+
}))
|
91
|
+
}
|
92
|
+
|
93
|
+
/**
|
94
|
+
* @function getProgress
|
95
|
+
* @description Invokes the `docker inspect` command for the given container
|
96
|
+
* @param {string} containerName
|
97
|
+
* @returns {'healthy' | 'unhealthy' | 'starting'}
|
98
|
+
*/
|
99
|
+
function getProgress (containerName) {
|
100
|
+
const command = `docker inspect --format='{{json .State.Health.Status}}' ${containerName}`
|
101
|
+
return execSync(command).toString().replace(/['"]+|[\n]+/g, '')
|
102
|
+
}
|
103
|
+
|
104
|
+
/**
|
105
|
+
* @function isSystemHealthy
|
106
|
+
* @param {*} waitingMap
|
107
|
+
* @returns {boolean}
|
108
|
+
*/
|
109
|
+
function isSystemHealthy (waitingMap) {
|
110
|
+
return getServicesForStatus(waitingMap, 'healthy').length === expectedContainers.length
|
111
|
+
}
|
112
|
+
|
113
|
+
/**
|
114
|
+
* @function isSystemFailing
|
115
|
+
* @param {*} waitingMap
|
116
|
+
* @returns {boolean}
|
117
|
+
*/
|
118
|
+
function isSystemFailing (waitingMap) {
|
119
|
+
return getServicesForStatus(waitingMap, 'unhealthy').length > 0
|
120
|
+
}
|
121
|
+
|
122
|
+
/**
|
123
|
+
* @function getServicesForStatus
|
124
|
+
* @param {*} waitingMap
|
125
|
+
* @param {'healthy' | 'unhealthy' | 'starting'} status
|
126
|
+
* @returns {Array<string>}
|
127
|
+
*/
|
128
|
+
function getServicesForStatus (waitingMap, status) {
|
129
|
+
return Object
|
130
|
+
.keys(waitingMap)
|
131
|
+
.filter(k => waitingMap[k] === status)
|
132
|
+
}
|
133
|
+
|
134
|
+
/**
|
135
|
+
* @function sleep
|
136
|
+
* @param {*} timeMs - how long to sleep for
|
137
|
+
*/
|
138
|
+
async function sleep (timeMs) {
|
139
|
+
console.log(`Sleeping for ${timeMs} ms`)
|
140
|
+
return new Promise((resolve, reject) => setTimeout(() => resolve(), timeMs))
|
141
|
+
}
|
142
|
+
|
143
|
+
main()
|
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
echo "--=== Running Functional Test Runner ===--"
|
4
|
+
echo
|
5
|
+
|
6
|
+
export ACCOUNT_LOOKUP_SERVICE_VERSION=${ACCOUNT_LOOKUP_SERVICE_VERSION:-"local"}
|
7
|
+
export ML_CORE_TEST_HARNESS_VERSION=${ML_CORE_TEST_HARNESS_VERSION:-"v1.2.4-fx-snapshot.15"}
|
8
|
+
export ML_CORE_TEST_HARNESS_GIT=${ML_CORE_TEST_HARNESS_GIT:-"https://github.com/mojaloop/ml-core-test-harness.git"}
|
9
|
+
export ML_CORE_TEST_HARNESS_TEST_PROV_CONT_NAME=${ML_CORE_TEST_HARNESS_TEST_PROV_CONT_NAME:-"ttk-func-ttk-provisioning-1"}
|
10
|
+
export ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME=${ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME:-"ttk-func-ttk-tests-1"}
|
11
|
+
export ML_CORE_TEST_HARNESS_DIR=${ML_CORE_TEST_HARNESS_DIR:-"/tmp/ml-api-adapter-core-test-harness"}
|
12
|
+
export ML_CORE_TEST_SKIP_SHUTDOWN=${ML_CORE_TEST_SKIP_SHUTDOWN:-false}
|
13
|
+
|
14
|
+
echo "==> Variables:"
|
15
|
+
echo "====> ACCOUNT_LOOKUP_SERVICE_VERSION=$ACCOUNT_LOOKUP_SERVICE_VERSION"
|
16
|
+
echo "====> ML_CORE_TEST_HARNESS_VERSION=$ML_CORE_TEST_HARNESS_VERSION"
|
17
|
+
echo "====> ML_CORE_TEST_HARNESS_GIT=$ML_CORE_TEST_HARNESS_GIT"
|
18
|
+
echo "====> ML_CORE_TEST_HARNESS_TEST_PROV_CONT_NAME=$ML_CORE_TEST_HARNESS_TEST_PROV_CONT_NAME"
|
19
|
+
echo "====> ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME=$ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME"
|
20
|
+
echo "====> ML_CORE_TEST_HARNESS_DIR=$ML_CORE_TEST_HARNESS_DIR"
|
21
|
+
echo "====> ML_CORE_TEST_SKIP_SHUTDOWN=$ML_CORE_TEST_SKIP_SHUTDOWN"
|
22
|
+
|
23
|
+
echo "==> Cloning $ML_CORE_TEST_HARNESS_GIT:$ML_CORE_TEST_HARNESS_VERSION into dir=$ML_CORE_TEST_HARNESS_DIR"
|
24
|
+
git clone --depth 1 --branch $ML_CORE_TEST_HARNESS_VERSION $ML_CORE_TEST_HARNESS_GIT $ML_CORE_TEST_HARNESS_DIR
|
25
|
+
|
26
|
+
echo "==> Copying configs from ./docker/config-modifier/*.* to $ML_CORE_TEST_HARNESS_DIR/docker/config-modifier/configs/"
|
27
|
+
cp -f ./docker/config-modifier/*.* $ML_CORE_TEST_HARNESS_DIR/docker/config-modifier/configs/
|
28
|
+
cat $ML_CORE_TEST_HARNESS_DIR/docker/config-modifier/configs/account-lookup-service.js
|
29
|
+
|
30
|
+
## Set initial exit code value to 1 (i.e. assume error!)
|
31
|
+
TTK_FUNC_TEST_EXIT_CODE=1
|
32
|
+
|
33
|
+
## Change to the test harness directory
|
34
|
+
pushd $ML_CORE_TEST_HARNESS_DIR
|
35
|
+
|
36
|
+
## Make reports directory
|
37
|
+
mkdir ./reports
|
38
|
+
|
39
|
+
## Start the test harness
|
40
|
+
echo "==> Starting Docker compose"
|
41
|
+
docker compose --project-name ttk-func --ansi never --profile all-services --profile ttk-provisioning --profile ttk-tests up -d
|
42
|
+
|
43
|
+
echo "==> Running wait-for-container.sh $ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME"
|
44
|
+
## Wait for the test harness to complete, and capture the exit code
|
45
|
+
TTK_FUNC_TEST_EXIT_CODE=$(docker wait $ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME)
|
46
|
+
echo "==> exited with code: $TTK_FUNC_TEST_EXIT_CODE"
|
47
|
+
|
48
|
+
## Print docker containers
|
49
|
+
docker ps
|
50
|
+
|
51
|
+
## Copy the test results
|
52
|
+
docker logs account-lookup-service > ./reports/account-lookup-service-console.log
|
53
|
+
docker logs $ML_CORE_TEST_HARNESS_TEST_PROV_CONT_NAME > ./reports/ttk-provisioning-console.log
|
54
|
+
docker logs $ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME > ./reports/ttk-tests-console.log
|
55
|
+
|
56
|
+
## Grab the exit code
|
57
|
+
## NOTE: This is not working as expected, so we're using the exit code from the wait-for-container.sh script
|
58
|
+
# export TTK_FUNC_TEST_EXIT_CODE=$(docker inspect $ML_CORE_TEST_HARNESS_TEST_FUNC_CONT_NAME --format='{{.State.ExitCode}}')
|
59
|
+
|
60
|
+
## Shutdown the test harness
|
61
|
+
if [ $ML_CORE_TEST_SKIP_SHUTDOWN == true ]; then
|
62
|
+
echo "==> Skipping test harness shutdown"
|
63
|
+
else
|
64
|
+
echo "==> Shutting down test harness"
|
65
|
+
docker compose --project-name ttk-func --ansi never --profile all-services --profile ttk-provisioning --profile ttk-tests down -v
|
66
|
+
fi
|
67
|
+
|
68
|
+
## Dump log to console
|
69
|
+
cat ./reports/ttk-tests-console.log
|
70
|
+
|
71
|
+
## Reset directory
|
72
|
+
popd
|
73
|
+
|
74
|
+
## Exit with the exit code from the test harness
|
75
|
+
echo "==> Exiting functional tests with code: $TTK_FUNC_TEST_EXIT_CODE"
|
76
|
+
exit $TTK_FUNC_TEST_EXIT_CODE
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEAvs6EjaQYxTPI2dS+L6zJQhszHCP79huvCDPhy/BmTWI4350r
|
3
|
+
jWiclBC/joy7BUGJszIVv6rrwbeN9OORHXwW0XSjcCEeksdkAee9kGvx/A2UcUOs
|
4
|
+
QQ3A3IvoxJAv+HJSmCGeKsc2pMrelBtma54i1JBF6H+SwrcM0a+UVsADQXOzKuyi
|
5
|
+
RYnkCEhZYHXAk7hM3cARvhYydqUnPehFccjS8v6sNTRZnqJ7z/XT3EKYkfizcCkH
|
6
|
+
iV9elB/PGGzkFWLjHZVTC/+hK6WhFYGEktNbQfDuMA4mnZT37QZEL1PlhnFfjfnr
|
7
|
+
npjFjcFzKJ+hHRrHqA9FZlo6J9efnUn/VHVCsQIDAQABAoIBAC5eFUwuUm6ptOdq
|
8
|
+
kYUYYhgUcAkonXQjKhe+M+LRWqr3cYa1tP26LEK3BzXm8RPH52SKiUp4iK4covyd
|
9
|
+
yIf3vbvMsmLvSXS1y5HC9QgBk16DFk2n+lYct39g6IHL4Dxp27Rohv0ySA8n1Yr8
|
10
|
+
VZlVZnVtUe+8ALgcr5rNJikmpCPlQ85QFExS8JpxYbbczbm/Q7qcQGdRkop5oFR6
|
11
|
+
0Zaze7L2F2M1C6IVzUUJKr+TVY58uWqCEqhRDadStkQgw9QPq+PVza5fnTtlIakK
|
12
|
+
sSk1orJqONWpMY90wNOk/DasMIrQK4RFlkkDgTPjvWSPDRG/p/iRxO2jde5/oyCU
|
13
|
+
b24TraECgYEA90yIBp3/0BgKE6KPBZzlN8SuwXXH6A3HBXvcVNaNucO5zgXSJcYy
|
14
|
+
UT8iIUUd1bndfFOv3W8c6bkkeX5fkLm35bqM442m7r56PeugxIpRFPaj6IoTqe3y
|
15
|
+
9TCaatnOztDjCBEaNcIrJZUzHj6/yffr5pakTcsyBPhpywHGfBNeu9UCgYEAxYUm
|
16
|
+
bDJOK4NrkUFRGdN6KuWQ1MYrFxFChO9bmmxntt3ncC79qPojmTVCrajjarIBbv97
|
17
|
+
v/D8PoSf4MKK9qDDdKqZ0dViYUyQm0rbWIxWfVT2fWdy5Xr34BLGkyiyuGam1XBy
|
18
|
+
XR76uNTjT+z8VIMkXv2mi/tW9XecGTWTx6BTpW0CgYEA6z8jOuA8RDFKDKmb0iQR
|
19
|
+
LL7t2tz3ALlydLYBv7al9WvKKcEByqtCnGUpS2rbWb/IgQd/CW80muVjXCuqLxts
|
20
|
+
Y53VfnX2sbACyzqFodFOFloVTBVlZUYU08ebbT+q6rRs8/SI8VC3CLZofUIF4dP0
|
21
|
+
1VLCE7rS50WEJfiXXtpySM0CgYAuJf3kKZy57eqj9W7NaeuROjGshOBsc0vnY0Uz
|
22
|
+
v0A8KXx5aYE6ibbnhNofWOZJd21+UZLINbW5paL1EH8HQGhqSbHGpORnd0wR/Ftj
|
23
|
+
ROawQbmVcyYVF7XyVHCw0UFwdAtmsu8FcseBh7vUYLpTxJAq4XiYHBElKNz/xtTQ
|
24
|
+
P1VLwQKBgBZuwI0/s/VORrmvok27Wbkup9dDA3XlMccyK2osf31IcH7JY4uMw+9i
|
25
|
+
RYVjMjIsPtO1Gf71mRcFsWkQYYtZ6V5yrxiLRVq8iSRkOPm2iJtolSg1edOrlVS6
|
26
|
+
xLPUjxxopeTkZbi4heszkkOn8MvzRznONCXjDt98FubgcAmEr+XA
|
27
|
+
-----END RSA PRIVATE KEY-----
|