Last change
on this file since 30960 was 30960, checked in by davidb, 7 years ago |
Switch to using Puppet to provision machine. Strongly based on files developed for spark-hdfs cluster
|
File size:
899 bytes
|
Line | |
---|
1 | #
|
---|
2 | # parseyaml.rb
|
---|
3 | #
|
---|
4 |
|
---|
5 | module Puppet::Parser::Functions
|
---|
6 | newfunction(:parseyaml, :type => :rvalue, :doc => <<-EOS
|
---|
7 | This function accepts YAML as a string and converts it into the correct
|
---|
8 | Puppet structure.
|
---|
9 |
|
---|
10 | The optional second argument can be used to pass a default value that will
|
---|
11 | be returned if the parsing of YAML string have failed.
|
---|
12 | EOS
|
---|
13 | ) do |arguments|
|
---|
14 | raise ArgumentError, 'Wrong number of arguments. 1 or 2 arguments should be provided.' unless arguments.length >= 1
|
---|
15 | require 'yaml'
|
---|
16 |
|
---|
17 | begin
|
---|
18 | YAML::load(arguments[0]) || arguments[1]
|
---|
19 | # in ruby 1.9.3 Psych::SyntaxError is a RuntimeException
|
---|
20 | # this still needs to catch that and work also on rubies that
|
---|
21 | # do not have Psych available.
|
---|
22 | rescue StandardError, Psych::SyntaxError => e
|
---|
23 | if arguments[1]
|
---|
24 | arguments[1]
|
---|
25 | else
|
---|
26 | raise e
|
---|
27 | end
|
---|
28 | end
|
---|
29 |
|
---|
30 | end
|
---|
31 | end
|
---|
32 |
|
---|
33 | # vim: set ts=2 sw=2 et :
|
---|
Note:
See
TracBrowser
for help on using the repository browser.