rucio-clients 34.4.2__tar.gz → 34.5.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.

Potentially problematic release.


This version of rucio-clients might be problematic. Click here for more details.

Files changed (188) hide show
  1. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/PKG-INFO +1 -1
  2. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/bin/rucio +4 -1
  3. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/accountlimitclient.py +36 -6
  4. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/baseclient.py +16 -7
  5. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/configclient.py +18 -3
  6. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/credentialclient.py +8 -1
  7. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/didclient.py +216 -45
  8. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/downloadclient.py +1 -1
  9. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/lifetimeclient.py +20 -2
  10. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/requestclient.py +34 -16
  11. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/ruleclient.py +28 -20
  12. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/subscriptionclient.py +39 -26
  13. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/uploadclient.py +3 -2
  14. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/config.py +4 -0
  15. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/logging.py +54 -37
  16. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/pcache.py +114 -91
  17. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/generic.py +1 -1
  18. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/types.py +44 -0
  19. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/utils.py +140 -95
  20. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/vcsversion.py +3 -3
  21. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_did.py +18 -0
  22. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_transfer_plugins.py +22 -4
  23. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/AUTHORS.rst +0 -0
  24. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/ChangeLog +0 -0
  25. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/LICENSE +0 -0
  26. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/MANIFEST.in +0 -0
  27. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/README.rst +0 -0
  28. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/bin/rucio-admin +0 -0
  29. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/etc/rse-accounts.cfg.template +0 -0
  30. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/etc/rucio.cfg.atlas.client.template +0 -0
  31. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/etc/rucio.cfg.template +0 -0
  32. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/__init__.py +0 -0
  33. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/alembicrevision.py +0 -0
  34. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/__init__.py +0 -0
  35. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/accountclient.py +0 -0
  36. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/client.py +0 -0
  37. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/diracclient.py +0 -0
  38. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/exportclient.py +0 -0
  39. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/fileclient.py +0 -0
  40. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/importclient.py +0 -0
  41. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/lockclient.py +0 -0
  42. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/metaconventionsclient.py +0 -0
  43. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/pingclient.py +0 -0
  44. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/replicaclient.py +0 -0
  45. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/rseclient.py +0 -0
  46. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/scopeclient.py +0 -0
  47. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/client/touchclient.py +0 -0
  48. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/__init__.py +0 -0
  49. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/cache.py +0 -0
  50. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/constants.py +0 -0
  51. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/constraints.py +0 -0
  52. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/didtype.py +0 -0
  53. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/exception.py +0 -0
  54. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/extra.py +0 -0
  55. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/plugins.py +0 -0
  56. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/policy.py +0 -0
  57. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/__init__.py +0 -0
  58. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/atlas.py +0 -0
  59. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/belleii.py +0 -0
  60. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/domatpc.py +0 -0
  61. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/escape.py +0 -0
  62. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/generic_multi_vo.py +0 -0
  63. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/schema/icecube.py +0 -0
  64. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/stomp_utils.py +0 -0
  65. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/stopwatch.py +0 -0
  66. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/common/test_rucio_server.py +0 -0
  67. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/__init__.py +0 -0
  68. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/__init__.py +0 -0
  69. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/bittorrent.py +0 -0
  70. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/cache.py +0 -0
  71. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/dummy.py +0 -0
  72. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/gfal.py +0 -0
  73. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/globus.py +0 -0
  74. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/gsiftp.py +0 -0
  75. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/http_cache.py +0 -0
  76. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/mock.py +0 -0
  77. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/ngarc.py +0 -0
  78. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/posix.py +0 -0
  79. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/protocol.py +0 -0
  80. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/rclone.py +0 -0
  81. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/rfio.py +0 -0
  82. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/srm.py +0 -0
  83. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/ssh.py +0 -0
  84. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/storm.py +0 -0
  85. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/webdav.py +0 -0
  86. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/protocols/xrootd.py +0 -0
  87. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/rse/rsemanager.py +0 -0
  88. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio/version.py +0 -0
  89. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/lib/rucio_clients.egg-info/SOURCES.txt +0 -0
  90. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/pylintrc +0 -0
  91. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/pyproject.toml +0 -0
  92. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/requirements.txt +0 -0
  93. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/setup.cfg +0 -0
  94. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/setup.py +0 -0
  95. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/setuputil.py +0 -0
  96. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_abacus_account.py +0 -0
  97. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_abacus_collection_replica.py +0 -0
  98. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_abacus_rse.py +0 -0
  99. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_account.py +0 -0
  100. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_account_limits.py +0 -0
  101. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_api_external_representation.py +0 -0
  102. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_archive.py +0 -0
  103. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_auditor.py +0 -0
  104. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_auditor_hdfs.py +0 -0
  105. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_auditor_srmdumps.py +0 -0
  106. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_authentication.py +0 -0
  107. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_automatix.py +0 -0
  108. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_bad_replica.py +0 -0
  109. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_bb8.py +0 -0
  110. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_belleii.py +0 -0
  111. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_bin_rucio.py +0 -0
  112. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_boolean.py +0 -0
  113. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_clients.py +0 -0
  114. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_common_types.py +0 -0
  115. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_config.py +0 -0
  116. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_conveyor.py +0 -0
  117. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_conveyor_submitter.py +0 -0
  118. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_counter.py +0 -0
  119. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_credential.py +0 -0
  120. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_curl.py +0 -0
  121. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_daemons.py +0 -0
  122. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_dataset_replicas.py +0 -0
  123. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_db.py +0 -0
  124. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_did_meta_plugins.py +0 -0
  125. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_didtype.py +0 -0
  126. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_download.py +0 -0
  127. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_dumper.py +0 -0
  128. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_dumper_consistency.py +0 -0
  129. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_dumper_data_model.py +0 -0
  130. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_dumper_path_parsing.py +0 -0
  131. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_filter_engine.py +0 -0
  132. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_heartbeat.py +0 -0
  133. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_hermes.py +0 -0
  134. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_identity.py +0 -0
  135. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_impl_upload_download.py +0 -0
  136. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_import_export.py +0 -0
  137. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_judge_cleaner.py +0 -0
  138. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_judge_evaluator.py +0 -0
  139. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_judge_injector.py +0 -0
  140. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_judge_repairer.py +0 -0
  141. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_lifetime.py +0 -0
  142. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_message.py +0 -0
  143. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_meta_conventions.py +0 -0
  144. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_meta_did.py +0 -0
  145. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_module_import.py +0 -0
  146. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_monitor.py +0 -0
  147. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_multi_vo.py +0 -0
  148. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_naming_convention.py +0 -0
  149. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_oauthmanager.py +0 -0
  150. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_oidc.py +0 -0
  151. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_permission.py +0 -0
  152. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_pfns.py +0 -0
  153. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_ping.py +0 -0
  154. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_preparer.py +0 -0
  155. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_qos.py +0 -0
  156. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_quarantined_replica.py +0 -0
  157. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_reaper.py +0 -0
  158. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_redirect.py +0 -0
  159. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_replica.py +0 -0
  160. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_replica_recoverer.py +0 -0
  161. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_replica_sorting.py +0 -0
  162. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_request.py +0 -0
  163. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_root_proxy.py +0 -0
  164. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse.py +0 -0
  165. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_expression_parser.py +0 -0
  166. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_lfn2path.py +0 -0
  167. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_gfal2.py +0 -0
  168. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_gfal2_impl.py +0 -0
  169. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_posix.py +0 -0
  170. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_rclone.py +0 -0
  171. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_rsync.py +0 -0
  172. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_srm.py +0 -0
  173. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_ssh.py +0 -0
  174. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_webdav.py +0 -0
  175. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_protocol_xrootd.py +0 -0
  176. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rse_selector.py +0 -0
  177. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rucio_server.py +0 -0
  178. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_rule.py +0 -0
  179. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_scope.py +0 -0
  180. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_subscription.py +0 -0
  181. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_throttler.py +0 -0
  182. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_tpc.py +0 -0
  183. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_trace.py +0 -0
  184. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_transfer.py +0 -0
  185. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_undertaker.py +0 -0
  186. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_upload.py +0 -0
  187. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tests/test_utils.py +0 -0
  188. {rucio_clients-34.4.2 → rucio_clients-34.5.0}/tools/merge_rucio_configs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rucio-clients
