From a8167885cdfb86dd311a7dbac89c2cc35fdd94f7 Mon Sep 17 00:00:00 2001 From: voetberg Date: Mon, 20 May 2024 09:56:00 -0500 Subject: [PATCH] Added character escapes, formatted links, and upgraded to node 18 and docusaurus 3.3.2 --- .github/workflows/update_documentation.yml | 4 +- docs/about_our_contributors.md | 112 +++++++++--------- docs/contact_us.md | 2 +- docs/contributing.md | 6 +- .../developer/setting_up_mac_apple_silicon.md | 5 +- docs/developer/webui/streamedtables.md | 2 +- docs/operator/configuration_parameters.md | 54 ++++----- docs/operator/monitoring.md | 22 ++-- docs/operator/multi_vo_rucio.md | 36 ++++-- tools/generate_release_notes.py | 9 +- tools/run_in_docker/rucio_processor.py | 5 +- tools/run_in_docker/rucio_renderer.py | 6 +- website/package.json | 11 +- 13 files changed, 139 insertions(+), 135 deletions(-) diff --git a/.github/workflows/update_documentation.yml b/.github/workflows/update_documentation.yml index eaa9144e87c..2d60463ca98 100644 --- a/.github/workflows/update_documentation.yml +++ b/.github/workflows/update_documentation.yml @@ -74,9 +74,9 @@ jobs: repository: rucio/rucio ref: master path: tools/run_in_docker/rucio - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: - node-version: 16 + node-version: 18 - name: Install rucio-api generation dependencies and build markdown sites for the API run: | python3 -m pip install -U pip setuptools diff --git a/docs/about_our_contributors.md b/docs/about_our_contributors.md index 0191f44189a..497cec50870 100644 --- a/docs/about_our_contributors.md +++ b/docs/about_our_contributors.md @@ -1,6 +1,7 @@ --- id: about_our_contributors title: About Our Contributors +mdxOptions: { format: "md" } --- Below is a list of contibutors who have contributed to the @@ -14,62 +15,61 @@ repository](https://github.com/rucio/documentation) before making a submission. # Individual contributors to the source code --- - -- Mario Lassnig , 2012-2021 -- Vincent Garonne , 2012-2019 -- Angelos Molfetas , 2012 -- Martin Barisits , 2012-2021 -- Thomas Beermann , 2012-2021 -- Ralph Vigne , 2012-2016 -- Graeme Stewart , 2012 -- Yun-Pin Sun , 2012-2013 -- Cedric Serfon , 2012-2021 -- Luis Rodrigues , 2013 -- WeiJen Chang , 2013-2014 -- Gancho Dimitrov , 2013 -- Wen Guan , 2014-2017 -- David Cameron , 2014-2016 -- Tomáš Kouba , 2014-2015 -- Cheng-Hsi Chao , 2014 -- Evangelia Liotiri , 2014-2015 -- Joaquín Bogado , 2014-2018 -- Fernando López , 2015-2016 -- Sylvain Blunier , 2016 -- Tomas Javurek , 2016-2020 -- Brian Bockelman , 2016-2018 -- Tobias Wegner , 2017-2020 -- Frank Berghaus , 2017 -- Vitjan Zavrtanik , 2017 -- Stefan Prenner , 2017-2018 -- Nicolo Magini , 2017-2018 -- Oliver Freyermuth , 2017 -- Eric Vaandering , 2018 -- Dimitrios Christidis , 2018-2021 -- Igor Mandrichenko , 2018 -- Shreyansh Khajanchi , 2018 -- Robert Illingworth , 2018 -- Hannes Hansen , 2018-2019 -- James Perry , 2019-2021 -- Vivek Nigam , 2019 - 2020 -- Kaustubh Hiware , 2019 -- Florido Paganelli , 2019 -- Boris Bauermeister 2019 -- Ruturaj Gujar 2019 -- Andrew Lister , 2019 -- Aristeidis Fkiaras , 2019 -- Benedikt Ziemons , 2020-2021 -- Muhammad Aditya Hilmy , 2020 -- Eli Chadwick , 2020 -- Patrick Austin , 2020 -- Rob Barnsley , 2020 -- Alan Malta Rodrigues , 2020 -- Rizart Dona , 2021-2022 -- Aksel Lunde Aase , 2022 -- Anton Schwarz , 2022 -- Johannes Lange , 2022-2023 -- Domenic Gosein , 2023 -- Eraldo Junior , 2021-2024 -- Dimitris Xenakis , 2024 +- Mario Lassnig [mario.lassnig@cern.ch](mailto:mario.lassnig@cern.ch), 2012-2021 +- Vincent Garonne [vgaronne@gmail.com](mailto:vgaronne@gmail.com), 2012-2019 +- Angelos Molfetas [Angelos.Molfetas@cern.c](mailto:Angelos.Molfetas@cern.ch), 2012 +- Martin Barisits [martin.barisits@cern.ch](mailto:martin.barisits@cern.ch), 2012-2021 +- Thomas Beermann [thomas.beermann@cern.ch](mailto:thomas.beermann@cern.ch), 2012-2021 +- Ralph Vigne [ralph.vigne@cern.ch](mailto:ralph.vigne@cern.ch), 2012-2016 +- Graeme Stewart [graeme.andrew.stewart@cern.ch](mailto:graeme.andrew.stewart@cern.ch), 2012 +- Yun-Pin Sun [winter0128@gmail.com](mailto:winter0128@gmail.com), 2012-2013 +- Cedric Serfon [cedric.serfon@cern.ch](mailto:cedric.serfon@cern.ch), 2012-2021 +- Luis Rodrigues [lfrodrigues@gmail.com](mailto:lfrodrigues@gmail.com), 2013 +- WeiJen Chang [e4523744@gmail.com](mailto:e4523744@gmail.com), 2013-2014 +- Gancho Dimitrov [gancho.dimitrov@cern.ch](mailto:gancho.dimitrov@cern.ch), 2013 +- Wen Guan [wguan.icedew@gmail.co](mailto:wguan.icedew@gmail.com), 2014-2017 +- David Cameron [d.g.cameron@gmail.com](mailto:d.g.cameron@gmail.com), 2014-2016 +- Tomáš Kouba [tomas.kouba@cern.ch](mailto:tomas.kouba@cern.ch), 2014-2015 +- Cheng-Hsi Chao [cheng-hsi.chao@cern.ch](mailto:cheng-hsi.chao@cern.ch), 2014 +- Evangelia Liotiri [evangelia.liotiri@cern.ch](mailto:evangelia.liotiri@cern.ch), 2014-2015 +- Joaquín Bogado [jbogado@linti.unlp.edu.ar](mailto:jbogado@linti.unlp.edu.ar), 2014-2018 +- Fernando López [fernando.e.lopez@gmail.com](mailto:fernando.e.lopez@gmail.com), 2015-2016 +- Sylvain Blunier [sylvain.blunier@cern.ch](mailto:sylvain.blunier@cern.ch), 2016 +- Tomas Javurek [tomas.javurek@cern.ch](mailto:tomas.javurek@cern.ch), 2016-2020 +- Brian Bockelman [bbockelm@cse.unl.edu](mailto:bbockelm@cse.unl.edu), 2016-2018 +- Tobias Wegner [twegner@cern.ch](mailto:twegner@cern.ch), 2017-2020 +- Frank Berghaus [frank.berghaus@cern.ch)](mailto:frank.berghaus@cern.ch), 2017 +- Vitjan Zavrtanik [vitjan.zavrtanik@cern.ch](mailto:vitjan.zavrtanik@cern.ch), 2017 +- Stefan Prenner [stefan.prenner@cern.ch](mailto:stefan.prenner@cern.ch), 2017-2018 +- Nicolo Magini [Nicolo.Magini@cern.ch](mailto:Nicolo.Magini@cern.ch), 2017-2018 +- Oliver Freyermuth [o.freyermuth@googlemail.co](mailto:o.freyermuth@googlemail.com), 2017 +- Eric Vaandering [ericvaandering@gmail.co](mailto:ericvaandering@gmail.com), 2018 +- Dimitrios Christidis [dimitrios.christidis@cern.ch](mailto:dimitrios.christidis@cern.ch), 2018-2021 +- Igor Mandrichenko [ivm@fnal.gov](mailto:ivm@fnal.gov), 2018 +- Shreyansh Khajanchi [shreyansh_k@live.com](mailto:shreyansh_k@live.com), 2018 +- Robert Illingworth [illingwo@fnal.gov](mailto:illingwo@fnal.gov), 2018 +- Hannes Hansen [hannes.jakob.hansen@cern.c](mailto:hannes.jakob.hansen@cern.ch), 2018-2019 +- James Perry [j.perry@epcc.ed.ac.uk](mailto:j.perry@epcc.ed.ac.uk), 2019-2021 +- Vivek Nigam [viveknigam.nigam3@gmail.com](mailto:viveknigam.nigam3@gmail.com), 2019 - 2020 +- Kaustubh Hiware [hiwarekaustubh@gmail.co](mailto:hiwarekaustubh@gmail.com), 2019 +- Florido Paganelli [florido.paganelli@hep.lu.se](mailto:florido.paganelli@hep.lu.se), 2019 +- Boris Bauermeister [Boris.Bauermeister@gmail.com](mailto:Boris.Bauermeister@gmail.com) 2019 +- Ruturaj Gujar [ruturaj.gujar23@gmail.com](mailto:ruturaj.gujar23@gmail.com) 2019 +- Andrew Lister [andrew.lister@stfc.ac.uk](mailto:andrew.lister@stfc.ac.uk), 2019 +- Aristeidis Fkiaras [aristeidis.fkiaras@cern.ch](mailto:aristeidis.fkiaras@cern.ch), 2019 +- Benedikt Ziemons [benedikt.ziemons@cern.ch](mailto:benedikt.ziemons@cern.ch), 2020-2021 +- Muhammad Aditya Hilmy [mhilmy@hey.com](mailto:mhilmy@hey.com), 2020 +- Eli Chadwick [eli.chadwick@stfc.ac.uk](mailto:eli.chadwick@stfc.ac.uk), 2020 +- Patrick Austin [:patrick.austin@stfc.ac.uk](mailto:patrick.austin@stfc.ac.uk), 2020 +- Rob Barnsley [R.Barnsley@skatelescope.org](mailto:R.Barnsley@skatelescope.org), 2020 +- Alan Malta Rodrigues [alan.malta@cern.ch](mailto:alan.malta@cern.ch), 2020 +- Rizart Dona [rizart.dona@gmail.com](mailto:rizart.dona@gmail.com), 2021-2022 +- Aksel Lunde Aase [aksel.lunde.aase@gmail.co](mailto:aksel.lunde.aase@gmail.com), 2022 +- Anton Schwarz [anton.schwarz@cern.ch](mailto:anton.schwarz@cern.ch), 2022 +- Johannes Lange [johannes.lange@uni-hamburg.de](mailto:johannes.lange@uni-hamburg.de), 2022-2023 +- Domenic Gosein [domenic.gosein@cern.ch](mailto:domenic.gosein@cern.ch), 2023 +- Eraldo Junior [esilvaju@cern.ch](mailto:esilvaju@cern.ch), 2021-2024 +- Dimitris Xenakis [d.xenakis@ieee.org](mailto:d.xenakis@ieee.org), 2024 # Organisations employing contributors diff --git a/docs/contact_us.md b/docs/contact_us.md index 70d28ae4c20..f1868961789 100644 --- a/docs/contact_us.md +++ b/docs/contact_us.md @@ -23,7 +23,7 @@ and you can view the schedule [here](https://indico.cern.ch/category/10588/). ## Rucio news mailing list -We have a dedicated news mailing list for general announcements (<10 eMails per +We have a dedicated news mailing list for general announcements (\<10 eMails per year) for the Rucio community. You can subscribe to [rucio-news@cern.ch](https://e-groups.cern.ch/e-groups/Egroup.do?egroupId=10586148) directly with a CERN account, for external subscribers please send an eMail to [rucio-news-subscribe@cern.ch](mailto:rucio-news-subscribe@cern.ch?subject=Subscribe). diff --git a/docs/contributing.md b/docs/contributing.md index 36296e1f4d1..3fdf1b8fbc3 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -88,8 +88,7 @@ The following figure might help you with an overview: pre-commit install --hook-type pre-push ``` - More information: - + More information [please view the pre-commit documentation](https://pre-commit.com/#confining-hooks-to-run-at-certain-stages) ### 2. Create an Issue @@ -130,8 +129,7 @@ list__](https://github.com/rucio/rucio/labels) and are usually specified on the issue of the change. Add additional explanations to the body of the commit, such as motivation for -certain decisions and background information. Here are some general rules: -. +certain decisions and background information. [Here are some general rules.](https://cbea.ms/git-commit/). If you add a [__github-recognised keyword__](https://help.github.com/articles/closing-issues-using-keywords/) then diff --git a/docs/developer/setting_up_mac_apple_silicon.md b/docs/developer/setting_up_mac_apple_silicon.md index d21ee014e2f..c97bd7f2ae3 100644 --- a/docs/developer/setting_up_mac_apple_silicon.md +++ b/docs/developer/setting_up_mac_apple_silicon.md @@ -23,8 +23,11 @@ In order to force Docker to run commands with platform `linux/amd64` instead of Set Docker default platform to `linux/amd64`: +```bash export DOCKER_DEFAULT_PLATFORM=linux/amd64 +``` Or run it as part of the command a single time: - +```bash DOCKER_DEFAULT_PLATFORM=linux/amd64 docker-compose -f +``` diff --git a/docs/developer/webui/streamedtables.md b/docs/developer/webui/streamedtables.md index 08795255fc1..bc5950938d7 100644 --- a/docs/developer/webui/streamedtables.md +++ b/docs/developer/webui/streamedtables.md @@ -34,7 +34,7 @@ of the `ComDOM`. The generic component when dealing with streamed data is the `StreamedTable`, which is a custom HTML table framework based on [Tanstack -Table](https://tanstack.com/table/v8/docs/guide/introduction) and optimised for +Table](https://tanstack.com/table/v8/docs/introduction) and optimized for use with the streams fed in via the ComDOM. A StreamedTable is defined by a set of react props passed into the component (which will be described below). The framework is completed by a plethora of ready-to-use components which solve the diff --git a/docs/operator/configuration_parameters.md b/docs/operator/configuration_parameters.md index 9c99a208497..4863d557ea5 100644 --- a/docs/operator/configuration_parameters.md +++ b/docs/operator/configuration_parameters.md @@ -111,13 +111,11 @@ attributes. - **common** - **extract_scope**: _(Optional)_ Default: `atlas`. - **logdir**: Path of the directory for logs. Contains `auditor.log`. - - **logformat**: _(Optional)_ Formatter of the log. See: - + - **logformat**: _(Optional)_ Formatter of the log. See [the logging formatter documentation](https://docs.python.org/3/library/logging.html#logging.Formatter) - **loglevel**: _(Optional)_. Set the root logger level to the specified level. - Values: `{'NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}`. See: - + Values: `{'NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}`. See [documentation for logging levels](https://docs.python.org/3/library/logging.html#levels) Default: `DEBUG`. For `rucio-auditor` default is `WARNING`. - **mailtemplatedir**: _(Optional)_ Path of the folder with mail templates @@ -158,7 +156,7 @@ attributes. - **core** - **default_mail_from**: _(Optional)_ Default email. Default: `None`. - **geoip_licence_key**: _(Optional)_ License key for GeoLite2. Get a free - licence key at . Default: + licence key at [the signup page](https://www.maxmind.com/en/geolite2/signup). Default: `NOLICENCE`. - **use_temp_tables**: _(Optional)_ Use Rucio with temporary table workflows. Default: `False`. @@ -217,22 +215,16 @@ attributes. sqlite, oracle}`. - **echo**: Enable echo for database logs. Values: `{0 (disable), 1 (enable)}`. - - **echo_pool**: See - - - **max_overflow**: See - - - **pool_recycle**: See - - - **pool_reset_on_return**: See - - - **pool_size**: See - - - **pool_timeout**: - + - **echo_pool**: See [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.echo_pool) + - **max_overflow**: See [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.max_overflow) + - **pool_recycle**: See [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_recycle) + - **pool_reset_on_return**: See [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_reset_on_return) + - **pool_size**: See [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_size) + - **pool_timeout**: [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_timeout) - **poolclass**: Which connection pooling mechanism to use. Values: `nullpool` (disables pooling), `queuepool` (default for all but SQLite engine), or `singletonthreadpool` (default for SQLite engine). - See + See [sqlalchemy documentation](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.poolclass) - **schema**: _(Optional)_ Schema to be applied to a database, if not set in config, try to create automatically. - **use_threadlocal** @@ -345,12 +337,10 @@ attributes. - **nongrid-trace** - **broker_virtual_host**: _(Optional)_ ?. No default. - **brokers**: Brokers separated by commas. Example: `atlas-test-mb.cern.ch`. - - **logformat**: _(Optional)_ Formatter of the log. See: - + - **logformat**: _(Optional)_ Formatter of the log. See [logging documentation](https://docs.python.org/3/library/logging.html#logging.Formatter). - **loglevel**: _(Optional)_ Set the root logger level to the specified level. - Values: `{'NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}`. See: - + Values: `{'NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}`. See [logging documentation](https://docs.python.org/3/library/logging.html#levels). Default: `DEBUG`. - **password**: Password of the `username`. @@ -393,12 +383,9 @@ attributes. - **trace** - **broker_virtual_host**: _(Optional)_ No default. - **brokers**: Brokers separated by commas. Example: `atlas-test-mb.cern.ch`. - - **logformat**: _(Optional)_ Formatter of the log. See: - - - **loglevel**: _(Optional)_ Set the root logger level to the specified level - - Values: `{'NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}`. See: - + - **logformat**: _(Optional)_ Formatter of the log. See [logging documentation](https://docs.python.org/3/library/logging.html#logging.Formatter). + - **loglevel**: _(Optional)_ Set the root logger level to the specified level. + Values: `{'NOTSET', 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'}`. See [logging documentation](https://docs.python.org/3/library/logging.html#levels). Default: `DEBUG`. - **password**: Password of the `username`. @@ -417,8 +404,7 @@ attributes. - **password**: _(Optional)_ Password of the `username`. Mandatory if `use_ssl` is not set. No default. - **port**: Port of the broker. - - **prefetch_size**: `activemq.prefetchSize`, see - + - **prefetch_size**: `activemq.prefetchSize`, see [activemq documentation](https://activemq.apache.org/what-is-the-prefetch-limit-for) - **queue**: The topic or queue to subscribe to. Example: `/queue/Consumer.kronos.rucio.tracer`. - **reconnect_attempts**: Maximum attempts to reconnect. Integer. Example: @@ -500,10 +486,10 @@ attributes. hop. Integer. Default: `10`. - **multihop_tombstone_delay**: Seconds (integer). Default: `7200`. - **use_multihop**: Boolean. Default: `False`. - - **fts3tape_metadata_plugins**: _(Optional)_ Plugins to use with FTS3 to include archive - metadata in the transfer process. List[String]. Default: `None`. - - **metadata_byte_limit**: _(Optional)_ Limit applied to `archive_metadata` during a transfer. - Only used with archive metadata plugins using FTS3. Integer. Defalt `None`. + - **fts3tape_metadata_plugins**: _(Optional)_ Plugins to use with FTS3 to include archive + metadata in the transfer process. List[String]. Default: `None`. + - **metadata_byte_limit**: _(Optional)_ Limit applied to `archive_metadata` during a transfer. + Only used with archive metadata plugins using FTS3. Integer. Defalt `None`. - **virtual_placement** - **vp_endpoint**: _(Optional)_ Virtual Placement server. Once VP is integrated in Rucio it won't be needed. Default: ` `. diff --git a/docs/operator/monitoring.md b/docs/operator/monitoring.md index 16daf832603..107b77ac774 100644 --- a/docs/operator/monitoring.md +++ b/docs/operator/monitoring.md @@ -74,12 +74,12 @@ docker run -d --name=grafana -p 3000:3000 grafana/grafana ``` The Grafana web-portal is on port 3000 of the host. Add one data source of the -type Graphite, choose access method to "Browser" and set URL to , +type Graphite, choose access method to "Browser" and set URL to [http://ip:80](http://ip:80), where ip is the address of the server hosting the Graphite container `dev_graphite_1`. A set of pre-defined Grafana Rucio internal plots is provided here -. +(https://github.com/rucio/rucio/blob/master/tools/monitoring/visualization/rucio-internal.json). Users could import them directly into Grafana. ### The list of Rucio internal metrics @@ -335,9 +335,9 @@ Rucio. ``` The formats of them are defined in `rucio-transfer.json -`__ +[https://github.com/rucio/rucio/blob/master/tools/monitoring/rucio-transfer.json]`__ and `rucio_deletion.json -`__ +[https://github.com/rucio/rucio/blob/master/tools/monitoring/rucio-deletion.json]`__ which could be imported into Kibana. Rucio also sends messages when adding/deleting rules/DIDs and for file/dataset @@ -346,10 +346,10 @@ access. So the monitoring is not limitted to data transferring. 4) Transmit messages from message queue to Elastisearch This could be done via Logstash. Please refer to -. +[https://www.elastic.co/blog/integrating-jms-with-elasticsearch-service-using-logstash]. Alternatively you could use a simple python script `extract.py -`__. for +[https://github.com/rucio/rucio/blob/master/tools/monitoring/extract.py]`__. for this after installing the required tools ```bash @@ -367,7 +367,7 @@ exporter.py and start it. It could be made as a systemd service for convenience. 5) Create Kibana dashboards based on the imported messages. A set of pre-defined dashboards can be found `here -`__. in +[https://github.com/rucio/rucio/tree/master/tools/monitoring/visualization]`__. in json format which could be imported to Kibana directly. But you may have to resolve different UUIDs in Kibana. @@ -424,14 +424,14 @@ used space, how many files are saved on each RSE etc. Please fill in the jdbc connection details and Elastisearch connection details in the config file. More pipeline definitions can be found `here -`__, +[https://github.com/rucio/rucio/tree/master/tools/monitoring/logstash-pipeline]`__, and users could design their own DB queries for their specific monitoring needs. Also users could directly import the Elasticsearch indices and Kibana dashboard from `these -`__ +[https://github.com/rucio/rucio/tree/master/tools/monitoring/visualization/db_dump]`__ json files. ## Footnotes -[^1]: -[^2]: +[^1]: [https://graphiteapp.org/] +[^2]: [https://grafana.com/] diff --git a/docs/operator/multi_vo_rucio.md b/docs/operator/multi_vo_rucio.md index ec81657f0a2..4282954fdc9 100644 --- a/docs/operator/multi_vo_rucio.md +++ b/docs/operator/multi_vo_rucio.md @@ -44,9 +44,9 @@ submitting and polling transfers to use the correct certificates. <3 char vo name> = ``` -It is recommended that the proxies are placed in /tmp/x509up_, and the -certificates and keys are placed in /opt/rucio/certs// and -/opt/rucio/keys// respectively. +It is recommended that the proxies are placed in /tmp/x509up_[VO], and the +certificates and keys are placed in /opt/rucio/certs/[VO]/ and +/opt/rucio/keys/[VO]/ respectively. However, `vo` should not be set for the server or the daemons as these parts of Rucio are not associated with a single VO. If `multi_vo` is not set, or set to @@ -56,8 +56,15 @@ Similar settings need to be changed on the server and daemon rucio.cfg files as well as on the client end. For the server `multi_vo` should also be set in the config file. For the daemons another section is needed to be added, this is to map each VO to its own proxy certificate. Rucio uses this information when -submitting and polling transfers to use the correct certificates. '''cfg -[vo_certs] ... <3 char vo name> = ''' However, `vo` should +submitting and polling transfers to use the correct certificates. + +```yaml +[vo_certs] + ... +[3 char vo name] = [path/to/vo/proxy] +``` + +However, `vo` should not be set for the server or the daemons as these parts of Rucio are not associated with a single VO. If `multi_vo` is not set, or set to False, then Rucio will operate normally. @@ -215,13 +222,18 @@ Before starting, ensure that `multi_vo` is set to `True` in the config file (this option can be removed after completing the conversion). The first stage of the conversion is the same as before, dropping foreign key constraints and renaming the entries that were associated with the old VO. The name of this VO -is the only required argument: ```bash $ tools/convert_database_vo.py +is the only required argument: +```bash +$ tools/convert_database_vo.py convert_to_svo old ALTER TABLE account_limits DROP CONSTRAINT "ACCOUNT_LIMITS_ACCOUNT_FK"; ... UPDATE account_limits SET account=split_part(account_limits.account, '@', 1) WHERE split_part(account_limits.account, '@', 2) = 'old'; ... ALTER TABLE account_limits ADD CONSTRAINT "ACCOUNT_LIMITS_ACCOUNT_FK" FOREIGN KEY(account) -REFERENCES accounts (account); ``` By default data associated with any other VOs +REFERENCES accounts (account); +``` + +By default data associated with any other VOs is left in the database, but will be inaccessible to Rucio users. By setting pass the argument `--delete_vos`, these entries will be deleted from the database completely: @@ -237,6 +249,10 @@ tools/convert_database_vo.py convert_to_svo old --delete_vos ... \ Once again, historical tables skipped with `--skip_history`, and the commands can be run directly against the database using the `--commit_changes` argument; if this is not set then the `super_root` account should be manually deleted -after running the SQL: ```bash $ python >>> from rucio.common.types import -InternalAccount >>> from rucio.core.account import del_account >>> -del_account(InternalAccount('super_root', vo='def')) ``` +after running the SQL: +```bash +$ python +>>> from rucio.common.types import InternalAccount +>>> from rucio.core.account import del_account +>>> del_account(InternalAccount('super_root', vo='def')) +``` diff --git a/tools/generate_release_notes.py b/tools/generate_release_notes.py index e1f73b6a5d7..3fdd3f8dd05 100755 --- a/tools/generate_release_notes.py +++ b/tools/generate_release_notes.py @@ -62,7 +62,14 @@ def github_to_markdown_body(body: str) -> str: r"#(\d{1,5})", r"[#\1](https://github.com/rucio/rucio/issues/\1)", body ) - REPLACE_CHARACTERS = {"<": r"\<", ">": r"\>", "\r\n": "\n", "\n#": "\n\n##"} + REPLACE_CHARACTERS = { + "<": r"\<", + ">": r"\>", + "\r\n": "\n", + "\n#": "\n\n##", + "{": "", + "}": "", + } for before, after in REPLACE_CHARACTERS.items(): body = body.replace(before, after) diff --git a/tools/run_in_docker/rucio_processor.py b/tools/run_in_docker/rucio_processor.py index 04ff5e1594e..1b022049eac 100644 --- a/tools/run_in_docker/rucio_processor.py +++ b/tools/run_in_docker/rucio_processor.py @@ -34,10 +34,7 @@ def sanitize(s: t.Optional[str]) -> str: if not s: return "" - character_map = { - r"<": r"\<", - r">": r"\>", - } + character_map = {r"<": r"\<", r">": r"\>", r"{": r"\{", r"}": r"\}"} for before, after in character_map.items(): s = s.replace(before, after) diff --git a/tools/run_in_docker/rucio_renderer.py b/tools/run_in_docker/rucio_renderer.py index 08d323fb855..3d370647fe0 100644 --- a/tools/run_in_docker/rucio_renderer.py +++ b/tools/run_in_docker/rucio_renderer.py @@ -26,11 +26,7 @@ def get_first_client_class( def sanitize(s: str) -> str: - character_map = { - r"_": r"\_", - r"<": r"\<", - r">": r"\>", - } + character_map = {r"_": r"\_", r"<": r"\<", r">": r"\>", r"{": r"\{", r"}": r"\}"} for before, after in character_map.items(): s = s.replace(before, after) diff --git a/website/package.json b/website/package.json index d7fc6dc892d..9c482658c78 100644 --- a/website/package.json +++ b/website/package.json @@ -14,10 +14,11 @@ }, "devDependencies": {}, "dependencies": { - "@docusaurus/core": "2.4.1", - "@docusaurus/preset-classic": "2.4.1", + "@docusaurus/core": "^3.3.2", + "@docusaurus/preset-classic": "^3.3.2", + "@mdx-js/react": "^3.0.0", "clsx": "^1.1.1", - "react": "^17.0.1", - "react-dom": "^17.0.1" + "react": "^18.2.0", + "react-dom": "^18.2.0" } -} \ No newline at end of file +}