Re: [Puppet Users] Re: If else statement if file exists

2014-08-20 Thread Yanis Guenane
Mea culpa for a misleading information.

Thanks John for the explanation, I didn't know about the 'particular
instant during the catalog compilation'. And for the ensure => absent,
I haven't thought about that one.

--
Yanis Guenane

On 08/20/2014 09:11 AM, jcbollinger wrote:
> 
> 
> On Tuesday, August 19, 2014 11:10:26 AM UTC-5, Yanis Guenane
> wrote:
>> 
>> If your file `/volumes/vol1` could be managed by Puppet somehow,
>> you could use if defined(File['/volumes/vol1']) as a condition.
>> 
>> Not sure if it is possible in your case,
>> 
> 
> 
> Whether it's possible is irrelevant, because that's not *correct*
> in any case.  That use of the defined() function tests whether 
> File['/volumes/vol1'] is in the catalog -- and even then it tests
> only at a particular instant during catalog compilation, ignoring
> any later addition of such a resource to the catalog.  AND it will
> return true if File['/volumes/vol1'] has ensure => absent.  None of
> that has anything to do with whether said file/directory is
> actually present on the target system at the start of the run, or
> at any random point in the middle of a run.
> 
> Do not use defined().  Ever.
> 
> 
> John
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/53F4C0B5.2010908%40gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Puppet Users] Re: If else statement if file exists

2014-08-20 Thread Eugene Sapozhnikov
Thanks for clearing it up.

I ended up just using onlyif and unless in each exec statement. this 
allowed me to rcycle the same commands between the scenario of creating the 
volume and mounting and encrypting the volume and mounting it. 

Thanks 

On Wednesday, August 20, 2014 6:11:14 AM UTC-7, jcbollinger wrote:
>
>
>
> On Tuesday, August 19, 2014 11:10:26 AM UTC-5, Yanis Guenane wrote:
>>
>> If your file `/volumes/vol1` could be managed by Puppet somehow, you 
>> could use if defined(File['/volumes/vol1']) as a condition. 
>>
>> Not sure if it is possible in your case, 
>>
>
>
> Whether it's possible is irrelevant, because that's not *correct* in any 
> case.  That use of the defined() function tests whether 
> File['/volumes/vol1'] is in the catalog -- and even then it tests only at a 
> particular instant during catalog compilation, ignoring any later addition 
> of such a resource to the catalog.  AND it will return true if 
> File['/volumes/vol1'] has ensure => absent.  None of that has anything to 
> do with whether said file/directory is actually present on the target 
> system at the start of the run, or at any random point in the middle of a 
> run.
>
> Do not use defined().  Ever.
>
>
> John
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/9abcda62-bcc5-44b8-9b24-710afa056fdd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Puppet Users] Re: If else statement if file exists

2014-08-20 Thread jcbollinger


On Tuesday, August 19, 2014 11:10:26 AM UTC-5, Yanis Guenane wrote:
>
> If your file `/volumes/vol1` could be managed by Puppet somehow, you 
> could use if defined(File['/volumes/vol1']) as a condition. 
>
> Not sure if it is possible in your case, 
>


Whether it's possible is irrelevant, because that's not *correct* in any 
case.  That use of the defined() function tests whether 
File['/volumes/vol1'] is in the catalog -- and even then it tests only at a 
particular instant during catalog compilation, ignoring any later addition 
of such a resource to the catalog.  AND it will return true if 
File['/volumes/vol1'] has ensure => absent.  None of that has anything to 
do with whether said file/directory is actually present on the target 
system at the start of the run, or at any random point in the middle of a 
run.

Do not use defined().  Ever.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/63704455-82bd-43fe-96b2-72af0a94b250%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Puppet Users] Re: If else statement if file exists

2014-08-19 Thread Eugene Sapozhnikov
Yeah sadly in this case the vol1 gets created as one part of the else 
statement, so my goal is on the second run to determine if it exists to 
just encrypt it and mount it instead of going through the whole build 
procedure.