3
- Version: 34.4.2
3
+ Version: 34.5.0
4
4
  Summary: Rucio Client Lite Package
5
5
  Home-page: https://rucio.cern.ch/
6
6
  Author: Rucio
@@ -234,6 +234,8 @@ def get_client(args):
234
234
  'oidc_issuer': args.oidc_issuer,
235
235
  'oidc_username': args.oidc_username,
236
236
  'oidc_password': args.oidc_password}
237
+ elif auth_type == "x509":
238
+ creds = {'client_cert': args.certificate, "client_key": args.client_key}
237
239
  else:
238
240
  creds = None
239
241
 
@@ -1854,7 +1856,8 @@ def get_parser():
1854
1856
  + 'to the keys configured in the /etc/idpsecrets.json auth server configuration file.') # NOQA: W503
1855
1857
 
1856
1858
  # Options for the x509 auth_strategy
1857
- oparser.add_argument('--certificate', dest='certificate', default=None, help='Client certificate file.')
1859
+ oparser.add_argument('--certificate', dest='certificate', default=None, help='Client certificate file for x509 Authentication.')
1860
+ oparser.add_argument('--client_key', dest='client_key', default=None, help='Client key for x509 Authentication.')
1858
1861
  oparser.add_argument('--ca-certificate', dest='ca_certificate', default=None, help='CA certificate to verify peer against (SSL).')
