How can one set up a conditional subscribe in puppet enterprise 3.7?
<p>I have a situation in my puppet enterprise 3.7 manifest where I could use a conditional 'subscribe' from my service to a file.  I get this error message ...</p>

<pre><code>Invalid relationship: Service[openstack-cinder-api] { subscribe =&gt; File[/etc/cinder/nfs-shares.conf] }, because File[/etc/cinder/nfs-shares.conf] doesn't seem to be in the catalog
</code></pre>

<p>... and here is the puppet code that results in the above error. Note that the error occurs when the condition <code>$enabled_backends =~ /netapp-cinder/</code> evaluates to false.</p>

<pre><code>class cinder (
... long list of parameters ...
) {
    if ( $enabled_backends =~ /netapp-cinder/ ) {
        file { '/etc/cinder/nfs-shares.conf':
            ensure  =&gt; file,
            path    =&gt; '/etc/cinder/nfs-shares.conf',
            owner   =&gt; cinder,
            group   =&gt; cinder,
            mode    =&gt; '0640',
            content =&gt; template('cinder/nfs-shares.conf.erb'),
        }
    }

    # long list of package and file resources 

    package {'qemu-kvm-rhev':
        ensure        =&gt; 'present',
        allow_virtual =&gt; false,
    } -&gt;

    package { 'openstack-cinder':
        ensure =&gt; 'present',
        name   =&gt; 'openstack-cinder',
        before =&gt; [
            File['/etc/nova/nova.conf'],
        ],
    } -&gt;

    package { 'python-cinderclient':
        ensure =&gt; 'present',
    } -&gt;

    ... even more resource declarations ...

    service { 'openstack-cinder-api':
        ensure    =&gt; running,
        enable    =&gt; true,
        subscribe =&gt; [
            File['/etc/cinder/cinder.conf'],
            File['/etc/cinder/nfs-shares.conf'],
        ],
    } -&gt;

    service { 'openstack-cinder-scheduler':
        ensure    =&gt; running,
        enable    =&gt; true,
        subscribe =&gt; [
            File['/etc/cinder/cinder.conf'],
            File['/etc/cinder/nfs-shares.conf'],
        ],
    } -&gt;

    service { 'openstack-cinder-volume':
        ensure    =&gt; running,
        enable    =&gt; true,
        subscribe =&gt; [
            File['/etc/cinder/cinder.conf'],
            File['/etc/cinder/nfs-shares.conf'],
        ],
    }

    service { 'openstack-cinder-backup':
        ensure    =&gt; running,
        enable    =&gt; true,
        subscribe =&gt; [
            File['/etc/cinder/cinder.conf'],
            File['/etc/cinder/nfs-shares.conf'],
        ],
    } -&gt; 

    ... more puppet code ...
</code></pre>

<p>Is there some way I can make the subscribe File['/etc/cinder/nfs-shares.conf'] conditional?</p>