mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			843 B
		
	
	
	
		
			Puppet
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			843 B
		
	
	
	
		
			Puppet
		
	
	
	
	
	
| define example::expiringhost($ip, $timestamp) {
 | |
| 
 | |
|   # Calculate the age of this resource by comparing 'now' against $timestamp
 | |
|   $age = inline_template("<%= require 'time'; Time.now - Time.parse(timestamp) %>")
 | |
| 
 | |
|   # Max age, in seconds.
 | |
|   $maxage = 60
 | |
| 
 | |
|   if $age > $maxage {
 | |
|     $expired = true
 | |
|     notice("Expiring resource $class[$name] due to age > $maxage (actual: $age)")
 | |
|   } else {
 | |
|     $expired = false
 | |
|     notice("Found recently-active $class[$name] (age: $age)")
 | |
|   }
 | |
| 
 | |
|   # I set target to a /tmp path so you can run this example as non-root.
 | |
|   # In production, you probabyl won't set target as it defaults to /etc/hosts
 | |
|   # (or wherever puppet thinks your platform wants it)
 | |
|   host {
 | |
|     $name:
 | |
|       ip => $ip,
 | |
|       target => "/tmp/expiring-hosts-example-output",
 | |
|       ensure => $expired ? { true => absent, false => present };
 | |
|   }
 | |
| }
 |