1859
1862
 
1860
1863
  # Ping command
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from json import dumps
16
+ from typing import Literal
16
17
  from urllib.parse import quote_plus
17
18
 
18
19
  from requests.status_codes import codes
@@ -27,7 +28,13 @@ class AccountLimitClient(BaseClient):
27
28
 
28
29
  ACCOUNTLIMIT_BASEURL = 'accountlimits'
29
30
 
30
- def set_account_limit(self, account, rse, bytes_, locality):
31
+ def set_account_limit(
32
+ self,
33
+ account: str,
34
+ rse: str,
35
+ bytes_: int,
36
+ locality: Literal['local', 'global']
37
+ ) -> bool:
31
38
  """
32
39
  Sets an account limit for a given limit scope.
33
40
 
@@ -46,7 +53,12 @@ class AccountLimitClient(BaseClient):
46
53
  from rucio.common.exception import UnsupportedOperation
47
54
  raise UnsupportedOperation('The provided scope (%s) for the account limit was invalid' % locality)
48
55
 
49
- def delete_account_limit(self, account, rse, locality):
56
+ def delete_account_limit(
57
+ self,
58
+ account: str,
59
+ rse: str,
60
+ locality: Literal['local', 'global']
61
+ ) -> bool:
50
62
  """
51
63
  Deletes an account limit for a given limit scope.
52
64
 
@@ -64,7 +76,12 @@ class AccountLimitClient(BaseClient):
64
76
  from rucio.common.exception import UnsupportedOperation
65
77
  raise UnsupportedOperation('The provided scope (%s) for the account limit was invalid' % locality)
66
78
 
67
- def set_local_account_limit(self, account, rse, bytes_):
79
+ def set_local_account_limit(
80
+ self,
81
+ account: str,
82
+ rse: str,
83
+ bytes_: int
84
+ ) -> bool:
68
85
  """
69
86
  Sends the request to set an account limit for an account.
70
87
 
@@ -86,7 +103,11 @@ class AccountLimitClient(BaseClient):
86
103
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
87
104
  raise exc_cls(exc_msg)
88
105
 
89
- def delete_local_account_limit(self, account, rse):
106
+ def delete_local_account_limit(
107
+ self,
108
+ account: str,
109
+ rse: str
110
+ ) -> bool:
90
111
  """
91
112
  Sends the request to remove an account limit.
92
113
 
@@ -108,7 +129,12 @@ class AccountLimitClient(BaseClient):
108
129
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
109
130
  raise exc_cls(exc_msg)
110
131
 
111
- def set_global_account_limit(self, account, rse_expression, bytes_):
132
+ def set_global_account_limit(
133
+ self,
134
+ account: str,
135
+ rse_expression: str,
136
+ bytes_: int
137
+ ) -> bool:
112
138
  """
113
139
  Sends the request to set a global account limit for an account.
114
140
 
@@ -130,7 +156,11 @@ class AccountLimitClient(BaseClient):
130
156
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
131
157
  raise exc_cls(exc_msg)
132
158
 
133
- def delete_global_account_limit(self, account, rse_expression):
159
+ def delete_global_account_limit(
160
+ self,
161
+ account: str,
162
+ rse_expression: str
163
+ ) -> bool:
134
164
  """
