Puppet Function: time
- Defined in:
- vendor_modules/stdlib/lib/puppet/parser/functions/time.rb
- Function type:
- Ruby 3.x API
Summary
This function will return the current time since epoch as an integer.Overview
> Note: that since Puppet 4.8.0 the Puppet language has the data types Timestamp (a point in time) and Timespan (a duration). The following example is equivalent to calling time() without any arguments:
“`Timestamp()“`
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'vendor_modules/stdlib/lib/puppet/parser/functions/time.rb', line 7 newfunction(:time, type: :rvalue, doc: <<-DOC @summary This function will return the current time since epoch as an integer. @return the current time since epoch as an integer. @example **Usage** time() Will return something like: 1311972653 > *Note:* that since Puppet 4.8.0 the Puppet language has the data types Timestamp (a point in time) and Timespan (a duration). The following example is equivalent to calling time() without any arguments: ```Timestamp()``` DOC ) do |arguments| # The Time Zone argument is optional ... time_zone = arguments[0] if arguments[0] if !arguments.empty? && (arguments.size != 1) raise(Puppet::ParseError, "time(): Wrong number of arguments given #{arguments.size} for 0 or 1") end time = Time.new # There is probably a better way to handle Time Zone ... if time_zone && !time_zone.empty? original_zone = ENV['TZ'] local_time = time.clone local_time = local_time.utc ENV['TZ'] = time_zone result = local_time.localtime.strftime('%s') ENV['TZ'] = original_zone else result = time.localtime.strftime('%s') end # Calling Time#to_i on a receiver changes it. Trust me I am the Doctor. result = result.to_i return result end |