Reindex checks install for non-external packages (#4027)

Fixes #4026

#1167 updated Database.reindex to keep old installation records to
support external packages. However, when a user manually removes a
prefix and reindexes this kept the records so the packages were
still installed according to "spack find" etc. This adds a check
for non-external packages to ensure they are properly installed
according to the directory layout.
This commit is contained in:
scheibelp 2017-04-27 15:23:09 -07:00 committed by Todd Gamblin
parent e8a814463c
commit 9a67e95686

View File

@ -473,13 +473,18 @@ def _read_suppress_error():
layout = spack.store.layout
if entry.spec.external:
layout = None
kwargs = {
'spec': entry.spec,
'directory_layout': layout,
'explicit': entry.explicit
}
self._add(**kwargs)
processed_specs.add(entry.spec)
install_check = True
else:
install_check = layout.check_installed(entry.spec)
if install_check:
kwargs = {
'spec': entry.spec,
'directory_layout': layout,
'explicit': entry.explicit
}
self._add(**kwargs)
processed_specs.add(entry.spec)
except Exception as e:
# Something went wrong, so the spec was not restored
# from old data