octocatalog-diff icon indicating copy to clipboard operation
octocatalog-diff copied to clipboard

CompilationDir doesn't ignore changes when using the cache

Open masterzen opened this issue 7 years ago • 0 comments

Description of problem

When activating the cache (with --cached-master-dir option), the CompilationDir filter gets the cache path as the :from_compilation_dir instead of the original compilation dir that was used when the cache was compiled.

Thus the filter doesn't filter out resources that references the compilation dir.

For instance the following resource (from the vox pupuli hiera module):

    file { '/etc/hiera.yaml':
      ensure => symlink,
      target => "${confdir}/hiera.yaml",
    }

doesn't get ignored:

  File[/etc/hiera.yaml] =>
   parameters =>
     target =>
      - /tmp/ocd-ipc-20180604-1-nbv4q/ocd-builddir-20180604-256-10c2qyt/hiera.yaml
      + /tmp/ocd-ipc-20180605-232-1yut8ed/ocd-builddir-20180605-237-13ya1gx/hiera.yaml

When running without the cache enabled, the parameter (and resource) above gets properly filtered out.

Platform and version information

  • Your OS: ubuntu 16.04
  • Your Ruby version: 2.3.1
  • Your version of Puppet: 5.5.0
  • Your version of octocatalog-diff: 1.5.3

Anything else to add that you think will be helpful?

Either the catalog should be rewritten with the cache directory or octocatalog-diff should keep the original compilation dir in the cache so that the CompilationDir could be fed with the correct information.

masterzen avatar Jun 05 '18 12:06 masterzen