135
165
  Sends the request to remove a global account limit.
136
166
 
@@ -107,8 +107,6 @@ class BaseClient:
107
107
  :param logger: Logger object to use. If None, use the default LOG created by the module
108
108
  """
109
109
 
110
- self.host = rucio_host
111
- self.auth_host = auth_host
112
110
  self.logger = logger
113
111
  self.session = Session()
114
112
  self.user_agent = "%s/%s" % (user_agent, version.version_string()) # e.g. "rucio-clients/0.2.13"
@@ -117,9 +115,17 @@ class BaseClient:
117
115
  if self.script_id == '': # Python interpreter used
118
116
  self.script_id = 'python'
119
117
  try:
120
- if self.host is None:
118
+ if rucio_host is not None:
119
+ self.host = rucio_host
120
+ else:
121
121
  self.host = config_get('client', 'rucio_host')
122
- if self.auth_host is None:
122
+ except (NoOptionError, NoSectionError) as error:
123
+ raise MissingClientParameter('Section client and Option \'%s\' cannot be found in config file' % error.args[0])
124
+
125
+ try:
126
+ if auth_host is not None:
127
+ self.auth_host = auth_host
128
+ else:
123
129
  self.auth_host = config_get('client', 'auth_host')
124
130
  except (NoOptionError, NoSectionError) as error:
125
131
  raise MissingClientParameter('Section client and Option \'%s\' cannot be found in config file' % error.args[0])
@@ -318,9 +324,12 @@ class BaseClient:
318
324
 
319
325
  :return: A rucio exception class and an error string.
320
326
  """
321
- try:
322
- data = parse_response(data)
323
- except ValueError:
327
+ if data is not None:
328
+ try:
329
+ data = parse_response(data)
330
+ except ValueError:
331
+ data = {}
332
+ else:
324
333
  data = {}
325
334
 
326
335
  exc_cls = 'RucioException'
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from json import dumps
16
+ from typing import Any, Optional
16
17
 
17
18
  from requests.status_codes import codes
18
19
 
@@ -26,7 +27,11 @@ class ConfigClient(BaseClient):
26
27
 
27
28
  CONFIG_BASEURL = 'config'
28
29
 
29
- def get_config(self, section=None, option=None):
30
+ def get_config(
31
+ self,
32
+ section: Optional[str] = None,
33
+ option: Optional[str] = None
34
+ ) -> dict[str, Any]:
30
35
  """
31
36
  Sends the request to get the matching configuration.
32
37
 
@@ -53,7 +58,13 @@ class ConfigClient(BaseClient):
53
58
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
54
59
  raise exc_cls(exc_msg)
55
60
 
56
- def set_config_option(self, section, option, value, use_body_for_params=True):
61
+ def set_config_option(
62
+ self,
63
+ section: str,
64
+ option: str,
65
+ value: Any,
66
+ use_body_for_params: bool = True
67
+ ) -> bool:
57
68
  """
58
69
  Sends the request to create or set an option within a section. Missing sections will be created.
59
70
 
@@ -90,7 +101,11 @@ class ConfigClient(BaseClient):
90
101
  exc_cls, exc_msg = self._get_exception(headers=r.headers, status_code=r.status_code, data=r.content)
91
102
  raise exc_cls(exc_msg)
92
103
 
93
- def delete_config_option(self, section, option):
104
+ def delete_config_option(
105
+ self,
106
+ section: str,
107
+ option: str
108
+ ) -> bool:
94
109
  """
95
110
  Sends the request to remove an option from a section
96
111
 
@@ -23,7 +23,14 @@ class CredentialClient(BaseClient):
23
23
 
24
24
  CREDENTIAL_BASEURL = 'credentials'
25
25
 
26
- def get_signed_url(self, rse, service, operation, url, lifetime=3600):
26
+ def get_signed_url(
27
+ self,
28
+ rse: str,
29
+ service: str,
30
+ operation: str,
31
+ url: str,
32
+ lifetime: int = 3600
33
+ ) -> str:
27
34
  """
28
35
  Return a signed version of the given URL for the given operation.
29
36