Skip to content

Conversation

fredmnl
Copy link
Contributor

@fredmnl fredmnl commented Sep 26, 2025

Adding action, account and userName fields to the backbeat routes.

_normalizeBackbeatRequest was executed too late as it is the one filling in the bucketName in the request (among other things) and that must happen before this field is used to customize the logger.

@bert-e
Copy link
Contributor

bert-e commented Sep 26, 2025

Hello fredmnl,

My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.

Available options
name description privileged authored
/after_pull_request Wait for the given pull request id to be merged before continuing with the current one.
/bypass_author_approval Bypass the pull request author's approval
/bypass_build_status Bypass the build and test status
/bypass_commit_size Bypass the check on the size of the changeset TBA
/bypass_incompatible_branch Bypass the check on the source branch prefix
/bypass_jira_check Bypass the Jira issue check
/bypass_peer_approval Bypass the pull request peers' approval
/bypass_leader_approval Bypass the pull request leaders' approval
/approve Instruct Bert-E that the author has approved the pull request. ✍️
/create_pull_requests Allow the creation of integration pull requests.
/create_integration_branches Allow the creation of integration branches.
/no_octopus Prevent Wall-E from doing any octopus merge and use multiple consecutive merge instead
/unanimity Change review acceptance criteria from one reviewer at least to all reviewers
/wait Instruct Bert-E not to run until further notice.
Available commands
name description privileged
/help Print Bert-E's manual in the pull request.
/status Print Bert-E's current status in the pull request TBA
/clear Remove all comments from Bert-E from the history TBA
/retry Re-start a fresh build TBA
/build Re-start a fresh build TBA
/force_reset Delete integration branches & pull requests, and restart merge process from the beginning.
/reset Try to remove integration branches unless there are commits on them which do not appear on the source branch.

Status report is not available.

@bert-e
Copy link
Contributor

bert-e commented Sep 26, 2025

Incorrect fix version

The Fix Version/s in issue CLDSRV-746 contains:

  • None

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

  • 9.1.1

Please check the Fix Version/s of CLDSRV-746, or the target
branch of this pull request.

Copy link

codecov bot commented Sep 26, 2025

Codecov Report

❌ Patch coverage is 84.84848% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.28%. Comparing base (1d1c6c1) to head (83691b5).
⚠️ Report is 34 commits behind head on development/9.0.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
lib/routes/routeBackbeat.js 84.84% 5 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

Files with missing lines Coverage Δ
lib/routes/routeBackbeat.js 72.71% <84.84%> (+0.54%) ⬆️
@@               Coverage Diff                @@
##           development/9.0    #5955   +/-   ##
================================================
  Coverage            83.28%   83.28%           
================================================
  Files                  189      189           
  Lines                12128    12160   +32     
================================================
+ Hits                 10101    10128   +27     
- Misses                2027     2032    +5     
Flag Coverage Δ
ceph-backend-test 65.77% <75.75%> (+<0.01%) ⬆️
file-ft-tests 66.40% <69.69%> (+<0.01%) ⬆️
kmip-ft-tests 26.88% <0.00%> (-0.08%) ⬇️
mongo-v0-ft-tests 67.97% <69.69%> (-0.03%) ⬇️
mongo-v1-ft-tests 67.97% <69.69%> (+<0.01%) ⬆️
multiple-backend 35.60% <75.75%> (+0.10%) ⬆️
quota-tests 33.02% <0.00%> (+0.80%) ⬆️
quota-tests-inflights 34.11% <0.00%> (-0.09%) ⬇️
unit 67.37% <69.69%> (+<0.01%) ⬆️
utapi-v2-tests 33.27% <0.00%> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fredmnl fredmnl changed the base branch from development/9.1 to development/9.0 September 26, 2025 17:47
@bert-e
Copy link
Contributor

bert-e commented Sep 26, 2025

Incorrect fix version

The Fix Version/s in issue CLDSRV-746 contains:

  • None

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

  • 9.0.28

  • 9.1.1

Please check the Fix Version/s of CLDSRV-746, or the target
branch of this pull request.

@bert-e
Copy link
Contributor

bert-e commented Sep 26, 2025

Request integration branches

Waiting for integration branch creation to be requested by the user.

To request integration branches, please comment on this pull request with the following command:

/create_integration_branches

Alternatively, the /approve and /create_pull_requests commands will automatically
create the integration branches.

