[SERVER-65028] Consider making external user facing sharding commands error when given unrecognized options Created: 29/Mar/22  Updated: 26/Oct/23

Status: Backlog
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Max Hirschhorn Assignee: Backlog - Catalog and Routing
Resolution: Unresolved Votes: 0
Labels: oldshardingemea, shardingemea-qw
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Catalog and Routing
Participants:
Story Points: 3

 Description   

The following commands are user-facing but specify {strict: false} for how they parse their input. This means if the operator misspells an argument to the commands or includes a non-existing one, they won't always get an error. Changing these commands to be {strict: true} would protect against this but should be weighed against driver's and/or server's ability to send these commands internally without needing to know which version of the server they are talking with.


import pathlib
import yaml
 
def check_file(pathname):
    with open(pathname) as data:
        blob = yaml.safe_load(data)
    for (command, command_details) in blob.get("commands", {}).items():
        if not command_details.get("strict", True):
            yield command_details["command_name"]
 
for pathname in pathlib.Path().rglob("src/mongo/**/*.idl"):
    if str(pathname) == "src/mongo/idl/unittest.idl":
        continue
    for command in check_file(pathname):
        if not command.startswith("_"):
            print(f"{command} in {pathname}")


Generated at Thu Feb 08 06:01:42 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.