Issue #2237
Updated by jortel@redhat.com over 7 years ago
The pulp ostree publisher uses _libostree_ pull-local which by nature will hard link files instead of copying them. However, the _AtomicDirectoryPublishStep.process_main()_ in pulp uses _shutil.copytree()_ instead of at least attempting to move the working-directory to the master/<timestamp> location. The result is, the ostree plugin pull-local creates an ostree repository using hard links but the copy operation creates a copy. Given the size of ostree repositories, this uses a ton of disk.
THIS NEEDS TO BE FIXED IN PLATFORM.
Should be doing something like this:
<pre>
try:
rename()
except OSError as e:
if e.errno == errno.EXDEV:
copytree()
else:
raise
</pre>