Comment on lines 1485 to 1495
const actionMap = {
'expiration': 'BackbeatExpiration',
'batchdelete': 'BackbeatBatchDelete',
'data': 'BackbeatPutData',
'metadata': 'BackbeatPutMetadata',
'multiplebackenddata': 'BackbeatMultipleBackendData',
'multiplebackendmetadata': 'BackbeatMultipleBackendMetadata',
'index': 'BackbeatIndexOperation',
'api': 'BackbeatApi',
'lifecycle': 'BackbeatListLifecycle',
};
Copy link
Contributor

@BourgoisMickael BourgoisMickael Sep 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Declare this mapping out of the routing to assign it only once and not per request.


For the value I'd remove the Backbeat prefix as you should already have from arsenal a field internalServiceName (https://github.com/scality/Arsenal/blob/13f05191a02fcba1be074b64e23e1be30c135137/lib/s3routes/routes.ts#L247C32-L247C51) that has the value backbeat.


This map mixes action and backend, resourceType is not enough to know the actual action, you might need to use the method and the query string operation. For example metadata has a GET and a PUT.

Maybe you should have 2 fields, one for the backend, one for the action.

This map takes care of the routing and describe all the possible actions:

const backbeatRoutes = {
PUT: {
data: putData,
metadata: putMetadata,
multiplebackenddata: {
putobject: putObject,
putpart: putPart,
},
},
POST: {
multiplebackenddata: {
initiatempu: initiateMultipartUpload,
completempu: completeMultipartUpload,
puttagging: putObjectTagging,
},
batchdelete: batchDelete,
index: {
add: putBucketIndexes,
delete: deleteBucketIndexes,
},
},
DELETE: {
expiration: deleteObjectFromExpiration,
multiplebackenddata: {
deleteobject: deleteObject,
deleteobjecttagging: deleteObjectTagging,
abortmpu: abortMultipartUpload,
},
},
GET: {
metadata: getMetadata,
multiplebackendmetadata: headObject,
lifecycle: listLifecycle,
index: getBucketIndexes,
},
};

Maybe the action could be added directly from inside each function separately, or use the function name in the routing:

                const route = backbeatRoutes[request.method][request.resourceType];
