Issue #1885 has been updated by luke.

Status changed from Duplicate to Accepted

I've decided to fix this separately, rather than trying for all of #1903 in one 
go.

This is easy to do for current clients, but to provide backward compatibility 
the relationship parameters still need to inherit.  I haven't decided the best 
way to do this, but the choices seem to be either maintain through the compile 
whether the client is old, or have the extraction to the old format provide the 
inheritance functionality.  The former is more likely.
----------------------------------------
Bug #1885: Requires are passed down to defines and exported with resources
http://projects.reductivelabs.com/issues/1885

Author: dkM1
Status: Duplicate
Priority: High
Assigned to: luke
Category: plumbing
Target version: 0.25.0
Complexity: Unknown
Affected version: 0.24.7
Keywords: 


When an export is in a define and the define is called with a require the 
require is exported. 

Sample code.  
<pre>
class export::collect_test {

    Export::Collect_define <<||>>

}

define export::collect_define ($content) {

    file { 
       "$name":
            ensure => file, 
            owner => "root", group => "root", mode => 755,
            content => $content;
    }
    
}



class remote_export::remote_test1 {
    
    file { 
       "/tmp/testrequirefile1":
            ensure => file, 
            owner => "root", group => "root", mode => 755,
            content => "I am only required on remote host";
    }

    remote_export::remote_define {
        "remote_test1":
            content => "test file contents",
            require => File["/tmp/testrequirefile1"];
    }
    
}

class remote_export::remote_test2 {
    
    file { 
       "/tmp/testrequirefile2":
            ensure => file, 
            owner => "root", group => "root", mode => 755,
            content => "I am only required on remote host",
            before => Remote_export::Remote_define["remote_test2"];
    }

    remote_export::remote_define {
        "remote_test2":
            content => "test file contents";
    }
    
}

define remote_export::remote_define ($content) {

    file { 
       "/tmp/testlocalfile":
            ensure => file, 
            owner => "root", group => "root", mode => 755,
            content => $content;
    }
    
    @@export::collect_define {
        $name:
            content => $content;
    }
    
}
</pre>

When I use a "require" to require the order in remote_export1 class it does 
export the require. 

<pre>
    id    |                         value                         | 
param_name_id | line | resource_id |         updated_at         |         
created_at         
----------+-------------------------------------------------------+---------------+------+-------------+----------------------------+----------------------------
 12669414 | --- !ruby/object:Puppet::Parser::Resource::Reference 
title: /tmp/testrequirefile1
type: File
 |             2 |      |       94995 | 2009-01-23 12:36:06.533296 | 2009-01-23 
12:36:06.533296
 12669413 | test file contents                                    |            
10 |   46 |       94995 | 2009-01-23 12:35:06.005715 | 2009-01-23 
12:35:06.005715
</pre>




When I use a "before" to require the order in remote_export2 class it doesn't 
export the require. 
<pre>

puppet=# SELECT * from param_values where resource_id = 94995;  
    id    |       value        | param_name_id | line | resource_id |         
updated_at         |         created_at         
----------+--------------------+---------------+------+-------------+----------------------------+----------------------------
 12669413 | test file contents |            10 |   46 |       94995 | 
2009-01-23 12:35:06.005715 | 2009-01-23 12:35:06.005715
(1 row)
</pre>




----------------------------------------
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://reductivelabs.com/redmine/my/account

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to