summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorscheibelp <scheibel1@llnl.gov>2017-06-13 09:15:51 -0700
committerbecker33 <becker33@llnl.gov>2017-06-13 09:15:51 -0700
commit1e69d9d1a94c1f3f5b165e7b5eeebcf65e1789fc (patch)
treee3e1240397f3d4b60eb2e80a8e81036c2da9d664 /var
parent9defe2c1c24ffb655346a94307fd4b0409beeff6 (diff)
downloadspack-1e69d9d1a94c1f3f5b165e7b5eeebcf65e1789fc.tar.gz
spack-1e69d9d1a94c1f3f5b165e7b5eeebcf65e1789fc.tar.bz2
spack-1e69d9d1a94c1f3f5b165e7b5eeebcf65e1789fc.tar.xz
spack-1e69d9d1a94c1f3f5b165e7b5eeebcf65e1789fc.zip
Override partial installs by default - part three (#4331)
* During install, remove prior unfinished installs If a user performs an installation which fails, in some cases the install prefix is still present, and the stage path may also be present. With this commit, unless the user specifies '--keep-prefix', installs are guaranteed to begin with a clean slate. The database is used to decide whether an install finished, since a database record is not added until the end of the install process. * test updates * repair_partial uses keep_prefix and keep_stage * use of mock stage object to ensure that stage is destroyed when it should be destroyed (and otherwise not) * add --restage option to 'install' command; when this option is not set, the default is to reuse a stage if it is found.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/canfail/package.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/packages/canfail/package.py b/var/spack/repos/builtin.mock/packages/canfail/package.py
new file mode 100644
index 0000000000..18def38562
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/canfail/package.py
@@ -0,0 +1,43 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# 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 terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Canfail(Package):
+ """Package which fails install unless a special attribute is set"""
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/a-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ def install(self, spec, prefix):
+ try:
+ succeed = getattr(self, 'succeed')
+ if not succeed:
+ raise InstallError("'succeed' was false")
+ touch(join_path(prefix, 'an_installation_file'))
+ except AttributeError:
+ raise InstallError("'succeed' attribute was not set")