globus-cli 3.24.0__tar.gz → 3.25.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {globus-cli-3.24.0/src/globus_cli.egg-info → globus-cli-3.25.0}/PKG-INFO +4 -4
- {globus-cli-3.24.0 → globus-cli-3.25.0}/pyproject.toml +3 -3
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/activate.py +4 -4
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/create.py +1 -3
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/list.py +3 -3
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/create.py +10 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/show.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/endpoint/__init__.py +3 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/_common.py +68 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/__init__.py +14 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/_common.py +17 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/create.py +59 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/delete.py +25 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/list.py +37 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/role/show.py +27 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py +1 -1
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/show.py +22 -0
- globus-cli-3.25.0/src/globus_cli/commands/gcs/endpoint/update.py +244 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/ls.py +4 -4
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/create.py +8 -26
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/transfer.py +1 -1
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/constants.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/__init__.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/exception_handling/__init__.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/exception_handling/hooks.py +21 -17
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/auth_flows.py +55 -5
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/client_login.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/manager.py +5 -3
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/tokenstore.py +2 -4
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/commands.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/nullable.py +23 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/id_args.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/transfer_task_options.py +4 -1
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/reflect.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/auth.py +2 -4
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/errors.py +3 -3
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/auth.py +1 -2
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/primitive.py +14 -8
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/server_timing.py +1 -2
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/types.py +1 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/utils.py +90 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/version.py +1 -1
- {globus-cli-3.24.0 → globus-cli-3.25.0/src/globus_cli.egg-info}/PKG-INFO +4 -4
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/SOURCES.txt +9 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/requires.txt +3 -3
- {globus-cli-3.24.0 → globus-cli-3.25.0}/LICENSE +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/README.rst +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/setup.cfg +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/setup.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/__main__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/_warnings.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/api.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/create.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/rename.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/bookmark/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/cli_profile_list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/create/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/create/guest.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/create/mapped.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/collection/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/deactivate.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/is_activated.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/local_id.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/my_shared_endpoint_list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/create.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/permission/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/create.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/role/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/search.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/add.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/server/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/set_subscription_id.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/storage_gateway/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/storage_gateway/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/from_json.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/posix.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/create/s3.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/update/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/endpoint/user_credential/update/from_json.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/cancel.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/resume.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/show_definition.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/show_logs.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/run/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/start.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/flows/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/guest.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/create/mapped.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/set_subscription_id.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/update/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/update/guest.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcp/update/mapped.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/get_identities.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/create.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/accept.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/invite/decline.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/join.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/leave.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/add.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/approve.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/invite.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/reject.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/member/remove.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/set_policies.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/group/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/list_commands.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/login.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/logout.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/mkdir.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/rename.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/rm.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/delete_by_query.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/create.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/role/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/index/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/ingest.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/query.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/subject/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/subject/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/subject/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/task/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/task/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/search/task/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/consent.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/session/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/cancel.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/event_list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/generate_submission_id.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/pause_info.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/task/wait.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/_common.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/create/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/create/transfer.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/delete.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/list.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/pause.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/resume.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/timer/show.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/update.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/version.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/whoami.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/endpointish.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/entity_type.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/endpointish/errors.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/exception_handling/registry.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/globus_cli_flake8.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/_old_config.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/context.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/errors.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/local_server.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/scopes.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/login_manager/utils.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/command_state.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/mutex_group.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_classes.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/delimited.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/endpoint_plus_path.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/identity_type.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/json_strorfile.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/location.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/notify_param.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/task_path.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/param_types/timedelta.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_callbacks.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shared_options/endpointish.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/parsing/shell_completion.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/gcs.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/activation.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/client.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/data.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/delegate_proxy.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/services/transfer/recursive_ls.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/awscli_text.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/context.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/field.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/__init__.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/base.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/formatters/compound.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/termio/printer.py +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/dependency_links.txt +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/entry_points.txt +0 -0
- {globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: globus-cli
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.25.0
|
|
4
4
|
Summary: Globus CLI
|
|
5
5
|
Author-email: Stephen Rosen <sirosen@globus.org>
|
|
6
6
|
Project-URL: homepage, https://github.com/globus/globus-cli
|
|
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
18
18
|
Requires-Python: >=3.8
|
|
19
19
|
Description-Content-Type: text/x-rst
|
|
20
20
|
License-File: LICENSE
|
|
21
|
-
Requires-Dist: globus-sdk==3.
|
|
21
|
+
Requires-Dist: globus-sdk==3.37.0
|
|
22
22
|
Requires-Dist: click<9,>=8.1.4
|
|
23
23
|
Requires-Dist: jmespath==1.0.1
|
|
24
24
|
Requires-Dist: packaging>=17.0
|
|
@@ -31,8 +31,8 @@ Requires-Dist: pytest>=7; extra == "test"
|
|
|
31
31
|
Requires-Dist: pytest-xdist<4; extra == "test"
|
|
32
32
|
Requires-Dist: pytest-timeout<3; extra == "test"
|
|
33
33
|
Requires-Dist: click-type-test==0.0.7; python_version >= "3.10" and extra == "test"
|
|
34
|
-
Requires-Dist: responses==0.
|
|
35
|
-
Requires-Dist: ruamel.yaml==0.18.
|
|
34
|
+
Requires-Dist: responses==0.25.0; extra == "test"
|
|
35
|
+
Requires-Dist: ruamel.yaml==0.18.6; extra == "test"
|
|
36
36
|
Requires-Dist: setuptools; python_version >= "3.12" and extra == "test"
|
|
37
37
|
|
|
38
38
|
.. image:: https://github.com/globus/globus-cli/workflows/build/badge.svg?event=push
|
|
@@ -28,7 +28,7 @@ classifiers = [
|
|
|
28
28
|
]
|
|
29
29
|
requires-python = ">=3.8"
|
|
30
30
|
dependencies = [
|
|
31
|
-
"globus-sdk==3.
|
|
31
|
+
"globus-sdk==3.37.0",
|
|
32
32
|
"click>=8.1.4,<9",
|
|
33
33
|
"jmespath==1.0.1",
|
|
34
34
|
"packaging>=17.0",
|
|
@@ -50,9 +50,9 @@ test = [
|
|
|
50
50
|
"pytest-xdist<4",
|
|
51
51
|
"pytest-timeout<3",
|
|
52
52
|
"click-type-test==0.0.7;python_version>='3.10'",
|
|
53
|
-
"responses==0.
|
|
53
|
+
"responses==0.25.0",
|
|
54
54
|
# loading test fixture data
|
|
55
|
-
"ruamel.yaml==0.18.
|
|
55
|
+
"ruamel.yaml==0.18.6",
|
|
56
56
|
# Python 3.12 needs setuptools.
|
|
57
57
|
"setuptools;python_version>='3.12'",
|
|
58
58
|
]
|
|
@@ -37,7 +37,7 @@ from globus_cli.termio import TextMode, display
|
|
|
37
37
|
@click.option(
|
|
38
38
|
"--myproxy-username",
|
|
39
39
|
"-U",
|
|
40
|
-
help=
|
|
40
|
+
help="Give a username to use with --myproxy",
|
|
41
41
|
)
|
|
42
42
|
@click.option("--myproxy-password", "-P", hidden=True)
|
|
43
43
|
@click.option(
|
|
@@ -171,9 +171,9 @@ def endpoint_activate(
|
|
|
171
171
|
|
|
172
172
|
# check if endpoint is already activated unless --force
|
|
173
173
|
if not force:
|
|
174
|
-
res: (
|
|
175
|
-
|
|
176
|
-
)
|
|
174
|
+
res: dict[str, str] | globus_sdk.GlobusHTTPResponse = (
|
|
175
|
+
transfer_client.endpoint_autoactivate(endpoint_id, if_expires_in=60)
|
|
176
|
+
)
|
|
177
177
|
|
|
178
178
|
if "AlreadyActivated" == res["code"]:
|
|
179
179
|
display(
|
|
@@ -117,9 +117,7 @@ For GCS, use the globus-connect-server CLI from your Endpoint."""
|
|
|
117
117
|
endpoint_type = (
|
|
118
118
|
EntityType.GCP_MAPPED
|
|
119
119
|
if personal
|
|
120
|
-
else EntityType.GCSV4_HOST
|
|
121
|
-
if server
|
|
122
|
-
else EntityType.GCSV4_SHARE
|
|
120
|
+
else EntityType.GCSV4_HOST if server else EntityType.GCSV4_SHARE
|
|
123
121
|
)
|
|
124
122
|
|
|
125
123
|
# build options into a dict for kwarg-expansion
|
|
@@ -38,9 +38,9 @@ def server_list(login_manager: LoginManager, *, endpoint_id: uuid.UUID) -> None:
|
|
|
38
38
|
# raises usage error on shares for us
|
|
39
39
|
endpoint_w_server_list = transfer_client.get_endpoint_w_server_list(endpoint_id)
|
|
40
40
|
endpoint = endpoint_w_server_list[0]
|
|
41
|
-
server_list: (
|
|
42
|
-
|
|
43
|
-
)
|
|
41
|
+
server_list: str | dict[str, t.Any] | globus_sdk.GlobusHTTPResponse = (
|
|
42
|
+
endpoint_w_server_list[1]
|
|
43
|
+
)
|
|
44
44
|
|
|
45
45
|
if server_list == "S3": # not GCS -- this is an S3 endpoint
|
|
46
46
|
server_list = {"s3_url": endpoint["s3_url"]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import uuid
|
|
4
|
+
|
|
3
5
|
import click
|
|
4
6
|
|
|
5
7
|
from globus_cli.commands.flows._common import (
|
|
@@ -36,6 +38,11 @@ ROLE_TYPES = ("flow_viewer", "flow_starter", "flow_administrator", "flow_owner")
|
|
|
36
38
|
@starters_option
|
|
37
39
|
@viewers_option
|
|
38
40
|
@keywords_option
|
|
41
|
+
@click.option(
|
|
42
|
+
"--subscription-id",
|
|
43
|
+
help="Set a subscription_id for the flow, marking it as subscription tier.",
|
|
44
|
+
type=click.UUID,
|
|
45
|
+
)
|
|
39
46
|
@LoginManager.requires_login("flows")
|
|
40
47
|
def create_command(
|
|
41
48
|
login_manager: LoginManager,
|
|
@@ -49,6 +56,7 @@ def create_command(
|
|
|
49
56
|
starters: tuple[str, ...],
|
|
50
57
|
viewers: tuple[str, ...],
|
|
51
58
|
keywords: tuple[str, ...],
|
|
59
|
+
subscription_id: uuid.UUID | None,
|
|
52
60
|
) -> None:
|
|
53
61
|
"""
|
|
54
62
|
Create a new flow.
|
|
@@ -98,6 +106,7 @@ def create_command(
|
|
|
98
106
|
flow_starters=list(starters),
|
|
99
107
|
flow_administrators=list(administrators),
|
|
100
108
|
keywords=list(keywords),
|
|
109
|
+
subscription_id=subscription_id,
|
|
101
110
|
)
|
|
102
111
|
|
|
103
112
|
# Configure formatters for principals
|
|
@@ -114,6 +123,7 @@ def create_command(
|
|
|
114
123
|
Field("Description", "description"),
|
|
115
124
|
Field("Keywords", "keywords", formatter=formatters.ArrayFormatter()),
|
|
116
125
|
Field("Owner", "flow_owner", formatter=principal_formatter),
|
|
126
|
+
Field("Subscription ID", "subscription_id"),
|
|
117
127
|
Field("Created At", "created_at", formatter=formatters.Date),
|
|
118
128
|
Field("Updated At", "updated_at", formatter=formatters.Date),
|
|
119
129
|
Field(
|
|
@@ -30,6 +30,7 @@ def show_command(login_manager: LoginManager, *, flow_id: uuid.UUID) -> None:
|
|
|
30
30
|
Field("Title", "title"),
|
|
31
31
|
Field("Keywords", "keywords", formatter=formatters.ArrayFormatter()),
|
|
32
32
|
Field("Owner", "flow_owner", formatter=principal_formatter),
|
|
33
|
+
Field("Subscription ID", "subscription_id"),
|
|
33
34
|
Field("Created At", "created_at", formatter=formatters.Date),
|
|
34
35
|
Field("Updated At", "updated_at", formatter=formatters.Date),
|
|
35
36
|
Field(
|
|
@@ -4,7 +4,10 @@ from globus_cli.parsing import group
|
|
|
4
4
|
@group(
|
|
5
5
|
"endpoint",
|
|
6
6
|
lazy_subcommands={
|
|
7
|
+
"role": (".role", "role_command"),
|
|
7
8
|
"set-subscription-id": (".set_subscription_id", "set_subscription_id_command"),
|
|
9
|
+
"show": (".show", "show_command"),
|
|
10
|
+
"update": (".update", "update_command"),
|
|
8
11
|
},
|
|
9
12
|
)
|
|
10
13
|
def endpoint_command() -> None:
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import typing as t
|
|
4
|
+
|
|
5
|
+
from globus_cli.termio import Field, formatters
|
|
6
|
+
from globus_cli.termio.formatters import FieldFormatter
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class NetworkUseFormatter(FieldFormatter[t.Union[str, t.Tuple[int, int]]]):
|
|
10
|
+
"""
|
|
11
|
+
Custom Formatter to make network use associated fields better grouped.
|
|
12
|
+
|
|
13
|
+
Data is expected to be passed as a list of three elements:
|
|
14
|
+
[network_use, preferred, max]
|
|
15
|
+
|
|
16
|
+
Examples:
|
|
17
|
+
("custom", 1, 2) -> "Preferred: 1, Max: 2"
|
|
18
|
+
("aggressive", None, None) -> "aggressive"
|
|
19
|
+
("normal", None, 3) -> "normal"
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
def parse(self, value: t.Any) -> str | tuple[int, int]:
|
|
23
|
+
if isinstance(value, list) and len(value) == 3:
|
|
24
|
+
if value[0] == "custom":
|
|
25
|
+
if isinstance(value[1], int) and isinstance(value[2], int):
|
|
26
|
+
return value[1], value[2]
|
|
27
|
+
elif isinstance(value[0], str):
|
|
28
|
+
return value[0]
|
|
29
|
+
|
|
30
|
+
raise ValueError(
|
|
31
|
+
f"Invalid network use data shape. Expected [str, int, int]; found {value}."
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
def render(self, value: str | tuple[int, int]) -> str:
|
|
35
|
+
if isinstance(value, tuple):
|
|
36
|
+
return f"Preferred: {value[0]}, Max: {value[1]}"
|
|
37
|
+
return value
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# https://docs.globus.org/globus-connect-server/v5.4/api/schemas/Endpoint_1_2_0_schema/
|
|
41
|
+
GCS_ENDPOINT_FIELDS = [
|
|
42
|
+
Field("Endpoint ID", "id"),
|
|
43
|
+
Field("Display Name", "display_name"),
|
|
44
|
+
Field("Allow UDT", "allow_udt", formatter=formatters.FuzzyBool),
|
|
45
|
+
Field("Contact Email", "contact_email"),
|
|
46
|
+
Field("Contact Info", "contact_info"),
|
|
47
|
+
Field("Department", "department"),
|
|
48
|
+
Field("Description", "description"),
|
|
49
|
+
Field("Earliest Last Access", "earliest_last_access", formatter=formatters.Date),
|
|
50
|
+
Field("GCS Manager URL", "gcs_manager_url"),
|
|
51
|
+
Field("GridFTP Control Channel Port", "gridftp_control_channel_port"),
|
|
52
|
+
Field("Info Link", "info_link"),
|
|
53
|
+
Field("Keywords", "keywords", formatter=formatters.Array),
|
|
54
|
+
Field("Network Use", "network_use"),
|
|
55
|
+
Field(
|
|
56
|
+
"Network Use (Concurrency)",
|
|
57
|
+
"[network_use, preferred_concurrency, max_concurrency]",
|
|
58
|
+
formatter=NetworkUseFormatter(),
|
|
59
|
+
),
|
|
60
|
+
Field(
|
|
61
|
+
"Network Use (Parallelism)",
|
|
62
|
+
"[network_use, preferred_parallelism, max_parallelism]",
|
|
63
|
+
formatter=NetworkUseFormatter(),
|
|
64
|
+
),
|
|
65
|
+
Field("Organization", "organization"),
|
|
66
|
+
Field("Public", "public", formatter=formatters.FuzzyBool),
|
|
67
|
+
Field("Subscription ID", "subscription_id"),
|
|
68
|
+
]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from globus_cli.parsing import group
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
@group(
|
|
5
|
+
"role",
|
|
6
|
+
lazy_subcommands={
|
|
7
|
+
"create": (".create", "create_command"),
|
|
8
|
+
"delete": (".delete", "delete_command"),
|
|
9
|
+
"list": (".list", "list_command"),
|
|
10
|
+
"show": (".show", "show_command"),
|
|
11
|
+
},
|
|
12
|
+
)
|
|
13
|
+
def role_command() -> None:
|
|
14
|
+
"""Manage Globus Connect Server (GCS) roles"""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import typing as t
|
|
4
|
+
|
|
5
|
+
from globus_cli.termio import Field
|
|
6
|
+
from globus_cli.termio.formatters.auth import PrincipalURNFormatter
|
|
7
|
+
|
|
8
|
+
if t.TYPE_CHECKING:
|
|
9
|
+
from globus_cli.services.auth import CustomAuthClient
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def role_fields(auth_client: CustomAuthClient) -> list[Field]:
|
|
13
|
+
return [
|
|
14
|
+
Field("ID", "id"),
|
|
15
|
+
Field("Role", "role"),
|
|
16
|
+
Field("Principal", "principal", formatter=PrincipalURNFormatter(auth_client)),
|
|
17
|
+
]
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import typing as t
|
|
4
|
+
import uuid
|
|
5
|
+
|
|
6
|
+
import click
|
|
7
|
+
import globus_sdk
|
|
8
|
+
|
|
9
|
+
from globus_cli.commands.gcs.endpoint.role._common import role_fields
|
|
10
|
+
from globus_cli.login_manager import LoginManager
|
|
11
|
+
from globus_cli.parsing import command, endpoint_id_arg
|
|
12
|
+
from globus_cli.termio import TextMode, display
|
|
13
|
+
from globus_cli.utils import resolve_principal_urn
|
|
14
|
+
|
|
15
|
+
_VALID_ROLES = t.Literal["administrator", "activity_manager", "activity_monitor"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@command("create")
|
|
19
|
+
@endpoint_id_arg
|
|
20
|
+
@click.argument("ROLE", type=click.Choice(t.get_args(_VALID_ROLES)), metavar="ROLE")
|
|
21
|
+
@click.argument("PRINCIPAL", type=str)
|
|
22
|
+
@click.option(
|
|
23
|
+
"--principal-type",
|
|
24
|
+
type=click.Choice(["identity", "group"]),
|
|
25
|
+
help="Qualifier to specify what type of principal (identity or group) is provided.",
|
|
26
|
+
)
|
|
27
|
+
@LoginManager.requires_login("transfer")
|
|
28
|
+
def create_command(
|
|
29
|
+
login_manager: LoginManager,
|
|
30
|
+
*,
|
|
31
|
+
endpoint_id: uuid.UUID,
|
|
32
|
+
role: _VALID_ROLES,
|
|
33
|
+
principal: str,
|
|
34
|
+
principal_type: t.Literal["identity", "group"] | None,
|
|
35
|
+
) -> None:
|
|
36
|
+
"""
|
|
37
|
+
Create a role on a GCS Endpoint.
|
|
38
|
+
|
|
39
|
+
ROLE must be one of "administrator", "activity_manager", or "activity_monitor".
|
|
40
|
+
|
|
41
|
+
PRINCIPAL must be a username, UUID, or URN associated with a globus identity or
|
|
42
|
+
group.
|
|
43
|
+
If UUID, use `--principal-type` to specify the type (defaults to "identity").
|
|
44
|
+
"""
|
|
45
|
+
gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
|
|
46
|
+
auth_client = login_manager.get_auth_client()
|
|
47
|
+
|
|
48
|
+
# Format the principal into a URN
|
|
49
|
+
principal_urn = resolve_principal_urn(
|
|
50
|
+
auth_client=auth_client,
|
|
51
|
+
principal_type=principal_type,
|
|
52
|
+
principal=principal,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
res = gcs_client.create_role(
|
|
56
|
+
globus_sdk.GCSRoleDocument(role=role, principal=principal_urn)
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
display(res, text_mode=TextMode.text_record, fields=role_fields(auth_client))
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import uuid
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
from globus_cli.login_manager import LoginManager
|
|
6
|
+
from globus_cli.parsing import command, endpoint_id_arg
|
|
7
|
+
from globus_cli.termio import TextMode, display
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@command("delete")
|
|
11
|
+
@endpoint_id_arg
|
|
12
|
+
@click.argument("ROLE_ID", type=click.UUID)
|
|
13
|
+
@LoginManager.requires_login("transfer")
|
|
14
|
+
def delete_command(
|
|
15
|
+
login_manager: LoginManager,
|
|
16
|
+
*,
|
|
17
|
+
endpoint_id: uuid.UUID,
|
|
18
|
+
role_id: uuid.UUID,
|
|
19
|
+
) -> None:
|
|
20
|
+
"""Delete a role from a GCS Endpoint."""
|
|
21
|
+
gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
|
|
22
|
+
|
|
23
|
+
res = gcs_client.delete_role(role_id)
|
|
24
|
+
|
|
25
|
+
display(res, text_mode=TextMode.text_raw, response_key="message")
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import uuid
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
from globus_sdk.paging import Paginator
|
|
5
|
+
|
|
6
|
+
from globus_cli.commands.gcs.endpoint.role._common import role_fields
|
|
7
|
+
from globus_cli.login_manager import LoginManager
|
|
8
|
+
from globus_cli.parsing import command, endpoint_id_arg
|
|
9
|
+
from globus_cli.termio import display
|
|
10
|
+
from globus_cli.utils import PagingWrapper
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@command("list")
|
|
14
|
+
@endpoint_id_arg
|
|
15
|
+
@click.option(
|
|
16
|
+
"--all-roles", is_flag=True, help="Show all roles, not just yours.", default=False
|
|
17
|
+
)
|
|
18
|
+
@LoginManager.requires_login("transfer")
|
|
19
|
+
def list_command(
|
|
20
|
+
login_manager: LoginManager,
|
|
21
|
+
*,
|
|
22
|
+
endpoint_id: uuid.UUID,
|
|
23
|
+
all_roles: bool,
|
|
24
|
+
) -> None:
|
|
25
|
+
"""List all roles on a GCS Endpoint associated with you."""
|
|
26
|
+
gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
|
|
27
|
+
auth_client = login_manager.get_auth_client()
|
|
28
|
+
|
|
29
|
+
paginator = Paginator.wrap(gcs_client.get_role_list)
|
|
30
|
+
paginated_call = paginator(include="all_roles") if all_roles else paginator()
|
|
31
|
+
paging_wrapper = PagingWrapper(paginated_call.items(), json_conversion_key="DATA")
|
|
32
|
+
|
|
33
|
+
display(
|
|
34
|
+
paging_wrapper,
|
|
35
|
+
fields=role_fields(auth_client),
|
|
36
|
+
json_converter=paging_wrapper.json_converter,
|
|
37
|
+
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import uuid
|
|
2
|
+
|
|
3
|
+
import click
|
|
4
|
+
|
|
5
|
+
from globus_cli.commands.gcs.endpoint.role._common import role_fields
|
|
6
|
+
from globus_cli.login_manager import LoginManager
|
|
7
|
+
from globus_cli.parsing import command, endpoint_id_arg
|
|
8
|
+
from globus_cli.termio import TextMode, display
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@command("show")
|
|
12
|
+
@endpoint_id_arg
|
|
13
|
+
@click.argument("ROLE_ID", type=click.UUID)
|
|
14
|
+
@LoginManager.requires_login("transfer")
|
|
15
|
+
def show_command(
|
|
16
|
+
login_manager: LoginManager,
|
|
17
|
+
*,
|
|
18
|
+
endpoint_id: uuid.UUID,
|
|
19
|
+
role_id: uuid.UUID,
|
|
20
|
+
) -> None:
|
|
21
|
+
"""Describe a particular role on a GCS Endpoint."""
|
|
22
|
+
gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
|
|
23
|
+
auth_client = login_manager.get_auth_client()
|
|
24
|
+
|
|
25
|
+
res = gcs_client.get_role(role_id)
|
|
26
|
+
|
|
27
|
+
display(res, text_mode=TextMode.text_record, fields=role_fields(auth_client))
|
{globus-cli-3.24.0 → globus-cli-3.25.0}/src/globus_cli/commands/gcs/endpoint/set_subscription_id.py
RENAMED
|
@@ -35,7 +35,7 @@ class GCSSubscriptionIdType(click.ParamType):
|
|
|
35
35
|
self.fail(msg, param, ctx)
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
@command("set-subscription-id", short_help="
|
|
38
|
+
@command("set-subscription-id", short_help="Set a GCS Endpoint's subscription.")
|
|
39
39
|
@endpoint_id_arg
|
|
40
40
|
@click.argument("SUBSCRIPTION_ID", type=GCSSubscriptionIdType())
|
|
41
41
|
@LoginManager.requires_login("transfer")
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import uuid
|
|
2
|
+
|
|
3
|
+
from globus_cli.commands.gcs.endpoint._common import GCS_ENDPOINT_FIELDS
|
|
4
|
+
from globus_cli.login_manager import LoginManager
|
|
5
|
+
from globus_cli.parsing import command, endpoint_id_arg
|
|
6
|
+
from globus_cli.termio import TextMode, display
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@command("show")
|
|
10
|
+
@endpoint_id_arg
|
|
11
|
+
@LoginManager.requires_login("transfer")
|
|
12
|
+
def show_command(
|
|
13
|
+
login_manager: LoginManager,
|
|
14
|
+
*,
|
|
15
|
+
endpoint_id: uuid.UUID,
|
|
16
|
+
) -> None:
|
|
17
|
+
"""Display information about a particular GCS Endpoint."""
|
|
18
|
+
gcs_client = login_manager.get_gcs_client(endpoint_id=endpoint_id)
|
|
19
|
+
|
|
20
|
+
res = gcs_client.get_endpoint()
|
|
21
|
+
|
|
22
|
+
display(res, text_mode=TextMode.text_record, fields=GCS_ENDPOINT_FIELDS)
|