On Tuesday, August 19, 2014 9:10:26 AM UTC-7, Yanis Guenane wrote:
>
> If your file `/volumes/vol1` could be managed by Puppet somehow, you 
> could use if defined(File['/volumes/vol1']) as a condition. 
>
> Not sure if it is possible in your case, 
>
> -- 
> Yanis Guenane 
>
> On 08/19/2014 12:04 PM, Eugene Sapozhnikov wrote: 
> > Basicly I am looking for the syntax to use as a conditional in the 
> > if statement for a file exists check. 
> > 
> > On Monday, August 18, 2014 2:45:23 PM UTC-7, Eugene Sapozhnikov 
> > wrote: 
> >> 
> >> 
> >> 
> >> I am trying to figure out a way to use a if statement to run 
> >> multiple sets of commands depending if one file exists, but I am 
> >> unable to find any good documented ways of doing this. 
> >> 
> >> Basic rough layout of what i would like to achieve is this: 
> >> 
> >> Any help on getting the correct syntax for the if statement would 
> >> be appreciated 
> >> 
> >> 
> >> 
> >> if file /volumes/vol1 exists { *exec { generate_loopback_tor: 
> >> command => "/sbin/losetup /dev/loop6 /volumes/tor", unless => 
> >> "/sbin/losetup -a| /bin/grep \"/volumes/tor\"", } * 
> >> 
> >> *exec { generate_encrypt_tor:command => " /sbin/cryptsetup 
> >> create tor ",unless => "/usr/bin/test -e /dev/mapper/tor", 
> >> }exec { generate_mount_tor: command => "/bin/mount 
> >> /dev/mapper/tor /usr/local/tor", unless => "/bin/mount | 
> >> /bin/grep \"/usr/local/tor\"", } }* else { exec { 
> >> generate_empty_file_tor: command => "/bin/dd of=/volumes/tor 
> >> bs=256M count=0 seek=1", unless => "/usr/bin/test -e 
> >> /volumes/tor", } exec { generate_loopback_tor: command => 
> >> "/sbin/losetup /dev/loop6 /volumes/tor", unless => "/sbin/losetup 
> >> -a| /bin/grep \"/volumes/tor\"", } exec { generate_encrypt_tor: 
> >> command => "/bin/echo \XX\" | /sbin/cryptsetup create tor 
> >> /dev/loop6 -", unless => "/usr/bin/test -e /dev/mapper/tor", } 
> >> exec { generate_zero_tor: command => "/bin/dd if=/dev/zero 
> >> of=/dev/mapper/tor count=512 bs=1024", unless => "/sbin/fdisk -lu 
> >> | /bin/grep \"/dev/mapper/tor\"", } exec { generate_mkfs_tor: 
> >> command => "/sbin/mke2fs -j -O dir_index /dev/mapper/tor ", 
> >> onlyif => "/sbin/parted -l | /bin/grep \"Error: /dev/mapper/tor: 
> >> unrecognised disk label\"", } exec { generate_mount_tor: command 
> >> => "/bin/mount /dev/mapper/tor /usr/local/tor", unless => 
> >> "/bin/mount | /bin/grep \"/usr/local/tor\"", } 
> >> 
> >> 
> >> } 
> >> 
> >> 
> > 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/92d21a45-52e4-497c-9992-301fc9e3b726%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Puppet Users] Re: If else statement if file exists

2014-08-19 Thread Yanis Guenane
If your file `/volumes/vol1` could be managed by Puppet somehow, you
could use if defined(File['/volumes/vol1']) as a condition.

Not sure if it is possible in your case,

--
Yanis Guenane

On 08/19/2014 12:04 PM, Eugene Sapozhnikov wrote:
> Basicly I am looking for the syntax to use as a conditional in the
> if statement for a file exists check.
> 
> On Monday, August 18, 2014 2:45:23 PM UTC-7, Eugene Sapozhnikov
> wrote:
>> 
>> 
>> 
>> I am trying to figure out a way to use a if statement to run
>> multiple sets of commands depending if one file exists, but I am
>> unable to find any good documented ways of doing this.
>> 
>> Basic rough layout of what i would like to achieve is this:
>> 
>> Any help on getting the correct syntax for the if statement would
>> be appreciated
>> 
>> 
>> 
>> if file /volumes/vol1 exists { *exec { generate_loopback_tor:
>> command => "/sbin/losetup /dev/loop6 /volumes/tor", unless =>
>> "/sbin/losetup -a| /bin/grep \"/volumes/tor\"", } *
>> 
>> *exec { generate_encrypt_tor:command => " /sbin/cryptsetup
>> create tor ",unless => "/usr/bin/test -e /dev/mapper/tor",
>> }exec { generate_mount_tor: command => "/bin/mount
>> /dev/mapper/tor /usr/local/tor", unless => "/bin/mount |
>> /bin/grep \"/usr/local/tor\"", } }* else { exec { 
>> generate_empty_file_tor: command => "/bin/dd of=/volumes/tor
>> bs=256M count=0 seek=1", unless => "/usr/bin/test -e
>> /volumes/tor", } exec { generate_loopback_tor: command =>
>> "/sbin/losetup /dev/loop6 /volumes/tor", unless => "/sbin/losetup
>> -a| /bin/grep \"/volumes/tor\"", } exec { generate_encrypt_tor:
>> command => "/bin/echo \XX\" | /sbin/cryptsetup create tor
>> /dev/loop6 -", unless => "/usr/bin/test -e /dev/mapper/tor", }
>> exec { generate_zero_tor: command => "/bin/dd if=/dev/zero
>> of=/dev/mapper/tor count=512 bs=1024", unless => "/sbin/fdisk -lu
>> | /bin/grep \"/dev/mapper/tor\"", } exec { generate_mkfs_tor:
>> command => "/sbin/mke2fs -j -O dir_index /dev/mapper/tor ",
>> onlyif => "/sbin/parted -l | /bin/grep \"Error: /dev/mapper/tor:
>> unrecognised disk label\"", } exec { generate_mount_tor: command
>> => "/bin/mount /dev/mapper/tor /usr/local/tor", unless =>
>> "/bin/mount | /bin/grep \"/usr/local/tor\"", }
>> 
>> 
>> }
>> 
>> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/53F376E1.30802%40gmail.com.
For more options, visit https://groups.google.com/d/optout.