+               log.addDefaultFields({ action: route.name });
                return route(request, response, userInfo, log, err => {

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using the function name sounds good to me.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are many routing branches with conditions, make sure to catch all of them. And there is a divergence in routing in branch 9.1

In 9.0:

  • api:
    return backbeatProxy.web(request, response, { target }, err => {
  • index routes:
    const route = backbeatRoutes[request.method][request.resourceType];
  • return backbeatRoutes[request.method][request.resourceType](
    request, response, bucketInfo, objMd, log, next);
    }
    if (request.resourceType === 'multiplebackendmetadata') {
    return backbeatRoutes[request.method][request.resourceType](
    request, response, log, next);
    }
    return backbeatRoutes[request.method][request.resourceType]
    [request.query.operation](request, response, log, next);

In 9.1:

  • api:
    return routeBackbeatAPIProxy(request, response, requestContexts, log);
  • non-object:
    if (request.resourceType === 'index') {
    return routeIndexingAPIs(request, response, userInfo, log, callback);
    }
    const route = backbeatRoutes[request.method][request.resourceType];
    return route(request, response, userInfo, log, callback);
  • multiplebackendmetadata
    if (useMultipleBackend) {
    if (request.resourceType === 'multiplebackendmetadata') {
    return backbeatRoutes[request.method][request.resourceType](
    request, response, log, next);
    }
    return backbeatRoutes[request.method][request.resourceType]
    [request.query.operation](request, response, log, next);
    }
  • return backbeatRoutes[request.method][request.resourceType](

@bert-e
Copy link
Contributor

bert-e commented Sep 30, 2025

Incorrect fix version

The Fix Version/s in issue CLDSRV-746 contains:

  • 9.0.28

  • 9.1.2

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

  • 9.0.29

  • 9.1.3

Please check the Fix Version/s of CLDSRV-746, or the target
branch of this pull request.

@bert-e
Copy link
Contributor

bert-e commented Sep 30, 2025

Incorrect fix version

The Fix Version/s in issue CLDSRV-746 contains:

  • 9.0.29

  • 9.1.2

Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:

  • 9.0.29

  • 9.1.3

Please check the Fix Version/s of CLDSRV-746, or the target
branch of this pull request.

@bert-e
Copy link
Contributor

bert-e commented Sep 30, 2025

Request integration branches

Waiting for integration branch creation to be requested by the user.

To request integration branches, please comment on this pull request with the following command:

/create_integration_branches

Alternatively, the /approve and /create_pull_requests commands will automatically
create the integration branches.

return authNames;
}

function routeNameFromRequest(request) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function routeNameFromRequest(request) {
function actionFromRequest(request) {
Suggested change
function routeNameFromRequest(request) {
function actionFromRequestRoute(request) {

@fredmnl
Copy link
Contributor Author

fredmnl commented Sep 30, 2025

/create_integration_branches

@bert-e
Copy link
Contributor

bert-e commented Sep 30, 2025

Conflict

A conflict has been raised during the creation of
integration branch w/9.1/bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics with contents from bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics
and development/9.1.

I have not created the integration branch.

Here are the steps to resolve this conflict:

 git fetch
 git checkout -B w/9.1/bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics origin/development/9.1
 git merge origin/bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics
 # <intense conflict resolution>
 git commit
 git push -u origin w/9.1/bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics

The following options are set: create_integration_branches

@fredmnl fredmnl force-pushed the bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics branch from b0188f6 to 83691b5 Compare September 30, 2025 16:51
@bert-e
Copy link
Contributor

bert-e commented Sep 30, 2025

Waiting for approval

The following approvals are needed before I can proceed with the merge:

  • the author

  • 2 peers

The following options are set: create_integration_branches

@fredmnl
Copy link
Contributor Author

fredmnl commented Sep 30, 2025

/approve

@bert-e
Copy link
Contributor

bert-e commented Sep 30, 2025

Build failed

The build for commit did not succeed in branch w/9.1/bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics

The following options are set: approve, create_integration_branches

@bert-e
Copy link
Contributor

bert-e commented Oct 1, 2025

In the queue

The changeset has received all authorizations and has been added to the
relevant queue(s). The queue(s) will be merged in the target development
branch(es) as soon as builds have passed.

The changeset will be merged in:

  • ✔️ development/9.0

  • ✔️ development/9.1

The following branches will NOT be impacted:

  • development/7.10
  • development/7.4
  • development/7.70
  • development/8.8

There is no action required on your side. You will be notified here once
the changeset has been merged. In the unlikely event that the changeset
fails permanently on the queue, a member of the admin team will
contact you to help resolve the matter.

IMPORTANT

Please do not attempt to modify this pull request.

  • Any commit you add on the source branch will trigger a new cycle after the
    current queue is merged.
  • Any commit you add on one of the integration branches will be lost.

If you need this pull request to be removed from the queue, please contact a
member of the admin team now.

The following options are set: approve, create_integration_branches

@bert-e
Copy link
Contributor

bert-e commented Oct 1, 2025

Queue build failed

The corresponding build for the queue failed:

  • Checkout the status page.
  • Identify the failing build and review the logs.
  • If no issue is found, re-run the build.
  • If an issue is identified, checkout the steps below to remove
    the pull request from the queue for further analysis and maybe rebase/merge.
Remove the pull request from the queue
  • Add a /wait comment on this pull request.
  • Click on login on the status page.
  • Go into the manage page.
  • Find the option called Rebuild the queue and click on it.
    Bert-E will loop again on all pull requests to put the valid ones
    in the queue again, while skipping the one with the /wait comment.
  • Wait for the new queue to merge, then merge/rebase your pull request
    with the latest changes to then work on a proper fix.
  • Once the issue is fixed, delete the /wait comment and
    follow the usual process to merge the pull request.

@bert-e
Copy link
Contributor

bert-e commented Oct 1, 2025

I have successfully merged the changeset of this pull request
into targetted development branches:

  • ✔️ development/9.0

  • ✔️ development/9.1

The following branches have NOT changed:

  • development/7.10
  • development/7.4
  • development/7.70
  • development/8.8

Please check the status of the associated issue CLDSRV-746.

Goodbye fredmnl.

@bert-e bert-e merged commit 990a9b1 into development/9.0 Oct 1, 2025
30 checks passed
@bert-e bert-e deleted the bugfix/CLDSRV-746/add-log-fields-to-backbeat-routes-for-analytics branch October 1, 2025 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants