Great, It worked for me. Thanks Dylan, Reid and Michael. Appreciate all your help.
Regards, Ganesh On Sat, Jun 20, 2015 at 2:21 PM, Dylan Ratcliffe < [email protected]> wrote: > I would use the value of the $title variable to ensure both that you can > refer to the new_type resource and that it will have a unique title each > time the defined type is called, to find out more check out this page, it > has everything you need to know about writing a defined type: > > http://docs.puppetlabs.com/learning/definedtypes.html#title-and-name > > In terms of where this would go in your manifests: As long as your defined > type is sitting in a file that follows the namespacing rules it will be > accessible just like any other resource type: > > https://docs.puppetlabs.com/puppet/latest/reference/lang_namespaces.html > > > > > > On Sat, Jun 20, 2015 at 12:02 AM, Ganesh Nalawade <[email protected]> > wrote: > >> Thanks Dylan. >> This approach looks good as and users don't have to add file resource >> explicitly. >> >> >define new_type::something ( >> > $file_path, >> >) { >> > file { $file_path: >> > ensure => file, >> > notify => New_type['another_resource'], ------->*'another_resource' >> must be a variable as it is title of new_type resource. How can i pass >> title of new_type as parameter?* >> > } >> >> > new_type { 'another_resource': >> > parameter1 => $file_path, >> > } >> >} >> >> >> I am confused where to place new defined type manifest file. >> The new_type (netdev_group) can be referred here: >> >> https://github.com/ganeshnalawade/puppet-netdev-stdlib-junos/tree/master/lib/puppet/type >> >> >> >> >> >> >> >> >> >> On Fri, Jun 19, 2015 at 7:30 AM, Dylan Ratcliffe < >> [email protected]> wrote: >> >>> That's close, >>> >>> You don't need to set ensure on a defined type unless you have exposed >>> that as a paremeter, and you do need to set ensure for that file. >>> >>> Going back to the original issue of accessing the parameter of one >>> resource from another, i'll give a little example of how I envision it: >>> >>> define new_type::something ( >>> $file_path, >>> ) { >>> file { $file_path: >>> ensure => file, >>> notify => New_type['another_resource'], >>> } >>> >>> new_type { 'another_resource': >>> parameter1 => $file_path, >>> } >>> } >>> >>> In this case the new_type resource can have access to a parameter in the >>> "file" resource because it was passed in as a parameter and as a result is >>> a variable that we can use. If we wanted to actually use this type we would >>> do so like this: >>> >>> new_type::something { 'any_title': >>> file_path => '/foo/bar.html', >>> } >>> >>> Does this make sense? >>> >>> On Thursday, 18 June 2015 15:14:17 UTC+10, ganesh634 wrote: >>>> >>>> @Reid: Agreed it make sense to reference another resource instead of >>>> path string. >>>> The links you shared are very helpful. Thanks!!! >>>> >>>> @Dylan: While going through defined types i came across vhost here: >>>> >>>> https://github.com/puppetlabs/puppetlabs-apache/blob/master/manifests/vhost.pp >>>> >>>> I am not very clear how can i use it in my case. >>>> If a new defined type is used say new_type::load as below will it work? >>>> # /etc/puppetlabs/puppet/modules/new_type/manifests/load.pp >>>> define new_type::load ($path, $template_path){ >>>> include new_type file { $path: >>>> content => template($template_path), >>>> notify => new_type[ ? ], ---------> *how to pass 'sample' here? * } } >>>> >>>> #/etc/puppetlabs/puppet/manifest/site.pp >>>> node 'node_name' { >>>> $names = [ "abc", "xyz" ] >>>> new_type::load {'sample': path => '/var/tmp/test.txt' template_path => >>>> 'new_type/test_template.erb', >>>> ensure => present } >>>> } >>>> >>>> #/etc/puppetlabs/puppet/modules/new_type/templates/test_template.erb >>>> <% @names.each do |name| %> Hi <%= name %>!!! <% end %> ~ >>>> >>>> On client run >>>> #cat /var/tmp/test.txt >>>> Hi abc!!! >>>> Hi xyz!!! >>>> >>>> new_type resource 'sample' should be notified every time contents of >>>> test.txt is modified. >>>> >>>> On Thu, Jun 18, 2015 at 3:48 AM, Dylan Ratcliffe < >>>> [email protected]> wrote: >>>> >>>>> Assuming that the "file" and the "new_type" resource will always be >>>>> together I would wrap them in a defined type and expose everything you >>>>> need >>>>> as parameters. That way both can have access to it without any hacky >>>>> stuff. >>>>> >>>>> I'm not sure of your level of Puppet knowledge so if that makes no >>>>> sense let me know and I will explain. >>>>> >>>>> >>>>> >>>>> On Thursday, 18 June 2015 02:16:11 UTC+10, Michael Smith wrote: >>>>>> >>>>>> There's probably a way to do that, but I don't think it's a good idea. >>>>>> >>>>>> In order to look at the 'path' attribute of the 'file' resource, >>>>>> you'd need to specify which 'file' resource your new_type relates to. >>>>>> That >>>>>> means new_type would have a property with the value File['interface'], >>>>>> which isn't much different than having the 'path' property. Unless your >>>>>> type is specifically operating on the File resource abstraction, rather >>>>>> than the physical file itself, using 'path' seems to make more sense. >>>>>> >>>>>> Overloading the notify/require relationship to make that association >>>>>> would be a bad idea - they're 1-to-many and many-to-1 relationships - and >>>>>> probably complicated to make work. >>>>>> >>>>>> On Wed, Jun 17, 2015 at 7:38 AM, ganesh634 <[email protected]> wrote: >>>>>> >>>>>>> Pasted below an example relation for new resource say 'new_type'. >>>>>>> >>>>>>> >>>>>>> >>>>>>> file >>>>>>> >>>>>>> { "interface": >>>>>>> >>>>>>> path => "/var/tmp/test.txt", >>>>>>> >>>>>>> content => template("module/test_template.erb"), >>>>>>> >>>>>>> notify => new_type['sample'], >>>>>>> >>>>>>> } >>>>>>> >>>>>>> new_type >>>>>>> >>>>>>> { "sample": >>>>>>> >>>>>>> path => "/var/tmp/test.txt", >>>>>>> >>>>>>> active =>true, >>>>>>> >>>>>>> ensure=>present, >>>>>>> >>>>>>> } >>>>>>> >>>>>>> >>>>>>> >>>>>>> In 'new_type' resource implementation I want to access value of >>>>>>> 'path' attribute value from 'file' resource to determine certain action >>>>>>> in >>>>>>> 'new_type' resource. >>>>>>> >>>>>>> With current approach I have to keep ‘path’ attribute in ‘new_type’ >>>>>>> and mandate user to have ‘path’ value same as that of ‘path’ value >>>>>>> in file resource. >>>>>>> >>>>>>> >>>>>>> >>>>>>> How can I access 'file’ resource 'path' attribute value in >>>>>>> 'new_type' resource implementation? >>>>>>> If it is possible I can remove the 'path' attribute from 'new_type' >>>>>>> resource body as value of both path need to be same all the time. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Puppet Developers" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/puppet-dev/004da5f1-be9f-4352-a1f8-b43f34c2d859%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/puppet-dev/004da5f1-be9f-4352-a1f8-b43f34c2d859%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Michael Smith >>>>>> Sr. Software Engineer, Puppet Labs >>>>>> >>>>>> *PuppetConf 2015 <http://2015.puppetconf.com/> is coming to >>>>>> Portland, Oregon! Join us October 5-9.* >>>>>> *Register now to take advantage of the Early Adopter discount >>>>>> <https://www.eventbrite.com/e/puppetconf-2015-october-5-9-tickets-13115894995?discount=EarlyAdopter> >>>>>> * >>>>>> *—**save $349!* >>>>>> >>>>> -- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "Puppet Developers" group. >>>>> To unsubscribe from this topic, visit >>>>> https://groups.google.com/d/topic/puppet-dev/oBrN1RToyUI/unsubscribe. >>>>> >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/puppet-dev/fb4e828e-0284-416d-8714-3b9314b47277%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/puppet-dev/fb4e828e-0284-416d-8714-3b9314b47277%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Puppet Developers" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/puppet-dev/oBrN1RToyUI/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/puppet-dev/ceb93c4a-9b41-47dc-bb84-3f8daa499085%40googlegroups.com >>> <https://groups.google.com/d/msgid/puppet-dev/ceb93c4a-9b41-47dc-bb84-3f8daa499085%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Puppet Developers" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/puppet-dev/oBrN1RToyUI/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/puppet-dev/CA%2B6y2sFZKvGrtwDnKFijhjWRntjs4pSmrFsr87vNaZ39h_QiFA%40mail.gmail.com >> <https://groups.google.com/d/msgid/puppet-dev/CA%2B6y2sFZKvGrtwDnKFijhjWRntjs4pSmrFsr87vNaZ39h_QiFA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Puppet Developers" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/puppet-dev/oBrN1RToyUI/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-dev/1434790261626.a03a8a9e%40Nodemailer > <https://groups.google.com/d/msgid/puppet-dev/1434790261626.a03a8a9e%40Nodemailer?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CA%2B6y2sHCjEGJD5X%2BqVHPVqOd_9xCQJrytH1WgSh%3DOQer9K_70Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
