diff --git a/goofy-client/apps/goofy-e2e/Jenkinsfile-static b/goofy-client/apps/goofy-e2e/Jenkinsfile-static index 4df0b01831610c884ceae82273c8b25e441cf4cf..6f4d466b6aca09f041dcb39f28d2e3b6151233e0 100644 --- a/goofy-client/apps/goofy-e2e/Jenkinsfile-static +++ b/goofy-client/apps/goofy-e2e/Jenkinsfile-static @@ -387,19 +387,21 @@ String generateCypressConfig(String bezeichner, String testFolder, Integer dbPor dir('goofy-client/apps/goofy-e2e/'){ def config = readJSON file: 'cypress-ci.json' - def plutoDatabaseSecret = getPlutoDatabaseSecret(namespace); + def plutoDatabaseSecret = getPlutoDatabaseSecret(namespace); + def decodedPassword = decodeString(plutoDatabaseSecret.password); + def parsablePassword = makePasswordUrlConform(decodedPassword); config.baseUrl = "https://${bezeichner}.${env.CLUSTER_BASE_URL}" as String - config.env.dbUrl = "mongodb://pluto-database-user:${decodeString(plutoDatabaseSecret.password)}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String + config.env.dbUrl = "mongodb://${decodeString(plutoDatabaseSecret.username)}:${parsablePassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String config.env.keycloakUrl = "https://${env.SSO_URL}/" as String config.env.keycloakRealm = namespace as String - config.env.keycloakClient = "alfa" as String - config.env.sabineUuid = getKeycloakUuid(namespace, "sabine") as String - config.integrationFolder = "./src/integration/${testFolder}" as String + config.env.sabineUuid = getKeycloakUuid(namespace, "sabine") as String config.videosFolder = "./reports/${testFolder}/videos" as String - config.screenshotsFolder = "./reports/${testFolder}/screenshots" as String + config.screenshotsFolder = "./reports/${testFolder}/screenshots" as String config.reporterOptions.reportDir = "./reports/${testFolder}/mochawesome-report" as String + config.specPattern = "src/e2e/${testFolder}/**/*.cy.{js,jsx,ts,tsx}" as String + config.env.put("search", getElasticsearchEnv(namespace)) config.env.put("userManager", getUserManagerEnv(namespace, dbPort)) @@ -408,28 +410,31 @@ String generateCypressConfig(String bezeichner, String testFolder, Integer dbPor sh "cat ${configName}" } - return configName + return "cypress-ci-"+testFolder+".config.ts" } Map getPlutoDatabaseSecret(String namespace) { - return readJSON ( text: sh (script: "kubectl get secret pluto-database-admin-pluto-database-user -n ${namespace} -o jsonpath={.data}", returnStdout: true)) + return readJSON ( text: sh (script: "kubectl get secret ozg-mongodb-admin-pluto-user -n ${namespace} -o jsonpath={.data}", returnStdout: true)) } Map getUserManagerEnv(String namespace, dbPort){ - def plutoDatabaseUserManagerSecret = getPlutoDatabaseUserManagerSecret(namespace); + def userManagerDatabaseSecret = getUserManagerDatabaseSecret(namespace); + def decodedPassword = decodeString(userManagerDatabaseSecret.password); + def parsablePassword = makePasswordUrlConform(decodedPassword); + return [ - "dbUrl": "mongodb://user-manager-database-user:${decodeString(plutoDatabaseUserManagerSecret.password)}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String, + "dbUrl": "mongodb://${decodeString(userManagerDatabaseSecret.username)}:${parsablePassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String, "database": "user-manager-database" - ] + ] } -Map getPlutoDatabaseUserManagerSecret(String namespace) { - return readJSON ( text: sh (script: "kubectl get secret pluto-database-admin-user-manager-database-user -n ${namespace} -o jsonpath={.data}", returnStdout: true)) +Map getUserManagerDatabaseSecret(String namespace) { + return readJSON ( text: sh (script: "kubectl get secret ozg-mongodb-admin-user-manager-user -n ${namespace} -o jsonpath={.data}", returnStdout: true)) } String getKeycloakUuid(realm, userName) { def shScript = """curl -H 'Content-Type: application/json' \ - -H 'Authorization: bearer ${getKeycloakAccessToken()}' \ + -H 'Authorization: bearer ${getKeycloakAccessToken(realm)}' \ 'https://${env.SSO_URL}/admin/realms/${realm}/users' """ @@ -444,12 +449,21 @@ String getKeycloakUuid(realm, userName) { } } -String getKeycloakAccessToken() { - withCredentials([usernamePassword(credentialsId: 'keycloak-ovh-cluster', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) { - def token = readJSON text: sh (script: 'curl -d "client_id=admin-cli" -d "username=$USER" -d "password=$PASSWORD" -d "grant_type=password" https://$SSO_URL/realms/master/protocol/openid-connect/token', returnStdout: true) +String getKeycloakAccessToken(String realm) { + userManagerApiUserCredentials = getUserManagerApiUserCredentials(realm) - return token.access_token - } + def token = readJSON text: sh (script: "set +x && curl -d \"client_id=admin-cli\" -d \"username=${userManagerApiUserCredentials.user}\" -d \"password=${userManagerApiUserCredentials.password}\" -d \"grant_type=password\" https://$SSO_URL/realms/$realm/protocol/openid-connect/token", returnStdout: true) + + return token.access_token +} + +Map getUserManagerApiUserCredentials(String namespace) { + userManagerApiUserCredentials = readJSON ( text: sh (script: "kubectl get secret usermanagerapiuser-credentials -n ${namespace} -o jsonpath={.data}", returnStdout: true)) + + return [ + "user": decodeString(userManagerApiUserCredentials.name), + "password": decodeString(userManagerApiUserCredentials.password) + ] } Void sendFailureMessage() {