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 <
dylan.ratcli...@puppetlabs.com> 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 <ganesh...@gmail.com>
> 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 <
>> dylan.ratcli...@puppetlabs.com> 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 <
>>>> dylan.r...@puppetlabs.com> 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 <gane...@gmail.com> 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 puppet-dev+...@googlegroups.com.
>>>>>>> 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
>>>>> puppet-dev+...@googlegroups.com.
>>>>> 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
>>> puppet-dev+unsubscr...@googlegroups.com.
>>> 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
>> puppet-dev+unsubscr...@googlegroups.com.
>> 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
> puppet-dev+unsubscr...@googlegroups.com.
> 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 puppet-dev+unsubscr...@googlegroups.com.
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.

Reply via email to