github / github/octocatalog-diff
CompilationDir doesn't ignore changes when using the cache
- Dominant language
- Ruby
- Stars
- 252
- Forks
- 95
- PR merge metrics
- No merged PRs in 30d
Description
> 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):
~~~puppet
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.
Contributor guide
Assessment
This issue has not been assessed yet.