diff options
author | Doug Jacobsen <dwjacobsen@google.com> | 2022-03-20 02:13:00 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-20 01:13:00 -0700 |
commit | 9b0d5cbabf5f96aada9f1b22f73dcbc08e19d250 (patch) | |
tree | 7423405db6983c11deddbee950cd7378138c6d5b /lib | |
parent | 26552533be04e83e66be2c28e0eb5011cb54e8fa (diff) | |
download | spack-9b0d5cbabf5f96aada9f1b22f73dcbc08e19d250.tar.gz spack-9b0d5cbabf5f96aada9f1b22f73dcbc08e19d250.tar.bz2 spack-9b0d5cbabf5f96aada9f1b22f73dcbc08e19d250.tar.xz spack-9b0d5cbabf5f96aada9f1b22f73dcbc08e19d250.zip |
Enable GCS urls as valid (#29592)
* Add tests to ensure google cloud storage urls work as mirrors
This commit adds two tests to track that GCS buckets can work as
mirrors, and can be parsed as valid URLs.
Currently, gs:// format URLs are not correctly parsed.
* Fix URL parsing for GCS buckets
This commit adds GCS bucket URLs as valid URLs.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/test/cmd/mirror.py | 7 | ||||
-rw-r--r-- | lib/spack/spack/test/util/util_url.py | 5 | ||||
-rw-r--r-- | lib/spack/spack/util/url.py | 2 |
3 files changed, 13 insertions, 1 deletions
diff --git a/lib/spack/spack/test/cmd/mirror.py b/lib/spack/spack/test/cmd/mirror.py index 0027b4ae2b..e2d936c0a3 100644 --- a/lib/spack/spack/test/cmd/mirror.py +++ b/lib/spack/spack/test/cmd/mirror.py @@ -210,6 +210,13 @@ def test_mirror_crud(tmp_scope, capsys): output = mirror('list', '--scope', tmp_scope) assert 'No mirrors configured' in output + # Test GCS Mirror + mirror('add', '--scope', tmp_scope, + 'mirror', 'gs://spack-test') + + output = mirror('remove', '--scope', tmp_scope, 'mirror') + assert 'Removed mirror' in output + def test_mirror_nonexisting(tmp_scope): with pytest.raises(SpackCommandError): diff --git a/lib/spack/spack/test/util/util_url.py b/lib/spack/spack/test/util/util_url.py index 8e22c99164..971375d9cc 100644 --- a/lib/spack/spack/test/util/util_url.py +++ b/lib/spack/spack/test/util/util_url.py @@ -59,6 +59,11 @@ def test_url_parse(): assert(parsed.netloc == 'path') assert(parsed.path == '/to/resource') + parsed = url_util.parse('gs://path/to/resource') + assert(parsed.scheme == 'gs') + assert(parsed.netloc == 'path') + assert(parsed.path == '/to/resource') + spack_root = spack.paths.spack_root parsed = url_util.parse('file://$spack') assert(parsed.scheme == 'file') diff --git a/lib/spack/spack/util/url.py b/lib/spack/spack/util/url.py index d63498674b..4d511c29d2 100644 --- a/lib/spack/spack/util/url.py +++ b/lib/spack/spack/util/url.py @@ -343,7 +343,7 @@ def parse_git_url(url): def require_url_format(url): - ut = re.search(r'^(file://|http://|https://|ftp://|s3://|/)', url) + ut = re.search(r'^(file://|http://|https://|ftp://|s3://|gs://|/)', url) assert ut is not None |