From 4f009cde07d8c05871b62f00d2c255626897467c Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Tue, 17 May 2022 01:24:23 +0800 Subject: [PATCH 1/6] fix legayc sync --- config/default.js | 2 ++ src/common/helper.js | 13 ++++++++++++- src/services/ProcessorService.js | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config/default.js b/config/default.js index 1151353..bafa7ef 100755 --- a/config/default.js +++ b/config/default.js @@ -40,6 +40,8 @@ module.exports = { CHALLENGE_API_V5_URL: process.env.CHALLENGE_API_V5_URL || 'http://localhost:3001/v5/challenges', RESOURCE_ROLE_API_URL: process.env.RESOURCE_ROLE_API_URL || 'http://localhost:3001/v5/resource-roles', + V4_ES_FEEDER_API_URL: process.env.V4_ES_FEEDER_API_URL || 'https://api.topcoder-dev.com/v4/esfeeder/challenges', + AUTH0_URL: process.env.AUTH0_URL || 'https://topcoder-dev.auth0.com/oauth/token', // Auth0 credentials for M2M token AUTH0_AUDIENCE: process.env.AUTH0_AUDIENCE || 'https://m2m.topcoder-dev.com/', AUTH0_CLIENT_ID: process.env.AUTH0_CLIENT_ID || 'e6oZAxnoFvjdRtjJs1Jt3tquLnNSTs0e', diff --git a/src/common/helper.js b/src/common/helper.js index 8d4b69a..8b651d2 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -187,6 +187,16 @@ async function executeSQLonDB (sql, params) { } } +async function forceV4ESFeeder (legacyId) { + const token = await getM2MToken() + const body = { + param: { + challengeIds: [legacyId] + } + } + await request.put(`${config.V4_ES_FEEDER_API_URL}`).send(body).set({ Authorization: `Bearer ${token}` }) +} + module.exports = { getInformixConnection, getM2Mtoken, @@ -197,5 +207,6 @@ module.exports = { prepare, ESFeederServiceClient, queryDataFromDB, - executeSQLonDB + executeSQLonDB, + forceV4ESFeeder } diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index d6fa186..9e18f6e 100755 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -92,6 +92,9 @@ async function _updateChallengeResource (message, isDelete) { } if (resourceRole.id === config.SUBMITTER_ROLE_ID && !isTask) { + // force sync v4 elasticsearch service + await helper.forceV4ESFeeder(_.get(v5Challenge, 'legacyId')); + await new Promise(setTimeout(resolve, 2000)); if (isDelete) { logger.debug(`v4 Unregistering Submitter ${config.CHALLENGE_API_V4_URL}/${_.get(v5Challenge, 'legacyId')}/unregister?userId=${userId} - ${JSON.stringify(body)}`) await helper.postRequest(`${config.CHALLENGE_API_V4_URL}/${_.get(v5Challenge, 'legacyId')}/unregister?userId=${userId}`, {}, m2mToken) From 2e026d5a0ecc5de21959e10918fe7764a02b04b5 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Tue, 17 May 2022 22:58:57 +0800 Subject: [PATCH 2/6] ci: deploying --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 32327c5..8e33327 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,6 +70,7 @@ workflows: branches: only: - develop + - fix-legacy-sync # Production builds are exectuted only on tagged commits to the # master branch. From 375bb8ad56f3e9f61265fd5b026776edf6bbc2dc Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Tue, 17 May 2022 23:22:47 +0800 Subject: [PATCH 3/6] add logs for v4 challenge re-indexing --- src/services/ProcessorService.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 9e18f6e..26b6d54 100755 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -93,8 +93,10 @@ async function _updateChallengeResource (message, isDelete) { if (resourceRole.id === config.SUBMITTER_ROLE_ID && !isTask) { // force sync v4 elasticsearch service + logger.debug(`Start v4 challenge reindexing to the elasticsearch service`) await helper.forceV4ESFeeder(_.get(v5Challenge, 'legacyId')); await new Promise(setTimeout(resolve, 2000)); + logger.debug(`End v4 challenge reindexing to the elasticsearch service`) if (isDelete) { logger.debug(`v4 Unregistering Submitter ${config.CHALLENGE_API_V4_URL}/${_.get(v5Challenge, 'legacyId')}/unregister?userId=${userId} - ${JSON.stringify(body)}`) await helper.postRequest(`${config.CHALLENGE_API_V4_URL}/${_.get(v5Challenge, 'legacyId')}/unregister?userId=${userId}`, {}, m2mToken) From 603e0940998a7279c87487acca1f82d3bdcb7131 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Tue, 17 May 2022 23:41:19 +0800 Subject: [PATCH 4/6] fix method signature issue --- src/common/helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/helper.js b/src/common/helper.js index 8b651d2..d4fe026 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -188,7 +188,7 @@ async function executeSQLonDB (sql, params) { } async function forceV4ESFeeder (legacyId) { - const token = await getM2MToken() + const token = await getM2Mtoken() const body = { param: { challengeIds: [legacyId] From a85f09f842a7115670968923227124ea49e86c65 Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Wed, 18 May 2022 00:12:35 +0800 Subject: [PATCH 5/6] refine config item --- config/default.js | 1 + src/services/ProcessorService.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config/default.js b/config/default.js index bafa7ef..4c4a8cf 100755 --- a/config/default.js +++ b/config/default.js @@ -41,6 +41,7 @@ module.exports = { RESOURCE_ROLE_API_URL: process.env.RESOURCE_ROLE_API_URL || 'http://localhost:3001/v5/resource-roles', V4_ES_FEEDER_API_URL: process.env.V4_ES_FEEDER_API_URL || 'https://api.topcoder-dev.com/v4/esfeeder/challenges', + INDEX_CHALLENGE_TIMEOUT: process.env.INDEX_CHALLENGE_TIMEOUT || 2, AUTH0_URL: process.env.AUTH0_URL || 'https://topcoder-dev.auth0.com/oauth/token', // Auth0 credentials for M2M token AUTH0_AUDIENCE: process.env.AUTH0_AUDIENCE || 'https://m2m.topcoder-dev.com/', diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 26b6d54..91e1ea0 100755 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -95,7 +95,7 @@ async function _updateChallengeResource (message, isDelete) { // force sync v4 elasticsearch service logger.debug(`Start v4 challenge reindexing to the elasticsearch service`) await helper.forceV4ESFeeder(_.get(v5Challenge, 'legacyId')); - await new Promise(setTimeout(resolve, 2000)); + await new Promise(resolve => setTimeout(resolve, config.INDEX_CHALLENGE_TIMEOUT * 1000)); logger.debug(`End v4 challenge reindexing to the elasticsearch service`) if (isDelete) { logger.debug(`v4 Unregistering Submitter ${config.CHALLENGE_API_V4_URL}/${_.get(v5Challenge, 'legacyId')}/unregister?userId=${userId} - ${JSON.stringify(body)}`) From 1817bf57b8f26adf2805be79651ce36b4b27735f Mon Sep 17 00:00:00 2001 From: LieutenantRoger Date: Wed, 18 May 2022 17:02:05 +0800 Subject: [PATCH 6/6] reset ci --- .circleci/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8e33327..32327c5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -70,7 +70,6 @@ workflows: branches: only: - develop - - fix-legacy-sync # Production builds are exectuted only on tagged commits to the # master branch.