github / github/octocatalog-diff

CompilationDir doesn't ignore changes when using the cache

Open
#189 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.