Remove "spack buildcache copy" in v0.19.0 (#33437)
This commit is contained in:
parent
1e4732d5fe
commit
abf3a696bd
@ -8,7 +8,6 @@
|
|||||||
import shutil
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
import warnings
|
|
||||||
|
|
||||||
import llnl.util.tty as tty
|
import llnl.util.tty as tty
|
||||||
|
|
||||||
@ -258,19 +257,6 @@ def setup_parser(subparser):
|
|||||||
)
|
)
|
||||||
savespecfile.set_defaults(func=save_specfile_fn)
|
savespecfile.set_defaults(func=save_specfile_fn)
|
||||||
|
|
||||||
# Copy buildcache from some directory to another mirror url
|
|
||||||
copy = subparsers.add_parser("copy", help=copy_fn.__doc__)
|
|
||||||
copy.add_argument(
|
|
||||||
"--base-dir", default=None, help="Path to mirror directory (root of existing buildcache)"
|
|
||||||
)
|
|
||||||
copy.add_argument(
|
|
||||||
"--spec-file",
|
|
||||||
default=None,
|
|
||||||
help=("Path to spec json or yaml file representing buildcache entry to" + " copy"),
|
|
||||||
)
|
|
||||||
copy.add_argument("--destination-url", default=None, help="Destination mirror url")
|
|
||||||
copy.set_defaults(func=copy_fn)
|
|
||||||
|
|
||||||
# Sync buildcache entries from one mirror to another
|
# Sync buildcache entries from one mirror to another
|
||||||
sync = subparsers.add_parser("sync", help=sync_fn.__doc__)
|
sync = subparsers.add_parser("sync", help=sync_fn.__doc__)
|
||||||
sync.add_argument(
|
sync.add_argument(
|
||||||
@ -549,78 +535,6 @@ def save_specfile_fn(args):
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
def copy_fn(args):
|
|
||||||
"""Copy a buildcache entry and all its files from one mirror, given as
|
|
||||||
'--base-dir', to some other mirror, specified as '--destination-url'.
|
|
||||||
The specific buildcache entry to be copied from one location to the
|
|
||||||
other is identified using the '--spec-file' argument."""
|
|
||||||
# TODO: Remove after v0.18.0 release
|
|
||||||
msg = (
|
|
||||||
'"spack buildcache copy" is deprecated and will be removed from '
|
|
||||||
"Spack starting in v0.19.0"
|
|
||||||
)
|
|
||||||
warnings.warn(msg)
|
|
||||||
|
|
||||||
if not args.spec_file:
|
|
||||||
tty.msg("No spec yaml provided, exiting.")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
if not args.base_dir:
|
|
||||||
tty.msg("No base directory provided, exiting.")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
if not args.destination_url:
|
|
||||||
tty.msg("No destination mirror url provided, exiting.")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
dest_url = args.destination_url
|
|
||||||
|
|
||||||
if dest_url[0:7] != "file://" and dest_url[0] != "/":
|
|
||||||
tty.msg('Only urls beginning with "file://" or "/" are supported ' + "by buildcache copy.")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open(args.spec_file, "r") as fd:
|
|
||||||
spec = Spec.from_yaml(fd.read())
|
|
||||||
except Exception as e:
|
|
||||||
tty.debug(e)
|
|
||||||
tty.error("Unable to concrectize spec from yaml {0}".format(args.spec_file))
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
dest_root_path = dest_url
|
|
||||||
if dest_url[0:7] == "file://":
|
|
||||||
dest_root_path = dest_url[7:]
|
|
||||||
|
|
||||||
build_cache_dir = bindist.build_cache_relative_path()
|
|
||||||
|
|
||||||
tarball_rel_path = os.path.join(build_cache_dir, bindist.tarball_path_name(spec, ".spack"))
|
|
||||||
tarball_src_path = os.path.join(args.base_dir, tarball_rel_path)
|
|
||||||
tarball_dest_path = os.path.join(dest_root_path, tarball_rel_path)
|
|
||||||
|
|
||||||
specfile_rel_path = os.path.join(build_cache_dir, bindist.tarball_name(spec, ".spec.json"))
|
|
||||||
specfile_src_path = os.path.join(args.base_dir, specfile_rel_path)
|
|
||||||
specfile_dest_path = os.path.join(dest_root_path, specfile_rel_path)
|
|
||||||
|
|
||||||
specfile_rel_path_yaml = os.path.join(
|
|
||||||
build_cache_dir, bindist.tarball_name(spec, ".spec.yaml")
|
|
||||||
)
|
|
||||||
specfile_src_path_yaml = os.path.join(args.base_dir, specfile_rel_path)
|
|
||||||
specfile_dest_path_yaml = os.path.join(dest_root_path, specfile_rel_path)
|
|
||||||
|
|
||||||
# Make sure directory structure exists before attempting to copy
|
|
||||||
os.makedirs(os.path.dirname(tarball_dest_path))
|
|
||||||
|
|
||||||
# Now copy the specfile and tarball files to the destination mirror
|
|
||||||
tty.msg("Copying {0}".format(tarball_rel_path))
|
|
||||||
shutil.copyfile(tarball_src_path, tarball_dest_path)
|
|
||||||
|
|
||||||
tty.msg("Copying {0}".format(specfile_rel_path))
|
|
||||||
shutil.copyfile(specfile_src_path, specfile_dest_path)
|
|
||||||
|
|
||||||
tty.msg("Copying {0}".format(specfile_rel_path_yaml))
|
|
||||||
shutil.copyfile(specfile_src_path_yaml, specfile_dest_path_yaml)
|
|
||||||
|
|
||||||
|
|
||||||
def copy_buildcache_file(src_url, dest_url, local_path=None):
|
def copy_buildcache_file(src_url, dest_url, local_path=None):
|
||||||
"""Copy from source url to destination url"""
|
"""Copy from source url to destination url"""
|
||||||
tmpdir = None
|
tmpdir = None
|
||||||
|
@ -508,7 +508,7 @@ _spack_buildcache() {
|
|||||||
then
|
then
|
||||||
SPACK_COMPREPLY="-h --help"
|
SPACK_COMPREPLY="-h --help"
|
||||||
else
|
else
|
||||||
SPACK_COMPREPLY="create install list keys preview check download get-buildcache-name save-specfile copy sync update-index"
|
SPACK_COMPREPLY="create install list keys preview check download get-buildcache-name save-specfile sync update-index"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -568,10 +568,6 @@ _spack_buildcache_save_specfile() {
|
|||||||
SPACK_COMPREPLY="-h --help --root-spec --root-specfile -s --specs --specfile-dir"
|
SPACK_COMPREPLY="-h --help --root-spec --root-specfile -s --specs --specfile-dir"
|
||||||
}
|
}
|
||||||
|
|
||||||
_spack_buildcache_copy() {
|
|
||||||
SPACK_COMPREPLY="-h --help --base-dir --spec-file --destination-url"
|
|
||||||
}
|
|
||||||
|
|
||||||
_spack_buildcache_sync() {
|
_spack_buildcache_sync() {
|
||||||
SPACK_COMPREPLY="-h --help --manifest-glob --src-directory --src-mirror-name --src-mirror-url --dest-directory --dest-mirror-name --dest-mirror-url"
|
SPACK_COMPREPLY="-h --help --manifest-glob --src-directory --src-mirror-name --src-mirror-url --dest-directory --dest-mirror-name --dest-mirror-url"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user