Skip to content

Commit

Permalink
Expand comma separated platform names correctly (#4880)
Browse files Browse the repository at this point in the history
* test for platform comma separated definitions

* expand comma separated platform names correctly

* Update cylc/flow/cfgspec/globalcfg.py

Co-authored-by: Melanie Hall <[email protected]>

Co-authored-by: Melanie Hall <[email protected]>
  • Loading branch information
wxtim and datamel authored May 19, 2022
1 parent 8ff0c80 commit 356af5f
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 1 deletion.
4 changes: 3 additions & 1 deletion cylc/flow/cfgspec/globalcfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -1493,9 +1493,11 @@ def load(self):
LOG.error(f'bad {conf_type} {fname}')
raise

# Expand platforms needs to be performed first because it
# manipulates the sparse config.
self._expand_platforms()
self._set_default_editors()
self._no_platform_group_name_overlap()
self._expand_platforms()

def _set_default_editors(self):
# default to $[G]EDITOR unless an editor is defined in the config
Expand Down
45 changes: 45 additions & 0 deletions tests/functional/cylc-config/10-platform-expansion.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#!/usr/bin/env bash
# THIS FILE IS PART OF THE CYLC WORKFLOW ENGINE.
# Copyright (C) NIWA & British Crown (Met Office) & Contributors.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#-------------------------------------------------------------------------------
# Test cylc config expansion of platform section.
. "$(dirname "$0")/test_header"
#-------------------------------------------------------------------------------
set_test_number 2
#-------------------------------------------------------------------------------
cat > "global.cylc" <<__HEREDOC__
[platforms]
[[ \
foo, bar..., \
baz\d\d, qux\S\S \
]]
hosts = of_melkor, of_valar
__HEREDOC__

export CYLC_CONF_PATH="${PWD}"

TEST_NAME="${TEST_NAME_BASE}-names"
run_ok "${TEST_NAME}" cylc config --platform-names
cmp_ok "${TEST_NAME}.stdout" <<__HEREDOC__
localhost
foo
bar...
baz\d\d
qux\S\S
__HEREDOC__

exit

0 comments on commit 356af5f

Please sign in to comment.