• Jérome Perrin's avatar
    cli/prune: fix a case where parts where not detected as used from a recursive instance · a8eeb651
    Jérome Perrin authored
    To consider if a shared part is used, we consider all files named `slapos.cfg`
    in the instance and try to parse them as a slapos config file.
    The problem was that as soon as a file can not be parsed as a slapos config
    file, we did not continue to evaluate other `slapos.cfg` files. It was a
    `return` where it should have been a `continue`.
    
    This was especially incorrect, because when we have recursive slapos, we
    usually have a working copy of slapos repository, which contain
    `stack/slapos.cfg`, which is not a valid slapos config file.
    
    As a result, when a top level shared part was used in a software installed
    in the recursive slapos from a theia or slaprunner instance, this shared
    part was not detected as used and could have been deleted.
    
    The fix consist in checking all `slapos.cfg` files. This will make slapos
    node prune command probably much slower, because it will really iterate on
    all files now. Anyway this was fast because it was wrong.
    a8eeb651
test_prune.py 11.5 KB