From 664069d5cadc7f21a26c4c768e9591bd0cbf66b4 Mon Sep 17 00:00:00 2001 From: Keith Whyte Date: Tue, 13 Feb 2018 21:24:16 +0000 Subject: [PATCH] Moving towards a working puppet recipe for Debian 9. This commit removes the static modules and replaces them with git submodules It also removes riak and packagecloud, that are no longer used. --- .gitmodules | 12 +- modules/apt | 2 +- modules/concat | 1 + modules/concat/CHANGELOG | 127 -- modules/concat/Gemfile | 20 - modules/concat/LICENSE | 14 - modules/concat/Modulefile | 9 - modules/concat/README.md | 441 ------ modules/concat/Rakefile | 5 - modules/concat/files/concatfragments.rb | 137 -- modules/concat/files/concatfragments.sh | 140 -- modules/concat/lib/facter/concat_basedir.rb | 11 - modules/concat/manifests/fragment.pp | 121 -- modules/concat/manifests/init.pp | 232 --- modules/concat/manifests/setup.pp | 58 - modules/concat/metadata.json | 67 - modules/concat/spec/acceptance/backup_spec.rb | 101 -- modules/concat/spec/acceptance/concat_spec.rb | 204 --- .../acceptance/deprecation_warnings_spec.rb | 230 --- modules/concat/spec/acceptance/empty_spec.rb | 24 - .../spec/acceptance/fragment_source_spec.rb | 134 -- .../concat/spec/acceptance/newline_spec.rb | 57 - .../acceptance/nodesets/aix-71-vcloud.yml | 19 - .../acceptance/nodesets/centos-59-x64.yml | 10 - .../acceptance/nodesets/centos-64-x64-pe.yml | 12 - .../acceptance/nodesets/centos-64-x64.yml | 10 - .../acceptance/nodesets/debian-607-x64.yml | 10 - .../acceptance/nodesets/debian-70rc1-x64.yml | 10 - .../acceptance/nodesets/debian-73-x64.yml | 11 - .../spec/acceptance/nodesets/default.yml | 10 - .../acceptance/nodesets/fedora-18-x64.yml | 10 - .../spec/acceptance/nodesets/rhel-7-x64.yml | 15 - .../spec/acceptance/nodesets/sles-11-x64.yml | 10 - .../acceptance/nodesets/sles-11sp1-x64.yml | 10 - .../nodesets/ubuntu-server-10044-x64.yml | 10 - .../nodesets/ubuntu-server-12042-x64.yml | 10 - .../nodesets/ubuntu-server-1404-x64.yml | 11 - modules/concat/spec/acceptance/order_spec.rb | 137 -- .../spec/acceptance/quoted_paths_spec.rb | 33 - .../concat/spec/acceptance/replace_spec.rb | 241 --- .../spec/acceptance/symbolic_name_spec.rb | 32 - modules/concat/spec/acceptance/warn_spec.rb | 97 -- modules/concat/spec/spec_helper.rb | 1 - modules/concat/spec/spec_helper_acceptance.rb | 39 - .../spec/unit/classes/concat_setup_spec.rb | 42 - .../spec/unit/defines/concat_fragment_spec.rb | 267 ---- .../concat/spec/unit/defines/concat_spec.rb | 380 ----- .../spec/unit/facts/concat_basedir_spec.rb | 18 - modules/concat/tests/fragment.pp | 19 - modules/concat/tests/init.pp | 7 - modules/kannel/.project | 23 - modules/kannel/README.markdown | 3 - modules/kannel/Rakefile | 2 - modules/kannel/files/kannel-default | 2 - modules/kannel/manifests/init.pp | 35 - modules/kannel/metadata.json | 13 - modules/kannel/spec/spec.opts | 6 - modules/kannel/spec/spec_helper.rb | 2 - modules/kannel/templates/kannel.conf.erb | 67 - modules/kannel/tests/init.pp | 1 - modules/packagecloud | 1 - modules/postgresql | 2 +- modules/python | 2 +- modules/rhizo_base/manifests/riak.pp | 79 - modules/riak | 1 - modules/stdlib | 1 + modules/stdlib/CHANGELOG.md | 418 ------ modules/stdlib/CONTRIBUTING.md | 65 - modules/stdlib/Gemfile | 33 - modules/stdlib/Gemfile.lock | 166 --- modules/stdlib/LICENSE | 19 - modules/stdlib/Modulefile | 11 - modules/stdlib/README.markdown | 1304 ----------------- modules/stdlib/README_DEVELOPER.markdown | 35 - modules/stdlib/README_SPECS.markdown | 7 - modules/stdlib/RELEASE_PROCESS.markdown | 24 - modules/stdlib/Rakefile | 18 - modules/stdlib/checksums.json | 349 ----- modules/stdlib/lib/facter/facter_dot_d.rb | 202 --- modules/stdlib/lib/facter/pe_version.rb | 53 - modules/stdlib/lib/facter/puppet_vardir.rb | 26 - modules/stdlib/lib/facter/root_home.rb | 32 - .../stdlib/lib/facter/util/puppet_settings.rb | 21 - .../stdlib/lib/puppet/parser/functions/abs.rb | 36 - .../lib/puppet/parser/functions/any2array.rb | 33 - .../lib/puppet/parser/functions/base64.rb | 37 - .../lib/puppet/parser/functions/bool2num.rb | 49 - .../lib/puppet/parser/functions/capitalize.rb | 34 - .../lib/puppet/parser/functions/chomp.rb | 35 - .../lib/puppet/parser/functions/chop.rb | 37 - .../lib/puppet/parser/functions/concat.rb | 41 - .../lib/puppet/parser/functions/count.rb | 22 - .../lib/puppet/parser/functions/deep_merge.rb | 44 - .../parser/functions/defined_with_params.rb | 35 - .../lib/puppet/parser/functions/delete.rb | 46 - .../lib/puppet/parser/functions/delete_at.rb | 49 - .../parser/functions/delete_undef_values.rb | 34 - .../puppet/parser/functions/delete_values.rb | 26 - .../lib/puppet/parser/functions/difference.rb | 36 - .../lib/puppet/parser/functions/dirname.rb | 15 - .../lib/puppet/parser/functions/downcase.rb | 33 - .../lib/puppet/parser/functions/empty.rb | 28 - .../parser/functions/ensure_packages.rb | 35 - .../parser/functions/ensure_resource.rb | 45 - .../lib/puppet/parser/functions/flatten.rb | 33 - .../lib/puppet/parser/functions/floor.rb | 25 - .../puppet/parser/functions/fqdn_rotate.rb | 46 - .../parser/functions/get_module_path.rb | 17 - .../lib/puppet/parser/functions/getparam.rb | 35 - .../lib/puppet/parser/functions/getvar.rb | 26 - .../lib/puppet/parser/functions/grep.rb | 33 - .../parser/functions/has_interface_with.rb | 52 - .../puppet/parser/functions/has_ip_address.rb | 25 - .../puppet/parser/functions/has_ip_network.rb | 25 - .../lib/puppet/parser/functions/has_key.rb | 28 - .../lib/puppet/parser/functions/hash.rb | 41 - .../puppet/parser/functions/intersection.rb | 34 - .../lib/puppet/parser/functions/is_array.rb | 22 - .../lib/puppet/parser/functions/is_bool.rb | 22 - .../puppet/parser/functions/is_domain_name.rb | 50 - .../lib/puppet/parser/functions/is_float.rb | 30 - .../parser/functions/is_function_available.rb | 26 - .../lib/puppet/parser/functions/is_hash.rb | 22 - .../lib/puppet/parser/functions/is_integer.rb | 45 - .../puppet/parser/functions/is_ip_address.rb | 32 - .../puppet/parser/functions/is_mac_address.rb | 27 - .../lib/puppet/parser/functions/is_numeric.rb | 75 - .../lib/puppet/parser/functions/is_string.rb | 26 - .../lib/puppet/parser/functions/join.rb | 41 - .../parser/functions/join_keys_to_values.rb | 47 - .../lib/puppet/parser/functions/keys.rb | 26 - .../lib/puppet/parser/functions/loadyaml.rb | 20 - .../lib/puppet/parser/functions/lstrip.rb | 33 - .../stdlib/lib/puppet/parser/functions/max.rb | 21 - .../lib/puppet/parser/functions/member.rb | 44 - .../lib/puppet/parser/functions/merge.rb | 34 - .../stdlib/lib/puppet/parser/functions/min.rb | 21 - .../lib/puppet/parser/functions/num2bool.rb | 43 - .../lib/puppet/parser/functions/parsejson.rb | 24 - .../lib/puppet/parser/functions/parseyaml.rb | 24 - .../lib/puppet/parser/functions/pick.rb | 29 - .../puppet/parser/functions/pick_default.rb | 35 - .../lib/puppet/parser/functions/prefix.rb | 45 - .../lib/puppet/parser/functions/range.rb | 88 -- .../lib/puppet/parser/functions/reject.rb | 31 - .../lib/puppet/parser/functions/reverse.rb | 28 - .../lib/puppet/parser/functions/rstrip.rb | 32 - .../lib/puppet/parser/functions/shuffle.rb | 46 - .../lib/puppet/parser/functions/size.rb | 48 - .../lib/puppet/parser/functions/sort.rb | 27 - .../lib/puppet/parser/functions/squeeze.rb | 36 - .../lib/puppet/parser/functions/str2bool.rb | 46 - .../parser/functions/str2saltedsha512.rb | 32 - .../lib/puppet/parser/functions/strftime.rb | 107 -- .../lib/puppet/parser/functions/strip.rb | 39 - .../lib/puppet/parser/functions/suffix.rb | 45 - .../lib/puppet/parser/functions/swapcase.rb | 39 - .../lib/puppet/parser/functions/time.rb | 49 - .../lib/puppet/parser/functions/to_bytes.rb | 28 - .../lib/puppet/parser/functions/type.rb | 50 - .../lib/puppet/parser/functions/union.rb | 34 - .../lib/puppet/parser/functions/unique.rb | 51 - .../lib/puppet/parser/functions/upcase.rb | 41 - .../lib/puppet/parser/functions/uriescape.rb | 35 - .../functions/validate_absolute_path.rb | 56 - .../puppet/parser/functions/validate_array.rb | 33 - .../parser/functions/validate_augeas.rb | 81 - .../puppet/parser/functions/validate_bool.rb | 34 - .../puppet/parser/functions/validate_cmd.rb | 48 - .../puppet/parser/functions/validate_hash.rb | 33 - .../parser/functions/validate_ipv4_address.rb | 48 - .../parser/functions/validate_ipv6_address.rb | 49 - .../puppet/parser/functions/validate_re.rb | 40 - .../parser/functions/validate_slength.rb | 71 - .../parser/functions/validate_string.rb | 33 - .../lib/puppet/parser/functions/values.rb | 39 - .../lib/puppet/parser/functions/values_at.rb | 98 -- .../stdlib/lib/puppet/parser/functions/zip.rb | 65 - .../lib/puppet/provider/file_line/ruby.rb | 83 -- modules/stdlib/lib/puppet/type/anchor.rb | 46 - modules/stdlib/lib/puppet/type/file_line.rb | 79 - modules/stdlib/manifests/init.pp | 20 - modules/stdlib/manifests/stages.pp | 43 - modules/stdlib/metadata.json | 111 -- modules/stdlib/spec/acceptance/abs_spec.rb | 30 - .../stdlib/spec/acceptance/any2array_spec.rb | 49 - modules/stdlib/spec/acceptance/base64_spec.rb | 18 - .../stdlib/spec/acceptance/bool2num_spec.rb | 34 - modules/stdlib/spec/acceptance/build_csv.rb | 83 -- .../stdlib/spec/acceptance/capitalize_spec.rb | 33 - modules/stdlib/spec/acceptance/chomp_spec.rb | 21 - modules/stdlib/spec/acceptance/chop_spec.rb | 45 - modules/stdlib/spec/acceptance/concat_spec.rb | 18 - modules/stdlib/spec/acceptance/count_spec.rb | 30 - .../stdlib/spec/acceptance/deep_merge_spec.rb | 20 - .../acceptance/defined_with_params_spec.rb | 22 - .../stdlib/spec/acceptance/delete_at_spec.rb | 19 - modules/stdlib/spec/acceptance/delete_spec.rb | 19 - .../acceptance/delete_undef_values_spec.rb | 19 - .../spec/acceptance/delete_values_spec.rb | 25 - .../stdlib/spec/acceptance/difference_spec.rb | 26 - .../stdlib/spec/acceptance/dirname_spec.rb | 42 - .../stdlib/spec/acceptance/downcase_spec.rb | 39 - modules/stdlib/spec/acceptance/empty_spec.rb | 39 - .../spec/acceptance/ensure_packages_spec.rb | 24 - .../spec/acceptance/ensure_resource_spec.rb | 24 - .../stdlib/spec/acceptance/flatten_spec.rb | 39 - modules/stdlib/spec/acceptance/floor_spec.rb | 39 - .../spec/acceptance/fqdn_rotate_spec.rb | 34 - .../spec/acceptance/get_module_path_spec.rb | 41 - .../stdlib/spec/acceptance/getparam_spec.rb | 25 - modules/stdlib/spec/acceptance/getvar_spec.rb | 26 - modules/stdlib/spec/acceptance/grep_spec.rb | 26 - .../acceptance/has_interface_with_spec.rb | 44 - .../spec/acceptance/has_ip_address_spec.rb | 33 - .../spec/acceptance/has_ip_network_spec.rb | 33 - .../stdlib/spec/acceptance/has_key_spec.rb | 41 - modules/stdlib/spec/acceptance/hash_spec.rb | 26 - .../spec/acceptance/intersection_spec.rb | 27 - .../stdlib/spec/acceptance/is_array_spec.rb | 67 - .../stdlib/spec/acceptance/is_bool_spec.rb | 81 - .../spec/acceptance/is_domain_name_spec.rb | 83 -- .../stdlib/spec/acceptance/is_float_spec.rb | 86 -- .../acceptance/is_function_available_spec.rb | 58 - .../stdlib/spec/acceptance/is_hash_spec.rb | 63 - .../stdlib/spec/acceptance/is_integer_spec.rb | 95 -- .../spec/acceptance/is_ip_address_spec.rb | 80 - .../spec/acceptance/is_mac_address_spec.rb | 38 - .../stdlib/spec/acceptance/is_numeric_spec.rb | 95 -- .../stdlib/spec/acceptance/is_string_spec.rb | 102 -- .../acceptance/join_keys_to_values_spec.rb | 24 - modules/stdlib/spec/acceptance/join_spec.rb | 26 - modules/stdlib/spec/acceptance/keys_spec.rb | 23 - .../stdlib/spec/acceptance/loadyaml_spec.rb | 31 - modules/stdlib/spec/acceptance/lstrip_spec.rb | 34 - modules/stdlib/spec/acceptance/max_spec.rb | 20 - modules/stdlib/spec/acceptance/member_spec.rb | 26 - modules/stdlib/spec/acceptance/merge_spec.rb | 23 - modules/stdlib/spec/acceptance/min_spec.rb | 20 - .../acceptance/nodesets/centos-6-vcloud.yml | 15 - .../acceptance/nodesets/centos-64-x64-pe.yml | 12 - .../acceptance/nodesets/centos-64-x64.yml | 10 - .../spec/acceptance/nodesets/default.yml | 10 - .../acceptance/nodesets/fedora-18-x64.yml | 10 - .../spec/acceptance/nodesets/sles-11-x64.yml | 10 - .../nodesets/ubuntu-server-10044-x64.yml | 10 - .../nodesets/ubuntu-server-12042-x64.yml | 10 - .../stdlib/spec/acceptance/num2bool_spec.rb | 76 - .../stdlib/spec/acceptance/parsejson_spec.rb | 34 - .../stdlib/spec/acceptance/parseyaml_spec.rb | 35 - .../spec/acceptance/pick_default_spec.rb | 54 - modules/stdlib/spec/acceptance/pick_spec.rb | 44 - modules/stdlib/spec/acceptance/prefix_spec.rb | 42 - modules/stdlib/spec/acceptance/range_spec.rb | 36 - modules/stdlib/spec/acceptance/reject_spec.rb | 42 - .../stdlib/spec/acceptance/reverse_spec.rb | 23 - modules/stdlib/spec/acceptance/rstrip_spec.rb | 34 - .../stdlib/spec/acceptance/shuffle_spec.rb | 34 - modules/stdlib/spec/acceptance/size_spec.rb | 55 - modules/stdlib/spec/acceptance/sort_spec.rb | 34 - .../stdlib/spec/acceptance/squeeze_spec.rb | 47 - .../stdlib/spec/acceptance/str2bool_spec.rb | 31 - .../spec/acceptance/str2saltedsha512_spec.rb | 22 - .../stdlib/spec/acceptance/strftime_spec.rb | 22 - modules/stdlib/spec/acceptance/strip_spec.rb | 34 - modules/stdlib/spec/acceptance/suffix_spec.rb | 42 - .../stdlib/spec/acceptance/swapcase_spec.rb | 22 - modules/stdlib/spec/acceptance/time_spec.rb | 36 - .../stdlib/spec/acceptance/to_bytes_spec.rb | 27 - modules/stdlib/spec/acceptance/type_spec.rb | 37 - modules/stdlib/spec/acceptance/union_spec.rb | 24 - modules/stdlib/spec/acceptance/unique_spec.rb | 33 - .../spec/acceptance/unsupported_spec.rb | 11 - modules/stdlib/spec/acceptance/upcase_spec.rb | 33 - .../stdlib/spec/acceptance/uriescape_spec.rb | 23 - .../acceptance/validate_absolute_path_spec.rb | 31 - .../spec/acceptance/validate_array_spec.rb | 37 - .../spec/acceptance/validate_augeas_spec.rb | 63 - .../spec/acceptance/validate_bool_spec.rb | 37 - .../spec/acceptance/validate_cmd_spec.rb | 50 - .../spec/acceptance/validate_hash_spec.rb | 37 - .../acceptance/validate_ipv4_address_spec.rb | 31 - .../acceptance/validate_ipv6_address_spec.rb | 31 - .../spec/acceptance/validate_re_spec.rb | 47 - .../spec/acceptance/validate_slength_spec.rb | 72 - .../spec/acceptance/validate_string_spec.rb | 36 - .../stdlib/spec/acceptance/values_at_spec.rb | 73 - modules/stdlib/spec/acceptance/values_spec.rb | 31 - modules/stdlib/spec/acceptance/zip_spec.rb | 74 - modules/stdlib/spec/classes/anchor_spec.rb | 30 - modules/stdlib/spec/fixtures/dscacheutil/root | 8 - .../stdlib/spec/fixtures/manifests/site.pp | 0 modules/stdlib/spec/functions/abs_spec.rb | 25 - .../stdlib/spec/functions/any2array_spec.rb | 55 - modules/stdlib/spec/functions/base64_spec.rb | 34 - .../stdlib/spec/functions/bool2num_spec.rb | 24 - .../stdlib/spec/functions/capitalize_spec.rb | 19 - modules/stdlib/spec/functions/chomp_spec.rb | 19 - modules/stdlib/spec/functions/chop_spec.rb | 19 - modules/stdlib/spec/functions/concat_spec.rb | 30 - modules/stdlib/spec/functions/count_spec.rb | 31 - .../stdlib/spec/functions/deep_merge_spec.rb | 105 -- .../functions/defined_with_params_spec.rb | 37 - .../stdlib/spec/functions/delete_at_spec.rb | 25 - modules/stdlib/spec/functions/delete_spec.rb | 56 - .../functions/delete_undef_values_spec.rb | 41 - .../spec/functions/delete_values_spec.rb | 36 - .../stdlib/spec/functions/difference_spec.rb | 19 - modules/stdlib/spec/functions/dirname_spec.rb | 24 - .../stdlib/spec/functions/downcase_spec.rb | 24 - modules/stdlib/spec/functions/empty_spec.rb | 23 - .../spec/functions/ensure_packages_spec.rb | 81 - .../spec/functions/ensure_resource_spec.rb | 113 -- modules/stdlib/spec/functions/flatten_spec.rb | 27 - modules/stdlib/spec/functions/floor_spec.rb | 39 - .../stdlib/spec/functions/fqdn_rotate_spec.rb | 33 - .../spec/functions/get_module_path_spec.rb | 46 - .../stdlib/spec/functions/getparam_spec.rb | 76 - modules/stdlib/spec/functions/getvar_spec.rb | 37 - modules/stdlib/spec/functions/grep_spec.rb | 19 - .../spec/functions/has_interface_with_spec.rb | 64 - .../spec/functions/has_ip_address_spec.rb | 39 - .../spec/functions/has_ip_network_spec.rb | 36 - modules/stdlib/spec/functions/has_key_spec.rb | 42 - modules/stdlib/spec/functions/hash_spec.rb | 19 - .../spec/functions/intersection_spec.rb | 19 - .../stdlib/spec/functions/is_array_spec.rb | 29 - modules/stdlib/spec/functions/is_bool_spec.rb | 44 - .../spec/functions/is_domain_name_spec.rb | 64 - .../stdlib/spec/functions/is_float_spec.rb | 33 - .../spec/functions/is_function_available.rb | 31 - modules/stdlib/spec/functions/is_hash_spec.rb | 29 - .../stdlib/spec/functions/is_integer_spec.rb | 69 - .../spec/functions/is_ip_address_spec.rb | 39 - .../spec/functions/is_mac_address_spec.rb | 29 - .../stdlib/spec/functions/is_numeric_spec.rb | 119 -- .../stdlib/spec/functions/is_string_spec.rb | 34 - .../functions/join_keys_to_values_spec.rb | 40 - modules/stdlib/spec/functions/join_spec.rb | 19 - modules/stdlib/spec/functions/keys_spec.rb | 21 - .../stdlib/spec/functions/loadyaml_spec.rb | 25 - modules/stdlib/spec/functions/lstrip_spec.rb | 19 - modules/stdlib/spec/functions/max_spec.rb | 27 - modules/stdlib/spec/functions/member_spec.rb | 24 - modules/stdlib/spec/functions/merge_spec.rb | 52 - modules/stdlib/spec/functions/min_spec.rb | 27 - .../stdlib/spec/functions/num2bool_spec.rb | 67 - .../stdlib/spec/functions/parsejson_spec.rb | 22 - .../stdlib/spec/functions/parseyaml_spec.rb | 24 - .../spec/functions/pick_default_spec.rb | 58 - modules/stdlib/spec/functions/pick_spec.rb | 34 - modules/stdlib/spec/functions/prefix_spec.rb | 28 - modules/stdlib/spec/functions/range_spec.rb | 70 - modules/stdlib/spec/functions/reject_spec.rb | 20 - modules/stdlib/spec/functions/reverse_spec.rb | 19 - modules/stdlib/spec/functions/rstrip_spec.rb | 24 - modules/stdlib/spec/functions/shuffle_spec.rb | 24 - modules/stdlib/spec/functions/size_spec.rb | 24 - modules/stdlib/spec/functions/sort_spec.rb | 24 - modules/stdlib/spec/functions/squeeze_spec.rb | 24 - .../stdlib/spec/functions/str2bool_spec.rb | 31 - .../spec/functions/str2saltedsha512_spec.rb | 45 - .../stdlib/spec/functions/strftime_spec.rb | 29 - modules/stdlib/spec/functions/strip_spec.rb | 18 - modules/stdlib/spec/functions/suffix_spec.rb | 27 - .../stdlib/spec/functions/swapcase_spec.rb | 19 - modules/stdlib/spec/functions/time_spec.rb | 29 - .../stdlib/spec/functions/to_bytes_spec.rb | 58 - modules/stdlib/spec/functions/type_spec.rb | 43 - modules/stdlib/spec/functions/union_spec.rb | 19 - modules/stdlib/spec/functions/unique_spec.rb | 24 - modules/stdlib/spec/functions/upcase_spec.rb | 24 - .../stdlib/spec/functions/uriescape_spec.rb | 24 - .../functions/validate_absolute_path_spec.rb | 84 -- .../spec/functions/validate_array_spec.rb | 38 - .../spec/functions/validate_augeas_spec.rb | 103 -- .../spec/functions/validate_bool_spec.rb | 51 - .../spec/functions/validate_cmd_spec.rb | 48 - .../spec/functions/validate_hash_spec.rb | 43 - .../functions/validate_ipv4_address_spec.rb | 64 - .../functions/validate_ipv6_address_spec.rb | 67 - .../stdlib/spec/functions/validate_re_spec.rb | 77 - .../spec/functions/validate_slength_spec.rb | 67 - .../spec/functions/validate_string_spec.rb | 60 - .../stdlib/spec/functions/values_at_spec.rb | 38 - modules/stdlib/spec/functions/values_spec.rb | 31 - modules/stdlib/spec/functions/zip_spec.rb | 15 - .../stdlib/spec/lib/puppet_spec/compiler.rb | 47 - .../stdlib/spec/lib/puppet_spec/database.rb | 30 - modules/stdlib/spec/lib/puppet_spec/files.rb | 61 - .../stdlib/spec/lib/puppet_spec/fixtures.rb | 29 - .../stdlib/spec/lib/puppet_spec/matchers.rb | 121 -- .../stdlib/spec/lib/puppet_spec/modules.rb | 27 - modules/stdlib/spec/lib/puppet_spec/pops.rb | 17 - modules/stdlib/spec/lib/puppet_spec/scope.rb | 15 - .../stdlib/spec/lib/puppet_spec/settings.rb | 16 - .../stdlib/spec/lib/puppet_spec/verbose.rb | 10 - .../monkey_patches/alias_should_to_must.rb | 9 - .../spec/monkey_patches/publicize_methods.rb | 11 - modules/stdlib/spec/spec.opts | 6 - modules/stdlib/spec/spec_helper.rb | 39 - modules/stdlib/spec/spec_helper_acceptance.rb | 31 - .../spec/unit/facter/facter_dot_d_spec.rb | 32 - .../spec/unit/facter/pe_version_spec.rb | 76 - .../stdlib/spec/unit/facter/root_home_spec.rb | 52 - .../unit/facter/util/puppet_settings_spec.rb | 36 - .../puppet/provider/file_line/ruby_spec.rb | 225 --- .../spec/unit/puppet/type/anchor_spec.rb | 11 - .../spec/unit/puppet/type/file_line_spec.rb | 70 - modules/stdlib/tests/file_line.pp | 9 - modules/stdlib/tests/has_interface_with.pp | 10 - modules/stdlib/tests/has_ip_address.pp | 3 - modules/stdlib/tests/has_ip_network.pp | 4 - modules/stdlib/tests/init.pp | 1 - modules/vcsrepo | 2 +- 415 files changed, 12 insertions(+), 19413 deletions(-) create mode 160000 modules/concat delete mode 100644 modules/concat/CHANGELOG delete mode 100644 modules/concat/Gemfile delete mode 100644 modules/concat/LICENSE delete mode 100644 modules/concat/Modulefile delete mode 100644 modules/concat/README.md delete mode 100644 modules/concat/Rakefile delete mode 100755 modules/concat/files/concatfragments.rb delete mode 100755 modules/concat/files/concatfragments.sh delete mode 100644 modules/concat/lib/facter/concat_basedir.rb delete mode 100644 modules/concat/manifests/fragment.pp delete mode 100644 modules/concat/manifests/init.pp delete mode 100644 modules/concat/manifests/setup.pp delete mode 100644 modules/concat/metadata.json delete mode 100644 modules/concat/spec/acceptance/backup_spec.rb delete mode 100644 modules/concat/spec/acceptance/concat_spec.rb delete mode 100644 modules/concat/spec/acceptance/deprecation_warnings_spec.rb delete mode 100644 modules/concat/spec/acceptance/empty_spec.rb delete mode 100644 modules/concat/spec/acceptance/fragment_source_spec.rb delete mode 100644 modules/concat/spec/acceptance/newline_spec.rb delete mode 100644 modules/concat/spec/acceptance/nodesets/aix-71-vcloud.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/centos-59-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/centos-64-x64-pe.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/centos-64-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/debian-607-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/debian-70rc1-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/debian-73-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/default.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/fedora-18-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/rhel-7-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/sles-11-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/sles-11sp1-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml delete mode 100644 modules/concat/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml delete mode 100644 modules/concat/spec/acceptance/order_spec.rb delete mode 100644 modules/concat/spec/acceptance/quoted_paths_spec.rb delete mode 100644 modules/concat/spec/acceptance/replace_spec.rb delete mode 100644 modules/concat/spec/acceptance/symbolic_name_spec.rb delete mode 100644 modules/concat/spec/acceptance/warn_spec.rb delete mode 100644 modules/concat/spec/spec_helper.rb delete mode 100644 modules/concat/spec/spec_helper_acceptance.rb delete mode 100644 modules/concat/spec/unit/classes/concat_setup_spec.rb delete mode 100644 modules/concat/spec/unit/defines/concat_fragment_spec.rb delete mode 100644 modules/concat/spec/unit/defines/concat_spec.rb delete mode 100644 modules/concat/spec/unit/facts/concat_basedir_spec.rb delete mode 100644 modules/concat/tests/fragment.pp delete mode 100644 modules/concat/tests/init.pp delete mode 100644 modules/kannel/.project delete mode 100644 modules/kannel/README.markdown delete mode 100644 modules/kannel/Rakefile delete mode 100644 modules/kannel/files/kannel-default delete mode 100644 modules/kannel/manifests/init.pp delete mode 100644 modules/kannel/metadata.json delete mode 100644 modules/kannel/spec/spec.opts delete mode 100644 modules/kannel/spec/spec_helper.rb delete mode 100644 modules/kannel/templates/kannel.conf.erb delete mode 100644 modules/kannel/tests/init.pp delete mode 160000 modules/packagecloud delete mode 100644 modules/rhizo_base/manifests/riak.pp delete mode 160000 modules/riak create mode 160000 modules/stdlib delete mode 100644 modules/stdlib/CHANGELOG.md delete mode 100644 modules/stdlib/CONTRIBUTING.md delete mode 100644 modules/stdlib/Gemfile delete mode 100644 modules/stdlib/Gemfile.lock delete mode 100644 modules/stdlib/LICENSE delete mode 100644 modules/stdlib/Modulefile delete mode 100644 modules/stdlib/README.markdown delete mode 100644 modules/stdlib/README_DEVELOPER.markdown delete mode 100644 modules/stdlib/README_SPECS.markdown delete mode 100644 modules/stdlib/RELEASE_PROCESS.markdown delete mode 100644 modules/stdlib/Rakefile delete mode 100644 modules/stdlib/checksums.json delete mode 100644 modules/stdlib/lib/facter/facter_dot_d.rb delete mode 100644 modules/stdlib/lib/facter/pe_version.rb delete mode 100644 modules/stdlib/lib/facter/puppet_vardir.rb delete mode 100644 modules/stdlib/lib/facter/root_home.rb delete mode 100644 modules/stdlib/lib/facter/util/puppet_settings.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/abs.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/any2array.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/base64.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/bool2num.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/capitalize.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/chomp.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/chop.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/concat.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/count.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/deep_merge.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/delete.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/delete_at.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/delete_undef_values.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/delete_values.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/difference.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/dirname.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/downcase.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/empty.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/flatten.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/floor.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/get_module_path.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/getparam.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/getvar.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/grep.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/has_key.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/hash.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/intersection.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_array.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_bool.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_float.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_function_available.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_hash.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_integer.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_numeric.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/is_string.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/join.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/keys.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/loadyaml.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/lstrip.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/max.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/member.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/merge.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/min.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/num2bool.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/parsejson.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/parseyaml.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/pick.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/pick_default.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/prefix.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/range.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/reject.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/reverse.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/rstrip.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/shuffle.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/size.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/sort.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/squeeze.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/str2bool.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/strftime.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/strip.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/suffix.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/swapcase.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/time.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/to_bytes.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/type.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/union.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/unique.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/upcase.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/uriescape.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_array.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_augeas.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_bool.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_cmd.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_hash.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_ipv4_address.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_ipv6_address.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_re.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_slength.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/validate_string.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/values.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/values_at.rb delete mode 100644 modules/stdlib/lib/puppet/parser/functions/zip.rb delete mode 100644 modules/stdlib/lib/puppet/provider/file_line/ruby.rb delete mode 100644 modules/stdlib/lib/puppet/type/anchor.rb delete mode 100644 modules/stdlib/lib/puppet/type/file_line.rb delete mode 100644 modules/stdlib/manifests/init.pp delete mode 100644 modules/stdlib/manifests/stages.pp delete mode 100644 modules/stdlib/metadata.json delete mode 100755 modules/stdlib/spec/acceptance/abs_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/any2array_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/base64_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/bool2num_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/build_csv.rb delete mode 100755 modules/stdlib/spec/acceptance/capitalize_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/chomp_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/chop_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/concat_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/count_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/deep_merge_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/defined_with_params_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/delete_at_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/delete_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/delete_undef_values_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/delete_values_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/difference_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/dirname_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/downcase_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/empty_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/ensure_packages_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/ensure_resource_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/flatten_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/floor_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/fqdn_rotate_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/get_module_path_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/getparam_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/getvar_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/grep_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/has_interface_with_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/has_ip_address_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/has_ip_network_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/has_key_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/hash_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/intersection_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_array_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_bool_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_domain_name_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_float_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_function_available_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_hash_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_integer_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_ip_address_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_mac_address_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_numeric_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/is_string_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/join_keys_to_values_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/join_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/keys_spec.rb delete mode 100644 modules/stdlib/spec/acceptance/loadyaml_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/lstrip_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/max_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/member_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/merge_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/min_spec.rb delete mode 100644 modules/stdlib/spec/acceptance/nodesets/centos-6-vcloud.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/centos-64-x64-pe.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/centos-64-x64.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/default.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/fedora-18-x64.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/sles-11-x64.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml delete mode 100644 modules/stdlib/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml delete mode 100755 modules/stdlib/spec/acceptance/num2bool_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/parsejson_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/parseyaml_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/pick_default_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/pick_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/prefix_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/range_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/reject_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/reverse_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/rstrip_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/shuffle_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/size_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/sort_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/squeeze_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/str2bool_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/str2saltedsha512_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/strftime_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/strip_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/suffix_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/swapcase_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/time_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/to_bytes_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/type_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/union_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/unique_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/unsupported_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/upcase_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/uriescape_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_absolute_path_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_array_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_augeas_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_bool_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_cmd_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_hash_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_ipv4_address_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_ipv6_address_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_re_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_slength_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/validate_string_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/values_at_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/values_spec.rb delete mode 100755 modules/stdlib/spec/acceptance/zip_spec.rb delete mode 100755 modules/stdlib/spec/classes/anchor_spec.rb delete mode 100644 modules/stdlib/spec/fixtures/dscacheutil/root delete mode 100644 modules/stdlib/spec/fixtures/manifests/site.pp delete mode 100755 modules/stdlib/spec/functions/abs_spec.rb delete mode 100755 modules/stdlib/spec/functions/any2array_spec.rb delete mode 100755 modules/stdlib/spec/functions/base64_spec.rb delete mode 100755 modules/stdlib/spec/functions/bool2num_spec.rb delete mode 100755 modules/stdlib/spec/functions/capitalize_spec.rb delete mode 100755 modules/stdlib/spec/functions/chomp_spec.rb delete mode 100755 modules/stdlib/spec/functions/chop_spec.rb delete mode 100755 modules/stdlib/spec/functions/concat_spec.rb delete mode 100755 modules/stdlib/spec/functions/count_spec.rb delete mode 100755 modules/stdlib/spec/functions/deep_merge_spec.rb delete mode 100755 modules/stdlib/spec/functions/defined_with_params_spec.rb delete mode 100755 modules/stdlib/spec/functions/delete_at_spec.rb delete mode 100755 modules/stdlib/spec/functions/delete_spec.rb delete mode 100755 modules/stdlib/spec/functions/delete_undef_values_spec.rb delete mode 100755 modules/stdlib/spec/functions/delete_values_spec.rb delete mode 100755 modules/stdlib/spec/functions/difference_spec.rb delete mode 100755 modules/stdlib/spec/functions/dirname_spec.rb delete mode 100755 modules/stdlib/spec/functions/downcase_spec.rb delete mode 100755 modules/stdlib/spec/functions/empty_spec.rb delete mode 100755 modules/stdlib/spec/functions/ensure_packages_spec.rb delete mode 100755 modules/stdlib/spec/functions/ensure_resource_spec.rb delete mode 100755 modules/stdlib/spec/functions/flatten_spec.rb delete mode 100755 modules/stdlib/spec/functions/floor_spec.rb delete mode 100755 modules/stdlib/spec/functions/fqdn_rotate_spec.rb delete mode 100755 modules/stdlib/spec/functions/get_module_path_spec.rb delete mode 100755 modules/stdlib/spec/functions/getparam_spec.rb delete mode 100755 modules/stdlib/spec/functions/getvar_spec.rb delete mode 100755 modules/stdlib/spec/functions/grep_spec.rb delete mode 100755 modules/stdlib/spec/functions/has_interface_with_spec.rb delete mode 100755 modules/stdlib/spec/functions/has_ip_address_spec.rb delete mode 100755 modules/stdlib/spec/functions/has_ip_network_spec.rb delete mode 100755 modules/stdlib/spec/functions/has_key_spec.rb delete mode 100755 modules/stdlib/spec/functions/hash_spec.rb delete mode 100755 modules/stdlib/spec/functions/intersection_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_array_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_bool_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_domain_name_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_float_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_function_available.rb delete mode 100755 modules/stdlib/spec/functions/is_hash_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_integer_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_ip_address_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_mac_address_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_numeric_spec.rb delete mode 100755 modules/stdlib/spec/functions/is_string_spec.rb delete mode 100755 modules/stdlib/spec/functions/join_keys_to_values_spec.rb delete mode 100755 modules/stdlib/spec/functions/join_spec.rb delete mode 100755 modules/stdlib/spec/functions/keys_spec.rb delete mode 100755 modules/stdlib/spec/functions/loadyaml_spec.rb delete mode 100755 modules/stdlib/spec/functions/lstrip_spec.rb delete mode 100755 modules/stdlib/spec/functions/max_spec.rb delete mode 100755 modules/stdlib/spec/functions/member_spec.rb delete mode 100755 modules/stdlib/spec/functions/merge_spec.rb delete mode 100755 modules/stdlib/spec/functions/min_spec.rb delete mode 100755 modules/stdlib/spec/functions/num2bool_spec.rb delete mode 100755 modules/stdlib/spec/functions/parsejson_spec.rb delete mode 100755 modules/stdlib/spec/functions/parseyaml_spec.rb delete mode 100755 modules/stdlib/spec/functions/pick_default_spec.rb delete mode 100755 modules/stdlib/spec/functions/pick_spec.rb delete mode 100755 modules/stdlib/spec/functions/prefix_spec.rb delete mode 100755 modules/stdlib/spec/functions/range_spec.rb delete mode 100755 modules/stdlib/spec/functions/reject_spec.rb delete mode 100755 modules/stdlib/spec/functions/reverse_spec.rb delete mode 100755 modules/stdlib/spec/functions/rstrip_spec.rb delete mode 100755 modules/stdlib/spec/functions/shuffle_spec.rb delete mode 100755 modules/stdlib/spec/functions/size_spec.rb delete mode 100755 modules/stdlib/spec/functions/sort_spec.rb delete mode 100755 modules/stdlib/spec/functions/squeeze_spec.rb delete mode 100755 modules/stdlib/spec/functions/str2bool_spec.rb delete mode 100755 modules/stdlib/spec/functions/str2saltedsha512_spec.rb delete mode 100755 modules/stdlib/spec/functions/strftime_spec.rb delete mode 100755 modules/stdlib/spec/functions/strip_spec.rb delete mode 100755 modules/stdlib/spec/functions/suffix_spec.rb delete mode 100755 modules/stdlib/spec/functions/swapcase_spec.rb delete mode 100755 modules/stdlib/spec/functions/time_spec.rb delete mode 100755 modules/stdlib/spec/functions/to_bytes_spec.rb delete mode 100755 modules/stdlib/spec/functions/type_spec.rb delete mode 100755 modules/stdlib/spec/functions/union_spec.rb delete mode 100755 modules/stdlib/spec/functions/unique_spec.rb delete mode 100755 modules/stdlib/spec/functions/upcase_spec.rb delete mode 100755 modules/stdlib/spec/functions/uriescape_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_absolute_path_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_array_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_augeas_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_bool_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_cmd_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_hash_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_ipv4_address_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_ipv6_address_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_re_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_slength_spec.rb delete mode 100755 modules/stdlib/spec/functions/validate_string_spec.rb delete mode 100755 modules/stdlib/spec/functions/values_at_spec.rb delete mode 100755 modules/stdlib/spec/functions/values_spec.rb delete mode 100755 modules/stdlib/spec/functions/zip_spec.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/compiler.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/database.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/files.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/fixtures.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/matchers.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/modules.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/pops.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/scope.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/settings.rb delete mode 100755 modules/stdlib/spec/lib/puppet_spec/verbose.rb delete mode 100755 modules/stdlib/spec/monkey_patches/alias_should_to_must.rb delete mode 100755 modules/stdlib/spec/monkey_patches/publicize_methods.rb delete mode 100644 modules/stdlib/spec/spec.opts delete mode 100755 modules/stdlib/spec/spec_helper.rb delete mode 100755 modules/stdlib/spec/spec_helper_acceptance.rb delete mode 100755 modules/stdlib/spec/unit/facter/facter_dot_d_spec.rb delete mode 100755 modules/stdlib/spec/unit/facter/pe_version_spec.rb delete mode 100755 modules/stdlib/spec/unit/facter/root_home_spec.rb delete mode 100755 modules/stdlib/spec/unit/facter/util/puppet_settings_spec.rb delete mode 100755 modules/stdlib/spec/unit/puppet/provider/file_line/ruby_spec.rb delete mode 100755 modules/stdlib/spec/unit/puppet/type/anchor_spec.rb delete mode 100755 modules/stdlib/spec/unit/puppet/type/file_line_spec.rb delete mode 100644 modules/stdlib/tests/file_line.pp delete mode 100644 modules/stdlib/tests/has_interface_with.pp delete mode 100644 modules/stdlib/tests/has_ip_address.pp delete mode 100644 modules/stdlib/tests/has_ip_network.pp delete mode 100644 modules/stdlib/tests/init.pp diff --git a/.gitmodules b/.gitmodules index 2a39663..7866b2e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,3 @@ -[submodule "modules/riak"] - path = modules/riak - url = https://github.com/basho/puppet-riak [submodule "modules/python"] path = modules/python url = https://github.com/stankevich/puppet-python.git @@ -13,9 +10,6 @@ [submodule "modules/postgresql"] path = modules/postgresql url = https://github.com/puppetlabs/puppetlabs-postgresql.git -[submodule "modules/packagecloud"] - path = modules/packagecloud - url = https://github.com/computology/computology-packagecloud.git [submodule "modules/vcsrepo"] path = modules/vcsrepo url = https://github.com/puppetlabs/puppetlabs-vcsrepo.git @@ -28,3 +22,9 @@ [submodule "modules/sysctl"] path = modules/sysctl url = https://github.com/thias/puppet-sysctl.git +[submodule "modules/stdlib"] + path = modules/stdlib + url = https://github.com/puppetlabs/puppetlabs-stdlib.git +[submodule "modules/concat"] + path = modules/concat + url = https://github.com/puppetlabs/puppetlabs-concat.git diff --git a/modules/apt b/modules/apt index 47c6f33..21a1264 160000 --- a/modules/apt +++ b/modules/apt @@ -1 +1 @@ -Subproject commit 47c6f338eda98ed849531d92b63c5e33103f76e4 +Subproject commit 21a1264f9b81950d83da626dc51faa9e45285eab diff --git a/modules/concat b/modules/concat new file mode 160000 index 0000000..7b33971 --- /dev/null +++ b/modules/concat @@ -0,0 +1 @@ +Subproject commit 7b33971ade0ad34946785b81a8fb4c5ecf471a64 diff --git a/modules/concat/CHANGELOG b/modules/concat/CHANGELOG deleted file mode 100644 index c66b922..0000000 --- a/modules/concat/CHANGELOG +++ /dev/null @@ -1,127 +0,0 @@ -2014-05-14 1.1.0 - -Summary - -This release is primarily a bugfix release since 1.1.0-rc1. - -Features: -- Improved testing, with tests moved to beaker - -Bugfixes: -- No longer attempts to set fragment owner and mode on Windows -- Fix numeric sorting -- Fix incorrect quoting -- Fix newlines - -2014-01-03 1.1.0-rc1 - -Summary: - -This release of concat was 90% written by Joshua Hoblitt, and the module team -would like to thank him for the huge amount of work he put into this release. - -This module deprecates a bunch of old parameters and usage patterns, modernizes -much of the manifest code, simplifies a whole bunch of logic and makes -improvements to almost all parts of the module. - -The other major feature is windows support, courtesy of luisfdez, with an -alternative version of the concat bash script in ruby. We've attempted to -ensure that there are no backwards incompatible changes, all users of 1.0.0 -should be able to use 1.1.0 without any failures, but you may find deprecation -warnings and we'll be aggressively moving for a 2.0 to remove those too. - -For further information on deprecations, please read: -https://github.com/puppetlabs/puppetlabs-concat/blob/master/README.md#api-deprecations - -Removed: -- Puppet 0.24 support. -- Filebucket backup of all file resources except the target concatenated file. -- Default owner/user/group values. -- Purging of long unused /usr/local/bin/concatfragments.sh - -Features: -- Windows support via a ruby version of the concat bash script. -- Huge amount of acceptance testing work added. -- Documentation (README) completely rewritten. -- New parameters in concat: - - `ensure`: Controls if the file should be present/absent at all. -- Remove requirement to include concat::setup in manifests. -- Made `gnu` parameter deprecated. -- Added parameter validation. - -Bugfixes: -- Ensure concat::setup runs before concat::fragment in all cases. -- Pluginsync references updated for modern Puppet. -- Fix incorrect group parameter. -- Use $owner instead of $id to avoid confusion with $::id -- Compatibility fixes for Puppet 2.7/ruby 1.8.7 -- Use LC_ALL=C instead of LANG=C -- Always exec the concatfragments script as root when running as root. -- Syntax and other cleanup changes. - -2013-08-09 1.0.0 - -Summary: - -Many new features and bugfixes in this release, and if you're a heavy concat -user you should test carefully before upgrading. The features should all be -backwards compatible but only light testing has been done from our side before -this release. - -Features: -- New parameters in concat: - - `replace`: specify if concat should replace existing files. - - `ensure_newline`: controls if fragments should contain a newline at the end. -- Improved README documentation. -- Add rspec:system tests (rake spec:system to test concat) - -Bugfixes -- Gracefully handle \n in a fragment resource name. -- Adding more helpful message for 'pluginsync = true' -- Allow passing `source` and `content` directly to file resource, rather than -defining resource defaults. -- Added -r flag to read so that filenames with \ will be read correctly. -- sort always uses LANG=C. -- Allow WARNMSG to contain/start with '#'. -- Replace while-read pattern with for-do in order to support Solaris. - -CHANGELOG: -- 2010/02/19 - initial release -- 2010/03/12 - add support for 0.24.8 and newer - - make the location of sort configurable - - add the ability to add shell comment based warnings to - top of files - - add the ablity to create empty files -- 2010/04/05 - fix parsing of WARN and change code style to match rest - of the code - - Better and safer boolean handling for warn and force - - Don't use hard coded paths in the shell script, set PATH - top of the script - - Use file{} to copy the result and make all fragments owned - by root. This means we can chnage the ownership/group of the - resulting file at any time. - - You can specify ensure => "/some/other/file" in concat::fragment - to include the contents of a symlink into the final file. -- 2010/04/16 - Add more cleaning of the fragment name - removing / from the $name -- 2010/05/22 - Improve documentation and show the use of ensure => -- 2010/07/14 - Add support for setting the filebucket behavior of files -- 2010/10/04 - Make the warning message configurable -- 2010/12/03 - Add flags to make concat work better on Solaris - thanks Jonathan Boyett -- 2011/02/03 - Make the shell script more portable and add a config option for root group -- 2011/06/21 - Make base dir root readable only for security -- 2011/06/23 - Set base directory using a fact instead of hardcoding it -- 2011/06/23 - Support operating as non privileged user -- 2011/06/23 - Support dash instead of bash or sh -- 2011/07/11 - Better solaris support -- 2011/12/05 - Use fully qualified variables -- 2011/12/13 - Improve Nexenta support -- 2012/04/11 - Do not use any GNU specific extensions in the shell script -- 2012/03/24 - Comply to community style guides -- 2012/05/23 - Better errors when basedir isnt set -- 2012/05/31 - Add spec tests -- 2012/07/11 - Include concat::setup in concat improving UX -- 2012/08/14 - Puppet Lint improvements -- 2012/08/30 - The target path can be different from the $name -- 2012/08/30 - More Puppet Lint cleanup -- 2012/09/04 - RELEASE 0.2.0 -- 2012/12/12 - Added (file) $replace parameter to concat diff --git a/modules/concat/Gemfile b/modules/concat/Gemfile deleted file mode 100644 index 56b9775..0000000 --- a/modules/concat/Gemfile +++ /dev/null @@ -1,20 +0,0 @@ -source ENV['GEM_SOURCE'] || "https://rubygems.org" - -group :development, :test do - gem 'rake', :require => false - gem 'rspec-puppet', :require => false - gem 'puppetlabs_spec_helper', :require => false - gem 'beaker', :require => false - gem 'beaker-rspec', :require => false - gem 'puppet-lint', :require => false - gem 'serverspec', :require => false - gem 'pry', :require => false -end - -if puppetversion = ENV['PUPPET_GEM_VERSION'] - gem 'puppet', puppetversion, :require => false -else - gem 'puppet', :require => false -end - -# vim:ft=ruby diff --git a/modules/concat/LICENSE b/modules/concat/LICENSE deleted file mode 100644 index 6a9e9a1..0000000 --- a/modules/concat/LICENSE +++ /dev/null @@ -1,14 +0,0 @@ - Copyright 2012 R.I.Pienaar - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/modules/concat/Modulefile b/modules/concat/Modulefile deleted file mode 100644 index ea9ef2c..0000000 --- a/modules/concat/Modulefile +++ /dev/null @@ -1,9 +0,0 @@ -name 'puppetlabs-concat' -version '1.1.0' -source 'git://github.com/puppetlabs/puppetlabs-concat.git' -author 'Puppetlabs' -license 'Apache 2.0' -summary 'Concat module' -description 'Concat module' -project_page 'http://github.com/puppetlabs/puppetlabs-concat' -dependency 'puppetlabs/stdlib', '>= 4.0.0' diff --git a/modules/concat/README.md b/modules/concat/README.md deleted file mode 100644 index 60eca38..0000000 --- a/modules/concat/README.md +++ /dev/null @@ -1,441 +0,0 @@ -#Concat - -[![Build Status](https://travis-ci.org/puppetlabs/puppetlabs-concat.png?branch=master)](https://travis-ci.org/puppetlabs/puppetlabs-concat) - -####Table of Contents - -1. [Overview](#overview) -2. [Module Description - What the module does and why it is useful](#module-description) -3. [Setup - The basics of getting started with concat](#setup) - * [What concat affects](#what-concat-affects) - * [Setup requirements](#setup-requirements) - * [Beginning with concat](#beginning-with-concat) -4. [Usage - Configuration options and additional functionality](#usage) - * [API _deprecations_](#api-deprecations) -5. [Reference - An under-the-hood peek at what the module is doing and how](#reference) -5. [Limitations - OS compatibility, etc.](#limitations) -6. [Development - Guide for contributing to the module](#development) - -##Overview - -This module constructs files from multiple fragments in an ordered way. - -##Module Description - -This module lets you use many concat::fragment{} resources throughout -your modules to construct a single file at the end. It does this through -a shell (or ruby) script and a temporary holding space for the fragments. - -##Setup - -###What concat affects - -* Installs concatfragments.[sh|rb] based on platform. -* Adds a concat/ directory into Puppets `vardir`. - -###Beginning with concat - -To start using concat you need to create: - -* A concat{} resource for the final file. -* One or more concat::fragment{}'s. - -A minimal example might be: - -```puppet -concat { '/tmp/file': - ensure => present, -} - -concat::fragment { 'tmpfile': - target => '/tmp/file' - content => 'test contents', - order => '01' -} -``` - -##Usage - -Please be aware that there have been a number of [API -_deprecations_](#api-deprecations). - -If you wanted a /etc/motd file that listed all the major modules -on the machine. And that would be maintained automatically even -if you just remove the include lines for other modules you could -use code like below, a sample /etc/motd would be: - -
-Puppet modules on this server:
-
-    -- Apache
-    -- MySQL
-
- -Local sysadmins can also append to the file by just editing /etc/motd.local -their changes will be incorporated into the puppet managed motd. - -```puppet -class motd { - $motd = '/etc/motd' - - concat { $motd: - owner => 'root', - group => 'root', - mode => '0644' - } - - concat::fragment{ 'motd_header': - target => $motd, - content => "\nPuppet modules on this server:\n\n", - order => '01' - } - - # local users on the machine can append to motd by just creating - # /etc/motd.local - concat::fragment{ 'motd_local': - target => $motd, - source => '/etc/motd.local', - order => '15' - } -} - -# used by other modules to register themselves in the motd -define motd::register($content="", $order=10) { - if $content == "" { - $body = $name - } else { - $body = $content - } - - concat::fragment{ "motd_fragment_$name": - target => '/etc/motd', - order => $order, - content => " -- $body\n" - } -} -``` - -To use this you'd then do something like: - -```puppet -class apache { - include apache::install, apache::config, apache::service - - motd::register{ 'Apache': } -} -``` - -##Reference - -###Classes - -####Public classes - -####Private classes -* `concat::setup`: Sets up the concat script/directories. - -###Parameters - -###Defines - -####concat - -#####`ensure` -Controls if the combined file is present or absent. - -######Example -- ensure => present -- ensure => absent - -#####`path` -Controls the destination of the file to create. - -######Example -- path => '/tmp/filename' - -#####`owner` -Set the owner of the combined file. - -######Example -- owner => 'root' - -#####`group` -Set the group of the combined file. - -######Example -- group => 'root' - -#####`mode` -Set the mode of the combined file. - -######Example -- mode => '0644' - -#####`warn` -Determine if a warning message should be added at the top of the file to let -users know it was autogenerated by Puppet. - -######Example -- warn => true -- warn => false - -#####`warn_message` -Set the contents of the warning message. - -######Example -- warn_message => 'This file is autogenerated!' - -#####`force` -Determine if empty files are allowed when no fragments were added. - -######Example -- force => true -- force => false - -#####`backup` -Controls the filebucket behavior used for the file. - -######Example -- backup => 'puppet' - -#####`replace` -Controls if Puppet should replace the destination file if it already exists. - -######Example -- replace => true -- replace => false - -#####`order` -Controls the way in which the shell script chooses to sort the files. It's -rare you'll need to adjust this. - -######Allowed Values -- order => 'alpha' -- order => 'numeric' - -#####`ensure_newline` -Ensure there's a newline at the end of the fragments. - -######Example -- ensure_newline => true -- ensure_newline => false - -####concat::fragment - -#####`target` -Choose the destination file of the fragment. - -######Example -- target => '/tmp/testfile' - -#####`content` -Create the content of the fragment. - -######Example -- content => 'test file contents' - -#####`source` -Find the sources within Puppet of the fragment. - -######Example -- source => 'puppet:///modules/test/testfile' -- source => ['puppet:///modules/test/1', 'puppet:///modules/test/2'] - -#####`order` -Order the fragments. - -######Example -- order => '01' - -#####`ensure` -Control the file of fragment created. - -######Example -- ensure => 'present' -- ensure => 'absent' -- ensure => 'file' -- ensure => 'directory' - -#####`mode` -Set the mode of the fragment. - -######Example -- mode => '0644' - -#####`owner` -Set the owner of the fragment. - -######Example -- owner => 'root' - -#####`group` -Set the group of the fragment. - -######Example -- group => 'root' - -#####`backup` -Control the filebucket behavior for the fragment. - -######Example -- backup => 'puppet' - -### API _deprecations_ - -#### Since version `1.0.0` - -##### `concat{}` `warn` parameter - -```puppet -concat { '/tmp/file': - ensure => present, - warn => 'true', # generates stringified boolean value warning -} -``` - -Using stringified Boolean values as the `warn` parameter to `concat` is -deprecated, generates a catalog compile time warning, and will be silently -treated as the concatenated file header/warning message in a future release. - -The following strings are considered a stringified Boolean value: - - * `'true'` - * `'yes'` - * `'on'` - * `'false'` - * `'no'` - * `'off'` - -Please migrate to using the Puppet DSL's native [Boolean data -type](http://docs.puppetlabs.com/puppet/3/reference/lang_datatypes.html#booleans). - -##### `concat{}` `gnu` parameter - -```puppet -concat { '/tmp/file': - ensure => present, - gnu => $foo, # generates deprecation warning -} -``` - -The `gnu` parameter to `concat` is deprecated, generates a catalog compile time -warning, and has no effect. This parameter will be removed in a future -release. - -Note that this parameter was silently ignored in the `1.0.0` release. - -##### `concat::fragment{}` `ensure` parameter - -```puppet -concat::fragment { 'cpuinfo': - ensure => '/proc/cpuinfo', # generates deprecation warning - target => '/tmp/file', -} -``` - -Passing a value other than `'present'` or `'absent'` as the `ensure` parameter -to `concat::fragment` is deprecated and generates a catalog compile time -warning. The warning will become a catalog compilation failure in a future -release. - -This type emulates the Puppet core `file` type's disfavored [`ensure` -semantics](http://docs.puppetlabs.com/references/latest/type.html#file-attribute-ensure) -of treating a file path as a directive to create a symlink. This feature is -problematic in several ways. It copies an API semantic of another type that is -both frowned upon and not generally well known. It's behavior may be -surprising in that the target concatenated file will not be a symlink nor is -there any common file system that has a concept of a section of a plain file -being symbolically linked to another file. Additionally, the behavior is -generally inconsistent with most Puppet types in that a missing source file -will be silently ignored. - -If you want to use the content of a file as a fragment please use the `source` -parameter. - -##### `concat::fragment{}` `mode/owner/group` parameters - -```puppet -concat::fragment { 'foo': - target => '/tmp/file', - content => 'foo', - mode => $mode, # generates deprecation warning - owner => $owner, # generates deprecation warning - group => $group, # generates deprecation warning -} -``` - -The `mode` parameter to `concat::fragment` is deprecated, generates a catalog compile time warning, and has no effect. - -The `owner` parameter to `concat::fragment` is deprecated, generates a catalog -compile time warning, and has no effect. - -The `group` parameter to `concat::fragment` is deprecated, generates a catalog -compile time warning, and has no effect. - -These parameters had no user visible effect in version `1.0.0` and will be -removed in a future release. - -##### `concat::fragment{}` `backup` parameter - -```puppet -concat::fragment { 'foo': - target => '/tmp/file', - content => 'foo', - backup => 'bar', # generates deprecation warning -} -``` - -The `backup` parameter to `concat::fragment` is deprecated, generates a catalog -compile time warning, and has no effect. It will be removed in a future -release. - -In the `1.0.0` release this parameter controlled file bucketing of the file -fragment. Bucketting the fragment(s) is redundant with bucketting the final -concatenated file and this feature has been removed. - -##### `class { 'concat::setup': }` - -```puppet -include concat::setup # generates deprecation warning - -class { 'concat::setup: } # generates deprecation warning -``` - -The `concat::setup` class is deprecated as a public API of this module and -should no longer be directly included in the manifest. This class may be -removed in a future release. - -##### Parameter validation - -While not an API depreciation, users should be aware that all public parameters -in this module are now validated for at least variable type. This may cause -validation errors in a manifest that was previously silently misbehaving. - -##Limitations - -This module has been tested on: - -* RedHat Enterprise Linux (and Centos) 5/6 -* Debian 6/7 -* Ubuntu 12.04 - -Testing on other platforms has been light and cannot be guaranteed. - -#Development - -Puppet Labs modules on the Puppet Forge are open projects, and community -contributions are essential for keeping them great. We can’t access the -huge number of platforms and myriad of hardware, software, and deployment -configurations that Puppet is intended to serve. - -We want to keep it as easy as possible to contribute changes so that our -modules work in your environment. There are a few guidelines that we need -contributors to follow so that we can have a chance of keeping on top of things. - -You can read the complete module contribution guide [on the Puppet Labs wiki.](http://projects.puppetlabs.com/projects/module-site/wiki/Module_contributing) - -###Contributors - -The list of contributors can be found at: - -https://github.com/puppetlabs/puppetlabs-concat/graphs/contributors diff --git a/modules/concat/Rakefile b/modules/concat/Rakefile deleted file mode 100644 index 23aea87..0000000 --- a/modules/concat/Rakefile +++ /dev/null @@ -1,5 +0,0 @@ -require 'puppetlabs_spec_helper/rake_tasks' -require 'puppet-lint/tasks/puppet-lint' - -PuppetLint.configuration.send('disable_80chars') -PuppetLint.configuration.send('disable_quoted_booleans') diff --git a/modules/concat/files/concatfragments.rb b/modules/concat/files/concatfragments.rb deleted file mode 100755 index 73fd7f9..0000000 --- a/modules/concat/files/concatfragments.rb +++ /dev/null @@ -1,137 +0,0 @@ -# Script to concat files to a config file. -# -# Given a directory like this: -# /path/to/conf.d -# |-- fragments -# | |-- 00_named.conf -# | |-- 10_domain.net -# | `-- zz_footer -# -# The script supports a test option that will build the concat file to a temp location and -# use /usr/bin/cmp to verify if it should be run or not. This would result in the concat happening -# twice on each run but gives you the option to have an unless option in your execs to inhibit rebuilds. -# -# Without the test option and the unless combo your services that depend on the final file would end up -# restarting on each run, or in other manifest models some changes might get missed. -# -# OPTIONS: -# -o The file to create from the sources -# -d The directory where the fragments are kept -# -t Test to find out if a build is needed, basically concats the files to a temp -# location and compare with what's in the final location, return codes are designed -# for use with unless on an exec resource -# -w Add a shell style comment at the top of the created file to warn users that it -# is generated by puppet -# -f Enables the creation of empty output files when no fragments are found -# -n Sort the output numerically rather than the default alpha sort -# -# the command: -# -# concatfragments.rb -o /path/to/conffile.cfg -d /path/to/conf.d -# -# creates /path/to/conf.d/fragments.concat and copies the resulting -# file to /path/to/conffile.cfg. The files will be sorted alphabetically -# pass the -n switch to sort numerically. -# -# The script does error checking on the various dirs and files to make -# sure things don't fail. -require 'optparse' -require 'fileutils' - -settings = { - :outfile => "", - :workdir => "", - :test => false, - :force => false, - :warn => "", - :sortarg => "" -} - -OptionParser.new do |opts| - opts.banner = "Usage: #{$0} [options]" - opts.separator "Specific options:" - - opts.on("-o", "--outfile OUTFILE", String, "The file to create from the sources") do |o| - settings[:outfile] = o - end - - opts.on("-d", "--workdir WORKDIR", String, "The directory where the fragments are kept") do |d| - settings[:workdir] = d - end - - opts.on("-t", "--test", "Test to find out if a build is needed") do - settings[:test] = true - end - - opts.separator "Other options:" - opts.on("-w", "--warn WARNMSG", String, - "Add a shell style comment at the top of the created file to warn users that it is generated by puppet") do |w| - settings[:warn] = w - end - - opts.on("-f", "--force", "Enables the creation of empty output files when no fragments are found") do - settings[:force] = true - end - - opts.on("-n", "--sort", "Sort the output numerically rather than the default alpha sort") do - settings[:sortarg] = "-n" - end -end.parse! - -# do we have -o? -raise 'Please specify an output file with -o' unless !settings[:outfile].empty? - -# do we have -d? -raise 'Please specify fragments directory with -d' unless !settings[:workdir].empty? - -# can we write to -o? -if File.file?(settings[:outfile]) - if !File.writable?(settings[:outfile]) - raise "Cannot write to #{settings[:outfile]}" - end -else - if !File.writable?(File.dirname(settings[:outfile])) - raise "Cannot write to dirname #{File.dirname(settings[:outfile])} to create #{settings[:outfile]}" - end -end - -# do we have a fragments subdir inside the work dir? -if !File.directory?(File.join(settings[:workdir], "fragments")) && !File.executable?(File.join(settings[:workdir], "fragments")) - raise "Cannot access the fragments directory" -end - -# are there actually any fragments? -if (Dir.entries(File.join(settings[:workdir], "fragments")) - %w{ . .. }).empty? - if !settings[:force] - raise "The fragments directory is empty, cowardly refusing to make empty config files" - end -end - -Dir.chdir(settings[:workdir]) - -if settings[:warn].empty? - File.open("fragments.concat", 'w') {|f| f.write("") } -else - File.open("fragments.concat", 'w') {|f| f.write("#{settings[:warn]}\n") } -end - -# find all the files in the fragments directory, sort them numerically and concat to fragments.concat in the working dir -open('fragments.concat', 'a') do |f| - Dir.entries("fragments").sort.each{ |entry| - if File.file?(File.join("fragments", entry)) - f << File.read(File.join("fragments", entry)) - end - } -end - -if !settings[:test] - # This is a real run, copy the file to outfile - FileUtils.cp 'fragments.concat', settings[:outfile] -else - # Just compare the result to outfile to help the exec decide - if FileUtils.cmp 'fragments.concat', settings[:outfile] - exit 0 - else - exit 1 - end -end diff --git a/modules/concat/files/concatfragments.sh b/modules/concat/files/concatfragments.sh deleted file mode 100755 index 7e6b0f5..0000000 --- a/modules/concat/files/concatfragments.sh +++ /dev/null @@ -1,140 +0,0 @@ -#!/bin/sh - -# Script to concat files to a config file. -# -# Given a directory like this: -# /path/to/conf.d -# |-- fragments -# | |-- 00_named.conf -# | |-- 10_domain.net -# | `-- zz_footer -# -# The script supports a test option that will build the concat file to a temp location and -# use /usr/bin/cmp to verify if it should be run or not. This would result in the concat happening -# twice on each run but gives you the option to have an unless option in your execs to inhibit rebuilds. -# -# Without the test option and the unless combo your services that depend on the final file would end up -# restarting on each run, or in other manifest models some changes might get missed. -# -# OPTIONS: -# -o The file to create from the sources -# -d The directory where the fragments are kept -# -t Test to find out if a build is needed, basically concats the files to a temp -# location and compare with what's in the final location, return codes are designed -# for use with unless on an exec resource -# -w Add a shell style comment at the top of the created file to warn users that it -# is generated by puppet -# -f Enables the creation of empty output files when no fragments are found -# -n Sort the output numerically rather than the default alpha sort -# -# the command: -# -# concatfragments.sh -o /path/to/conffile.cfg -d /path/to/conf.d -# -# creates /path/to/conf.d/fragments.concat and copies the resulting -# file to /path/to/conffile.cfg. The files will be sorted alphabetically -# pass the -n switch to sort numerically. -# -# The script does error checking on the various dirs and files to make -# sure things don't fail. - -OUTFILE="" -WORKDIR="" -TEST="" -FORCE="" -WARN="" -SORTARG="" -ENSURE_NEWLINE="" - -PATH=/sbin:/usr/sbin:/bin:/usr/bin - -## Well, if there's ever a bad way to do things, Nexenta has it. -## http://nexenta.org/projects/site/wiki/Personalities -unset SUN_PERSONALITY - -while getopts "o:s:d:tnw:fl" options; do - case $options in - o ) OUTFILE=$OPTARG;; - d ) WORKDIR=$OPTARG;; - n ) SORTARG="-n";; - w ) WARNMSG="$OPTARG";; - f ) FORCE="true";; - t ) TEST="true";; - l ) ENSURE_NEWLINE="true";; - * ) echo "Specify output file with -o and fragments directory with -d" - exit 1;; - esac -done - -# do we have -o? -if [ "x${OUTFILE}" = "x" ]; then - echo "Please specify an output file with -o" - exit 1 -fi - -# do we have -d? -if [ "x${WORKDIR}" = "x" ]; then - echo "Please fragments directory with -d" - exit 1 -fi - -# can we write to -o? -if [ -f "${OUTFILE}" ]; then - if [ ! -w "${OUTFILE}" ]; then - echo "Cannot write to ${OUTFILE}" - exit 1 - fi -else - if [ ! -w `dirname "${OUTFILE}"` ]; then - echo "Cannot write to `dirname \"${OUTFILE}\"` to create ${OUTFILE}" - exit 1 - fi -fi - -# do we have a fragments subdir inside the work dir? -if [ ! -d "${WORKDIR}/fragments" ] && [ ! -x "${WORKDIR}/fragments" ]; then - echo "Cannot access the fragments directory" - exit 1 -fi - -# are there actually any fragments? -if [ ! "$(ls -A """${WORKDIR}/fragments""")" ]; then - if [ "x${FORCE}" = "x" ]; then - echo "The fragments directory is empty, cowardly refusing to make empty config files" - exit 1 - fi -fi - -cd "${WORKDIR}" - -if [ "x${WARNMSG}" = "x" ]; then - : > "fragments.concat" -else - printf '%s\n' "$WARNMSG" > "fragments.concat" -fi - -# find all the files in the fragments directory, sort them numerically and concat to fragments.concat in the working dir -IFS_BACKUP=$IFS -IFS=' -' -for fragfile in `find fragments/ -type f -follow -print0 | xargs -0 -n1 basename | LC_ALL=C sort ${SORTARG}` -do - cat "fragments/$fragfile" >> "fragments.concat" - # Handle newlines. - if [ "x${ENSURE_NEWLINE}" != "x" ]; then - echo >> "fragments.concat" - fi -done -IFS=$IFS_BACKUP - -if [ "x${TEST}" = "x" ]; then - # This is a real run, copy the file to outfile - cp fragments.concat "${OUTFILE}" - RETVAL=$? -else - # Just compare the result to outfile to help the exec decide - cmp "${OUTFILE}" fragments.concat - RETVAL=$? -fi - -exit $RETVAL diff --git a/modules/concat/lib/facter/concat_basedir.rb b/modules/concat/lib/facter/concat_basedir.rb deleted file mode 100644 index bfac071..0000000 --- a/modules/concat/lib/facter/concat_basedir.rb +++ /dev/null @@ -1,11 +0,0 @@ -# == Fact: concat_basedir -# -# A custom fact that sets the default location for fragments -# -# "${::vardir}/concat/" -# -Facter.add("concat_basedir") do - setcode do - File.join(Puppet[:vardir],"concat") - end -end diff --git a/modules/concat/manifests/fragment.pp b/modules/concat/manifests/fragment.pp deleted file mode 100644 index 40baadd..0000000 --- a/modules/concat/manifests/fragment.pp +++ /dev/null @@ -1,121 +0,0 @@ -# == Define: concat::fragment -# -# Puts a file fragment into a directory previous setup using concat -# -# === Options: -# -# [*target*] -# The file that these fragments belong to -# [*content*] -# If present puts the content into the file -# [*source*] -# If content was not specified, use the source -# [*order*] -# By default all files gets a 10_ prefix in the directory you can set it to -# anything else using this to influence the order of the content in the file -# [*ensure*] -# Present/Absent or destination to a file to include another file -# [*mode*] -# Deprecated -# [*owner*] -# Deprecated -# [*group*] -# Deprecated -# [*backup*] -# Deprecated -# -define concat::fragment( - $target, - $content = undef, - $source = undef, - $order = 10, - $ensure = undef, - $mode = undef, - $owner = undef, - $group = undef, - $backup = undef -) { - validate_string($target) - validate_string($content) - if !(is_string($source) or is_array($source)) { - fail('$source is not a string or an Array.') - } - validate_string($order) - if $mode { - warning('The $mode parameter to concat::fragment is deprecated and has no effect') - } - if $owner { - warning('The $owner parameter to concat::fragment is deprecated and has no effect') - } - if $group { - warning('The $group parameter to concat::fragment is deprecated and has no effect') - } - if $backup { - warning('The $backup parameter to concat::fragment is deprecated and has no effect') - } - if $ensure == undef { - $_ensure = getparam(Concat[$target], 'ensure') - } else { - if ! ($ensure in [ 'present', 'absent' ]) { - warning('Passing a value other than \'present\' or \'absent\' as the $ensure parameter to concat::fragment is deprecated. If you want to use the content of a file as a fragment please use the $source parameter.') - } - $_ensure = $ensure - } - - include concat::setup - - $safe_name = regsubst($name, '[/:\n]', '_', 'GM') - $safe_target_name = regsubst($target, '[/:\n]', '_', 'GM') - $concatdir = $concat::setup::concatdir - $fragdir = "${concatdir}/${safe_target_name}" - $fragowner = $concat::setup::fragment_owner - $fragmode = $concat::setup::fragment_mode - - # The file type's semantics are problematic in that ensure => present will - # not over write a pre-existing symlink. We are attempting to provide - # backwards compatiblity with previous concat::fragment versions that - # supported the file type's ensure => /target syntax - - # be paranoid and only allow the fragment's file resource's ensure param to - # be file, absent, or a file target - $safe_ensure = $_ensure ? { - '' => 'file', - undef => 'file', - 'file' => 'file', - 'present' => 'file', - 'absent' => 'absent', - default => $_ensure, - } - - # if it looks line ensure => /target syntax was used, fish that out - if ! ($_ensure in ['', 'present', 'absent', 'file' ]) { - $ensure_target = $_ensure - } else { - $ensure_target = undef - } - - # the file type's semantics only allows one of: ensure => /target, content, - # or source - if ($ensure_target and $source) or - ($ensure_target and $content) or - ($source and $content) { - fail('You cannot specify more than one of $content, $source, $ensure => /target') - } - - if ! ($content or $source or $ensure_target) { - crit('No content, source or symlink specified') - } - - # punt on group ownership until some point in the distant future when $::gid - # can be relied on to be present - file { "${fragdir}/fragments/${order}_${safe_name}": - ensure => $safe_ensure, - owner => $fragowner, - mode => $fragmode, - source => $source, - content => $content, - backup => false, - alias => "concat_fragment_${name}", - notify => Exec["concat_${target}"] - } -} diff --git a/modules/concat/manifests/init.pp b/modules/concat/manifests/init.pp deleted file mode 100644 index 91d82eb..0000000 --- a/modules/concat/manifests/init.pp +++ /dev/null @@ -1,232 +0,0 @@ -# == Define: concat -# -# Sets up so that you can use fragments to build a final config file, -# -# === Options: -# -# [*ensure*] -# Present/Absent -# [*path*] -# The path to the final file. Use this in case you want to differentiate -# between the name of a resource and the file path. Note: Use the name you -# provided in the target of your fragments. -# [*owner*] -# Who will own the file -# [*group*] -# Who will own the file -# [*mode*] -# The mode of the final file -# [*force*] -# Enables creating empty files if no fragments are present -# [*warn*] -# Adds a normal shell style comment top of the file indicating that it is -# built by puppet -# [*force*] -# [*backup*] -# Controls the filebucketing behavior of the final file and see File type -# reference for its use. Defaults to 'puppet' -# [*replace*] -# Whether to replace a file that already exists on the local system -# [*order*] -# [*ensure_newline*] -# [*gnu*] -# Deprecated -# -# === Actions: -# * Creates fragment directories if it didn't exist already -# * Executes the concatfragments.sh script to build the final file, this -# script will create directory/fragments.concat. Execution happens only -# when: -# * The directory changes -# * fragments.concat != final destination, this means rebuilds will happen -# whenever someone changes or deletes the final file. Checking is done -# using /usr/bin/cmp. -# * The Exec gets notified by something else - like the concat::fragment -# define -# * Copies the file over to the final destination using a file resource -# -# === Aliases: -# -# * The exec can notified using Exec["concat_/path/to/file"] or -# Exec["concat_/path/to/directory"] -# * The final file can be referenced as File["/path/to/file"] or -# File["concat_/path/to/file"] -# -define concat( - $ensure = 'present', - $path = $name, - $owner = undef, - $group = undef, - $mode = '0644', - $warn = false, - $force = false, - $backup = 'puppet', - $replace = true, - $order = 'alpha', - $ensure_newline = false, - $gnu = undef -) { - validate_re($ensure, '^present$|^absent$') - validate_absolute_path($path) - validate_string($owner) - validate_string($group) - validate_string($mode) - if ! (is_string($warn) or $warn == true or $warn == false) { - fail('$warn is not a string or boolean') - } - validate_bool($force) - validate_string($backup) - validate_bool($replace) - validate_re($order, '^alpha$|^numeric$') - validate_bool($ensure_newline) - if $gnu { - warning('The $gnu parameter to concat is deprecated and has no effect') - } - - include concat::setup - - $safe_name = regsubst($name, '[/:]', '_', 'G') - $concatdir = $concat::setup::concatdir - $fragdir = "${concatdir}/${safe_name}" - $concat_name = 'fragments.concat.out' - $script_command = $concat::setup::script_command - $default_warn_message = '# This file is managed by Puppet. DO NOT EDIT.' - $bool_warn_message = 'Using stringified boolean values (\'true\', \'yes\', \'on\', \'false\', \'no\', \'off\') to represent boolean true/false as the $warn parameter to concat is deprecated and will be treated as the warning message in a future release' - - case $warn { - true: { - $warn_message = $default_warn_message - } - 'true', 'yes', 'on': { - warning($bool_warn_message) - $warn_message = $default_warn_message - } - false: { - $warn_message = '' - } - 'false', 'no', 'off': { - warning($bool_warn_message) - $warn_message = '' - } - default: { - $warn_message = $warn - } - } - - $warnmsg_escaped = regsubst($warn_message, '\'', '\'\\\'\'', 'G') - $warnflag = $warnmsg_escaped ? { - '' => '', - default => "-w '${warnmsg_escaped}'" - } - - $forceflag = $force ? { - true => '-f', - false => '', - } - - $orderflag = $order ? { - 'numeric' => '-n', - 'alpha' => '', - } - - $newlineflag = $ensure_newline ? { - true => '-l', - false => '', - } - - File { - backup => false, - } - - if $ensure == 'present' { - file { $fragdir: - ensure => directory, - mode => '0750', - } - - file { "${fragdir}/fragments": - ensure => directory, - mode => '0750', - force => true, - ignore => ['.svn', '.git', '.gitignore'], - notify => Exec["concat_${name}"], - purge => true, - recurse => true, - } - - file { "${fragdir}/fragments.concat": - ensure => present, - mode => '0640', - } - - file { "${fragdir}/${concat_name}": - ensure => present, - mode => '0640', - } - - file { $name: - ensure => present, - owner => $owner, - group => $group, - mode => $mode, - replace => $replace, - path => $path, - alias => "concat_${name}", - source => "${fragdir}/${concat_name}", - backup => $backup, - } - - # remove extra whitespace from string interpolation to make testing easier - $command = strip(regsubst("${script_command} -o \"${fragdir}/${concat_name}\" -d \"${fragdir}\" ${warnflag} ${forceflag} ${orderflag} ${newlineflag}", '\s+', ' ', 'G')) - - # if puppet is running as root, this exec should also run as root to allow - # the concatfragments.sh script to potentially be installed in path that - # may not be accessible by a target non-root owner. - exec { "concat_${name}": - alias => "concat_${fragdir}", - command => $command, - notify => File[$name], - subscribe => File[$fragdir], - unless => "${command} -t", - path => $::path, - require => [ - File[$fragdir], - File["${fragdir}/fragments"], - File["${fragdir}/fragments.concat"], - ], - } - } else { - file { [ - $fragdir, - "${fragdir}/fragments", - "${fragdir}/fragments.concat", - "${fragdir}/${concat_name}" - ]: - ensure => absent, - force => true, - } - - file { $path: - ensure => absent, - backup => $backup, - } - - $absent_exec_command = $::kernel ? { - 'windows' => 'cmd.exe /c exit 0', - default => 'true', - } - - $absent_exec_path = $::kernel ? { - 'windows' => $::path, - default => '/bin:/usr/bin', - } - - exec { "concat_${name}": - alias => "concat_${fragdir}", - command => $absent_exec_command, - path => $absent_exec_path - } - } -} - -# vim:sw=2:ts=2:expandtab:textwidth=79 diff --git a/modules/concat/manifests/setup.pp b/modules/concat/manifests/setup.pp deleted file mode 100644 index 1767400..0000000 --- a/modules/concat/manifests/setup.pp +++ /dev/null @@ -1,58 +0,0 @@ -# === Class: concat::setup -# -# Sets up the concat system. This is a private class. -# -# [$concatdir] -# is where the fragments live and is set on the fact concat_basedir. -# Since puppet should always manage files in $concatdir and they should -# not be deleted ever, /tmp is not an option. -# -# It also copies out the concatfragments.sh file to ${concatdir}/bin -# -class concat::setup { - if $caller_module_name != $module_name { - warning("${name} is deprecated as a public API of the ${module_name} module and should no longer be directly included in the manifest.") - } - - if $::concat_basedir { - $concatdir = $::concat_basedir - } else { - fail ('$concat_basedir not defined. Try running again with pluginsync=true on the [master] and/or [main] section of your node\'s \'/etc/puppet/puppet.conf\'.') - } - - # owner and mode of fragment files (on windows owner and access rights should be inherited from concatdir and not explicitly set to avoid problems) - $fragment_owner = $osfamily ? { 'windows' => undef, default => $::id } - $fragment_mode = $osfamily ? { 'windows' => undef, default => '0640' } - - $script_name = $::kernel ? { - 'windows' => 'concatfragments.rb', - default => 'concatfragments.sh' - } - - $script_path = "${concatdir}/bin/${script_name}" - - $script_owner = $osfamily ? { 'windows' => undef, default => $::id } - - $script_mode = $osfamily ? { 'windows' => undef, default => '0755' } - - $script_command = $::kernel ? { - 'windows' => "ruby.exe ${script_path}", - default => $script_path - } - - File { - backup => false, - } - - file { $script_path: - ensure => file, - owner => $script_owner, - mode => $script_mode, - source => "puppet:///modules/concat/${script_name}", - } - - file { [ $concatdir, "${concatdir}/bin" ]: - ensure => directory, - mode => '0755', - } -} diff --git a/modules/concat/metadata.json b/modules/concat/metadata.json deleted file mode 100644 index c7305f2..0000000 --- a/modules/concat/metadata.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "puppetlabs-concat", - "version": "1.1.0", - "source": "git://github.com/puppetlabs/puppetlabs-concat.git", - "author": "Puppetlabs", - "license": "Apache 2.0", - "summary": "Concat module", - "description": "Concat module", - "project_page": "http://github.com/puppetlabs/puppetlabs-concat", - "dependencies": [ - { - "name": "puppetlabs/stdlib", - "version_requirement": ">= 4.0.0" - } - ], - "types": [ - - ], - "checksums": { - "CHANGELOG": "fca146b0dcd7cc60a9082b8e301a2e18", - "Gemfile": "3cadf91e1baf9c8b7d2b1c3036676ba9", - "LICENSE": "f5a76685d453424cd63dde1535811cf0", - "Modulefile": "f8abb1236ed5211c4a3aa732431c2e19", - "README.md": "adecb8db1313997083179540b20ede86", - "Rakefile": "e415d40cd8db238f02bf4575d5e1e693", - "files/concatfragments.rb": "6784c28044a4204efb75fe4eb759816a", - "files/concatfragments.sh": "7bbe7c5fce25a5ddd20415d909ba44fc", - "lib/facter/concat_basedir.rb": "ff080677e7f192b9b96911698b0b9b3d", - "manifests/fragment.pp": "8bfd199e757f6a57f6174b558f87d2ce", - "manifests/init.pp": "79c6dc5bf0b2b0da3ce84cc2f0ae5f02", - "manifests/setup.pp": "0ff9f4d9b4c01360606ae29d8df31ff0", - "spec/acceptance/backup_spec.rb": "d4ffdf3d4f5a1b7c0aa64dd118375124", - "spec/acceptance/concat_spec.rb": "600243521241dac0b238ad01b10c7132", - "spec/acceptance/deprecation_warnings_spec.rb": "40286704d0f544437293ed8a1cc66fe9", - "spec/acceptance/empty_spec.rb": "c2edc5cef72870b0894e1b2184207325", - "spec/acceptance/fragment_source_spec.rb": "c5cda233f208b71d7d5cc89dfa4be81d", - "spec/acceptance/newline_spec.rb": "55b9f470bdff4c0245da6895c9b6e64d", - "spec/acceptance/nodesets/aix-71-vcloud.yml": "de6cc5bf18be2be8d50e62503652cb32", - "spec/acceptance/nodesets/centos-59-x64.yml": "57eb3e471b9042a8ea40978c467f8151", - "spec/acceptance/nodesets/centos-64-x64-pe.yml": "ec075d95760df3d4702abea1ce0a829b", - "spec/acceptance/nodesets/centos-64-x64.yml": "092dd2c588a9f87fa1fb12997c0723ef", - "spec/acceptance/nodesets/debian-607-x64.yml": "d566bf76f534e2af7c9a4605316d232c", - "spec/acceptance/nodesets/debian-70rc1-x64.yml": "31ccca73af7b74e1cc2fb0035c230b2c", - "spec/acceptance/nodesets/debian-73-x64.yml": "bd3ea8245ce691c2b234529d62d043eb", - "spec/acceptance/nodesets/default.yml": "3d68f9581097bb3a807ba1931c961959", - "spec/acceptance/nodesets/fedora-18-x64.yml": "80e41b1ee16ea489f53164bfdae58855", - "spec/acceptance/nodesets/rhel-7-x64.yml": "91b55d29f059e23383c7bc352b5d671d", - "spec/acceptance/nodesets/sles-11-x64.yml": "44e4c6c15c018333bfa9840a5e702f66", - "spec/acceptance/nodesets/sles-11sp1-x64.yml": "fa0046bd89c1ab4ba9521ad79db234cd", - "spec/acceptance/nodesets/ubuntu-server-10044-x64.yml": "75e86400b7889888dc0781c0ae1a1297", - "spec/acceptance/nodesets/ubuntu-server-12042-x64.yml": "d30d73e34cd50b043c7d14e305955269", - "spec/acceptance/nodesets/ubuntu-server-1404-x64.yml": "5f0aed10098ac5b78e4217bb27c7aaf0", - "spec/acceptance/order_spec.rb": "0de9b4993a3e3f6f36c52bb18f48280c", - "spec/acceptance/quoted_paths_spec.rb": "953a5a665bd4bb468e70856260c47c6e", - "spec/acceptance/replace_spec.rb": "7072d819d5997ad227fc17f4b813fe4f", - "spec/acceptance/symbolic_name_spec.rb": "10e856a87253cf8bbef95f8f9635b63e", - "spec/acceptance/warn_spec.rb": "ec03f0fa8086fc4be03da1c5aff25097", - "spec/spec_helper.rb": "0db89c9a486df193c0e40095422e19dc", - "spec/spec_helper_acceptance.rb": "5be78c42f01346abf097bbcab34ff424", - "spec/unit/classes/concat_setup_spec.rb": "6d3729833715d65f3c50c2153caed6bc", - "spec/unit/defines/concat_fragment_spec.rb": "ced7c3b1b6d7f2e65c6dc066aa8c0527", - "spec/unit/defines/concat_spec.rb": "d8da592546c9811bf40e111bf52755dc", - "spec/unit/facts/concat_basedir_spec.rb": "cf00f5a07948436fa0a84d00fc098539", - "tests/fragment.pp": "9adc3d9ba61676066072e1b949a37dbb", - "tests/init.pp": "bd3ce7d2ee146744b5dbbaae8a927043" - } -} \ No newline at end of file diff --git a/modules/concat/spec/acceptance/backup_spec.rb b/modules/concat/spec/acceptance/backup_spec.rb deleted file mode 100644 index 7b2858d..0000000 --- a/modules/concat/spec/acceptance/backup_spec.rb +++ /dev/null @@ -1,101 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'concat backup parameter' do - context '=> puppet' do - before :all do - shell('rm -rf /tmp/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'old contents' > /tmp/concat/file") - end - - pp = <<-EOS - concat { '/tmp/concat/file': - backup => 'puppet', - } - concat::fragment { 'new file': - target => '/tmp/concat/file', - content => 'new contents', - } - EOS - - it 'applies the manifest twice with "Filebucketed" stdout and no stderr' do - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stderr).to eq("") - expect(r.stdout).to match(/Filebucketed \/tmp\/concat\/file to puppet with sum 0140c31db86293a1a1e080ce9b91305f/) # sum is for file contents of 'old contents' - end - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'new contents' } - end - end - - context '=> .backup' do - before :all do - shell('rm -rf /tmp/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'old contents' > /tmp/concat/file") - end - - pp = <<-EOS - concat { '/tmp/concat/file': - backup => '.backup', - } - concat::fragment { 'new file': - target => '/tmp/concat/file', - content => 'new contents', - } - EOS - - # XXX Puppet doesn't mention anything about filebucketing with a given - # extension like .backup - it 'applies the manifest twice no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'new contents' } - end - describe file('/tmp/concat/file.backup') do - it { should be_file } - it { should contain 'old contents' } - end - end - - # XXX The backup parameter uses validate_string() and thus can't be the - # boolean false value, but the string 'false' has the same effect in Puppet 3 - context "=> 'false'" do - before :all do - shell('rm -rf /tmp/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'old contents' > /tmp/concat/file") - end - - pp = <<-EOS - concat { '/tmp/concat/file': - backup => '.backup', - } - concat::fragment { 'new file': - target => '/tmp/concat/file', - content => 'new contents', - } - EOS - - it 'applies the manifest twice with no "Filebucketed" stdout and no stderr' do - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stderr).to eq("") - expect(r.stdout).to_not match(/Filebucketed/) - end - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'new contents' } - end - end -end diff --git a/modules/concat/spec/acceptance/concat_spec.rb b/modules/concat/spec/acceptance/concat_spec.rb deleted file mode 100644 index 89919cc..0000000 --- a/modules/concat/spec/acceptance/concat_spec.rb +++ /dev/null @@ -1,204 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'basic concat test' do - - shared_examples 'successfully_applied' do |pp| - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file("#{default['puppetvardir']}/concat") do - it { should be_directory } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 755 } - end - describe file("#{default['puppetvardir']}/concat/bin") do - it { should be_directory } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 755 } - end - describe file("#{default['puppetvardir']}/concat/bin/concatfragments.sh") do - it { should be_file } - it { should be_owned_by 'root' } - #it { should be_grouped_into 'root' } - it { should be_mode 755 } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file") do - it { should be_directory } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 750 } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments") do - it { should be_directory } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 750 } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments.concat") do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 640 } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments.concat.out") do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 640 } - end - end - - context 'owner/group root' do - pp = <<-EOS - concat { '/tmp/concat/file': - owner => 'root', - group => 'root', - mode => '0644', - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - order => '01', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - order => '02', - } - EOS - - it_behaves_like 'successfully_applied', pp - - describe file('/tmp/concat/file') do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 644 } - it { should contain '1' } - it { should contain '2' } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/01_1") do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 640 } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/02_2") do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 640 } - end - end - - context 'owner/group non-root' do - before(:all) do - shell "groupadd -g 64444 bob" - shell "useradd -u 42 -g 64444 bob" - end - after(:all) do - shell "userdel bob" - end - - pp=" - concat { '/tmp/concat/file': - owner => 'bob', - group => 'bob', - mode => '0644', - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - order => '01', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - order => '02', - } - " - - it_behaves_like 'successfully_applied', pp - - describe file('/tmp/concat/file') do - it { should be_file } - it { should be_owned_by 'bob' } - it { should be_grouped_into 'bob' } - it { should be_mode 644 } - it { should contain '1' } - it { should contain '2' } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/01_1") do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 640 } - it { should contain '1' } - end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/02_2") do - it { should be_file } - it { should be_owned_by 'root' } - it { should be_grouped_into 'root' } - it { should be_mode 640 } - it { should contain '2' } - end - end - - context 'ensure' do - context 'works when set to present with path set' do - pp=" - concat { 'file': - ensure => present, - path => '/tmp/concat/file', - mode => '0644', - } - concat::fragment { '1': - target => 'file', - content => '1', - order => '01', - } - " - - it_behaves_like 'successfully_applied', pp - - describe file('/tmp/concat/file') do - it { should be_file } - it { should be_mode 644 } - it { should contain '1' } - end - end - context 'works when set to absent with path set' do - pp=" - concat { 'file': - ensure => absent, - path => '/tmp/concat/file', - mode => '0644', - } - concat::fragment { '1': - target => 'file', - content => '1', - order => '01', - } - " - - # Can't used shared examples as this will always trigger the exec when - # absent is set. - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should_not be_file } - end - end - end -end diff --git a/modules/concat/spec/acceptance/deprecation_warnings_spec.rb b/modules/concat/spec/acceptance/deprecation_warnings_spec.rb deleted file mode 100644 index f139d81..0000000 --- a/modules/concat/spec/acceptance/deprecation_warnings_spec.rb +++ /dev/null @@ -1,230 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'deprecation warnings' do - - shared_examples 'has_warning'do |pp, w| - it 'applies the manifest twice with a stderr regex' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to match(/#{Regexp.escape(w)}/m) - expect(apply_manifest(pp, :catch_changes => true).stderr).to match(/#{Regexp.escape(w)}/m) - end - end - - context 'concat gnu parameter' do - pp = <<-EOS - concat { '/tmp/concat/file': - gnu => 'foo', - } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - } - EOS - w = 'The $gnu parameter to concat is deprecated and has no effect' - - it_behaves_like 'has_warning', pp, w - end - - context 'concat warn parameter =>' do - ['true', 'yes', 'on'].each do |warn| - context warn do - pp = <<-EOS - concat { '/tmp/concat/file': - warn => '#{warn}', - } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - } - EOS - w = 'Using stringified boolean values (\'true\', \'yes\', \'on\', \'false\', \'no\', \'off\') to represent boolean true/false as the $warn parameter to concat is deprecated and will be treated as the warning message in a future release' - - it_behaves_like 'has_warning', pp, w - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '# This file is managed by Puppet. DO NOT EDIT.' } - it { should contain 'bar' } - end - end - end - - ['false', 'no', 'off'].each do |warn| - context warn do - pp = <<-EOS - concat { '/tmp/concat/file': - warn => '#{warn}', - } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - } - EOS - w = 'Using stringified boolean values (\'true\', \'yes\', \'on\', \'false\', \'no\', \'off\') to represent boolean true/false as the $warn parameter to concat is deprecated and will be treated as the warning message in a future release' - - it_behaves_like 'has_warning', pp, w - - describe file('/tmp/concat/file') do - it { should be_file } - it { should_not contain '# This file is managed by Puppet. DO NOT EDIT.' } - it { should contain 'bar' } - end - end - end - end - - context 'concat::fragment ensure parameter' do - context 'target file exists' do - before(:all) do - shell("/bin/echo 'file1 contents' > /tmp/concat/file1") - end - after(:all) do - # XXX this test may leave behind a symlink in the fragment directory - # which could cause warnings and/or breakage from the subsequent tests - # unless we clean it up. - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - ensure => '/tmp/concat/file1', - } - EOS - w = 'Passing a value other than \'present\' or \'absent\' as the $ensure parameter to concat::fragment is deprecated. If you want to use the content of a file as a fragment please use the $source parameter.' - - it_behaves_like 'has_warning', pp, w - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'file1 contents' } - end - - describe 'the fragment can be changed from a symlink to a plain file' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'new content', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'new content' } - it { should_not contain 'file1 contents' } - end - end - end # target file exists - - context 'target does not exist' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - ensure => '/tmp/concat/file1', - } - EOS - w = 'Passing a value other than \'present\' or \'absent\' as the $ensure parameter to concat::fragment is deprecated. If you want to use the content of a file as a fragment please use the $source parameter.' - - it_behaves_like 'has_warning', pp, w - - describe file('/tmp/concat/file') do - it { should be_file } - end - - describe 'the fragment can be changed from a symlink to a plain file' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'new content', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'new content' } - end - end - end # target file exists - - end # concat::fragment ensure parameter - - context 'concat::fragment mode parameter' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - mode => 'bar', - } - EOS - w = 'The $mode parameter to concat::fragment is deprecated and has no effect' - - it_behaves_like 'has_warning', pp, w - end - - context 'concat::fragment owner parameter' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - owner => 'bar', - } - EOS - w = 'The $owner parameter to concat::fragment is deprecated and has no effect' - - it_behaves_like 'has_warning', pp, w - end - - context 'concat::fragment group parameter' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - group => 'bar', - } - EOS - w = 'The $group parameter to concat::fragment is deprecated and has no effect' - - it_behaves_like 'has_warning', pp, w - end - - context 'concat::fragment backup parameter' do - pp = <<-EOS - concat { '/tmp/concat/file': } - concat::fragment { 'foo': - target => '/tmp/concat/file', - content => 'bar', - backup => 'bar', - } - EOS - w = 'The $backup parameter to concat::fragment is deprecated and has no effect' - - it_behaves_like 'has_warning', pp, w - end - - context 'include concat::setup' do - pp = <<-EOS - include concat::setup - EOS - w = 'concat::setup is deprecated as a public API of the concat module and should no longer be directly included in the manifest.' - - it_behaves_like 'has_warning', pp, w - end - -end diff --git a/modules/concat/spec/acceptance/empty_spec.rb b/modules/concat/spec/acceptance/empty_spec.rb deleted file mode 100644 index 0999528..0000000 --- a/modules/concat/spec/acceptance/empty_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'concat force empty parameter' do - context 'should run successfully' do - pp = <<-EOS - concat { '/tmp/concat/file': - owner => root, - group => root, - mode => '0644', - force => true, - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should_not contain '1\n2' } - end - end -end diff --git a/modules/concat/spec/acceptance/fragment_source_spec.rb b/modules/concat/spec/acceptance/fragment_source_spec.rb deleted file mode 100644 index 3afd534..0000000 --- a/modules/concat/spec/acceptance/fragment_source_spec.rb +++ /dev/null @@ -1,134 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'concat::fragment source' do - context 'should read file fragments from local system' do - before(:all) do - shell("/bin/echo 'file1 contents' > /tmp/concat/file1") - shell("/bin/echo 'file2 contents' > /tmp/concat/file2") - end - - pp = <<-EOS - concat { '/tmp/concat/foo': } - - concat::fragment { '1': - target => '/tmp/concat/foo', - source => '/tmp/concat/file1', - } - concat::fragment { '2': - target => '/tmp/concat/foo', - content => 'string1 contents', - } - concat::fragment { '3': - target => '/tmp/concat/foo', - source => '/tmp/concat/file2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/foo') do - it { should be_file } - it { should contain 'file1 contents' } - it { should contain 'string1 contents' } - it { should contain 'file2 contents' } - end - end # should read file fragments from local system - - context 'should create files containing first match only.' do - before(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'file1 contents' > /tmp/concat/file1") - shell("/bin/echo 'file2 contents' > /tmp/concat/file2") - end - - pp = <<-EOS - concat { '/tmp/concat/result_file1': - owner => root, - group => root, - mode => '0644', - } - concat { '/tmp/concat/result_file2': - owner => root, - group => root, - mode => '0644', - } - concat { '/tmp/concat/result_file3': - owner => root, - group => root, - mode => '0644', - } - - concat::fragment { '1': - target => '/tmp/concat/result_file1', - source => [ '/tmp/concat/file1', '/tmp/concat/file2' ], - order => '01', - } - concat::fragment { '2': - target => '/tmp/concat/result_file2', - source => [ '/tmp/concat/file2', '/tmp/concat/file1' ], - order => '01', - } - concat::fragment { '3': - target => '/tmp/concat/result_file3', - source => [ '/tmp/concat/file1', '/tmp/concat/file2' ], - order => '01', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - describe file('/tmp/concat/result_file1') do - it { should be_file } - it { should contain 'file1 contents' } - it { should_not contain 'file2 contents' } - end - describe file('/tmp/concat/result_file2') do - it { should be_file } - it { should contain 'file2 contents' } - it { should_not contain 'file1 contents' } - end - describe file('/tmp/concat/result_file3') do - it { should be_file } - it { should contain 'file1 contents' } - it { should_not contain 'file2 contents' } - end - end - - context 'should fail if no match on source.' do - before(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - shell('/bin/rm -rf /tmp/concat/fail_no_source /tmp/concat/nofilehere /tmp/concat/nothereeither') - end - - pp = <<-EOS - concat { '/tmp/concat/fail_no_source': - owner => root, - group => root, - mode => '0644', - } - - concat::fragment { '1': - target => '/tmp/concat/fail_no_source', - source => [ '/tmp/concat/nofilehere', '/tmp/concat/nothereeither' ], - order => '01', - } - EOS - - it 'applies the manifest with resource failures' do - apply_manifest(pp, :expect_failures => true) - end - describe file('/tmp/concat/fail_no_source') do - #FIXME: Serverspec::Type::File doesn't support exists? for some reason. so... hack. - it { should_not be_file } - it { should_not be_directory } - end - end -end - diff --git a/modules/concat/spec/acceptance/newline_spec.rb b/modules/concat/spec/acceptance/newline_spec.rb deleted file mode 100644 index 1e989df..0000000 --- a/modules/concat/spec/acceptance/newline_spec.rb +++ /dev/null @@ -1,57 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'concat ensure_newline parameter' do - context '=> false' do - pp = <<-EOS - concat { '/tmp/concat/file': - ensure_newline => false, - } - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '12' } - end - end - - context '=> true' do - pp = <<-EOS - concat { '/tmp/concat/file': - ensure_newline => true, - } - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - #XXX ensure_newline => true causes changes on every run because the files - #are modified in place. - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain "1\n2\n" } - end - end -end diff --git a/modules/concat/spec/acceptance/nodesets/aix-71-vcloud.yml b/modules/concat/spec/acceptance/nodesets/aix-71-vcloud.yml deleted file mode 100644 index f0ae87a..0000000 --- a/modules/concat/spec/acceptance/nodesets/aix-71-vcloud.yml +++ /dev/null @@ -1,19 +0,0 @@ -HOSTS: - pe-aix-71-acceptance: - roles: - - master - - dashboard - - database - - agent - - default - platform: aix-7.1-power - hypervisor: aix - ip: pe-aix-71-acceptance.delivery.puppetlabs.net -CONFIG: - type: pe - nfs_server: NONE - consoleport: 443 - datastore: instance0 - folder: Delivery/Quality Assurance/Enterprise/Dynamic - resourcepool: delivery/Quality Assurance/Enterprise/Dynamic - pooling_api: http://vcloud.delivery.puppetlabs.net/ diff --git a/modules/concat/spec/acceptance/nodesets/centos-59-x64.yml b/modules/concat/spec/acceptance/nodesets/centos-59-x64.yml deleted file mode 100644 index 2ad90b8..0000000 --- a/modules/concat/spec/acceptance/nodesets/centos-59-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - centos-59-x64: - roles: - - master - platform: el-5-x86_64 - box : centos-59-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-59-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: git diff --git a/modules/concat/spec/acceptance/nodesets/centos-64-x64-pe.yml b/modules/concat/spec/acceptance/nodesets/centos-64-x64-pe.yml deleted file mode 100644 index 7d9242f..0000000 --- a/modules/concat/spec/acceptance/nodesets/centos-64-x64-pe.yml +++ /dev/null @@ -1,12 +0,0 @@ -HOSTS: - centos-64-x64: - roles: - - master - - database - - dashboard - platform: el-6-x86_64 - box : centos-64-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: pe diff --git a/modules/concat/spec/acceptance/nodesets/centos-64-x64.yml b/modules/concat/spec/acceptance/nodesets/centos-64-x64.yml deleted file mode 100644 index 05540ed..0000000 --- a/modules/concat/spec/acceptance/nodesets/centos-64-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - centos-64-x64: - roles: - - master - platform: el-6-x86_64 - box : centos-64-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/debian-607-x64.yml b/modules/concat/spec/acceptance/nodesets/debian-607-x64.yml deleted file mode 100644 index 4c8be42..0000000 --- a/modules/concat/spec/acceptance/nodesets/debian-607-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - debian-607-x64: - roles: - - master - platform: debian-6-amd64 - box : debian-607-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/debian-607-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: git diff --git a/modules/concat/spec/acceptance/nodesets/debian-70rc1-x64.yml b/modules/concat/spec/acceptance/nodesets/debian-70rc1-x64.yml deleted file mode 100644 index 19181c1..0000000 --- a/modules/concat/spec/acceptance/nodesets/debian-70rc1-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - debian-70rc1-x64: - roles: - - master - platform: debian-7-amd64 - box : debian-70rc1-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/debian-70rc1-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: git diff --git a/modules/concat/spec/acceptance/nodesets/debian-73-x64.yml b/modules/concat/spec/acceptance/nodesets/debian-73-x64.yml deleted file mode 100644 index 3e6a3a9..0000000 --- a/modules/concat/spec/acceptance/nodesets/debian-73-x64.yml +++ /dev/null @@ -1,11 +0,0 @@ -HOSTS: - debian-73-x64.localhost: - roles: - - master - platform: debian-7-amd64 - box : debian-73-x64-virtualbox-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/debian-73-x64-virtualbox-nocm.box - hypervisor : vagrant -CONFIG: - log_level: debug - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/default.yml b/modules/concat/spec/acceptance/nodesets/default.yml deleted file mode 100644 index ae812b0..0000000 --- a/modules/concat/spec/acceptance/nodesets/default.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - centos-64-x64.localdomain: - roles: - - master - platform: el-6-x86_64 - box : centos-65-x64-virtualbox-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-65-x64-virtualbox-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/fedora-18-x64.yml b/modules/concat/spec/acceptance/nodesets/fedora-18-x64.yml deleted file mode 100644 index 1361649..0000000 --- a/modules/concat/spec/acceptance/nodesets/fedora-18-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - fedora-18-x64: - roles: - - master - platform: fedora-18-x86_64 - box : fedora-18-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/fedora-18-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/rhel-7-x64.yml b/modules/concat/spec/acceptance/nodesets/rhel-7-x64.yml deleted file mode 100644 index cf8f79a..0000000 --- a/modules/concat/spec/acceptance/nodesets/rhel-7-x64.yml +++ /dev/null @@ -1,15 +0,0 @@ -HOSTS: - 'redhat-7-vcloud': - roles: - - master - platform: el-7-x86_64 - hypervisor: vcloud - template: redhat-7-x86_64 -CONFIG: - type: foss - ssh: - keys: "~/.ssh/id_rsa-acceptance" - datastore: instance0 - folder: Delivery/Quality Assurance/Enterprise/Dynamic - resourcepool: delivery/Quality Assurance/Enterprise/Dynamic - pooling_api: http://vcloud.delivery.puppetlabs.net/ diff --git a/modules/concat/spec/acceptance/nodesets/sles-11-x64.yml b/modules/concat/spec/acceptance/nodesets/sles-11-x64.yml deleted file mode 100644 index 41abe21..0000000 --- a/modules/concat/spec/acceptance/nodesets/sles-11-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - sles-11-x64.local: - roles: - - master - platform: sles-11-x64 - box : sles-11sp1-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/sles-11sp1-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/sles-11sp1-x64.yml b/modules/concat/spec/acceptance/nodesets/sles-11sp1-x64.yml deleted file mode 100644 index 554c37a..0000000 --- a/modules/concat/spec/acceptance/nodesets/sles-11sp1-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - sles-11sp1-x64: - roles: - - master - platform: sles-11-x86_64 - box : sles-11sp1-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/sles-11sp1-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: git diff --git a/modules/concat/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml b/modules/concat/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml deleted file mode 100644 index 5ca1514..0000000 --- a/modules/concat/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - ubuntu-server-10044-x64: - roles: - - master - platform: ubuntu-10.04-amd64 - box : ubuntu-server-10044-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-10044-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml b/modules/concat/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml deleted file mode 100644 index d065b30..0000000 --- a/modules/concat/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - ubuntu-server-12042-x64: - roles: - - master - platform: ubuntu-12.04-amd64 - box : ubuntu-server-12042-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/concat/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml b/modules/concat/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml deleted file mode 100644 index cba1cd0..0000000 --- a/modules/concat/spec/acceptance/nodesets/ubuntu-server-1404-x64.yml +++ /dev/null @@ -1,11 +0,0 @@ -HOSTS: - ubuntu-server-1404-x64: - roles: - - master - platform: ubuntu-14.04-amd64 - box : puppetlabs/ubuntu-14.04-64-nocm - box_url : https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm - hypervisor : vagrant -CONFIG: - log_level : debug - type: git diff --git a/modules/concat/spec/acceptance/order_spec.rb b/modules/concat/spec/acceptance/order_spec.rb deleted file mode 100644 index 8bcb713..0000000 --- a/modules/concat/spec/acceptance/order_spec.rb +++ /dev/null @@ -1,137 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'concat order' do - before(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - end - - context '=> alpha' do - pp = <<-EOS - concat { '/tmp/concat/foo': - order => 'alpha' - } - concat::fragment { '1': - target => '/tmp/concat/foo', - content => 'string1', - } - concat::fragment { '2': - target => '/tmp/concat/foo', - content => 'string2', - } - concat::fragment { '10': - target => '/tmp/concat/foo', - content => 'string10', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/foo') do - it { should be_file } - it { should contain "string10\nstring1\nsring2" } - end - end - - context '=> numeric' do - pp = <<-EOS - concat { '/tmp/concat/foo': - order => 'numeric' - } - concat::fragment { '1': - target => '/tmp/concat/foo', - content => 'string1', - } - concat::fragment { '2': - target => '/tmp/concat/foo', - content => 'string2', - } - concat::fragment { '10': - target => '/tmp/concat/foo', - content => 'string10', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/foo') do - it { should be_file } - it { should contain "string1\nstring2\nsring10" } - end - end -end # concat order - -describe 'concat::fragment order' do - before(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - end - - context '=> reverse order' do - pp = <<-EOS - concat { '/tmp/concat/foo': } - concat::fragment { '1': - target => '/tmp/concat/foo', - content => 'string1', - order => '15', - } - concat::fragment { '2': - target => '/tmp/concat/foo', - content => 'string2', - # default order 10 - } - concat::fragment { '3': - target => '/tmp/concat/foo', - content => 'string3', - order => '1', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/foo') do - it { should be_file } - it { should contain "string3\nstring2\nsring1" } - end - end - - context '=> normal order' do - pp = <<-EOS - concat { '/tmp/concat/foo': } - concat::fragment { '1': - target => '/tmp/concat/foo', - content => 'string1', - order => '01', - } - concat::fragment { '2': - target => '/tmp/concat/foo', - content => 'string2', - order => '02' - } - concat::fragment { '3': - target => '/tmp/concat/foo', - content => 'string3', - order => '03', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/foo') do - it { should be_file } - it { should contain "string1\nstring2\nsring3" } - end - end -end # concat::fragment order diff --git a/modules/concat/spec/acceptance/quoted_paths_spec.rb b/modules/concat/spec/acceptance/quoted_paths_spec.rb deleted file mode 100644 index d1a2b5f..0000000 --- a/modules/concat/spec/acceptance/quoted_paths_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'quoted paths' do - before(:all) do - shell('rm -rf "/tmp/concat test" /var/lib/puppet/concat') - shell('mkdir -p "/tmp/concat test"') - end - - context 'path with blanks' do - pp = <<-EOS - concat { '/tmp/concat test/foo': - } - concat::fragment { '1': - target => '/tmp/concat test/foo', - content => 'string1', - } - concat::fragment { '2': - target => '/tmp/concat test/foo', - content => 'string2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat test/foo') do - it { should be_file } - it { should contain "string1\nsring2" } - end - end -end diff --git a/modules/concat/spec/acceptance/replace_spec.rb b/modules/concat/spec/acceptance/replace_spec.rb deleted file mode 100644 index 7b31e09..0000000 --- a/modules/concat/spec/acceptance/replace_spec.rb +++ /dev/null @@ -1,241 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'replacement of' do - context 'file' do - context 'should not succeed' do - before(:all) do - shell('mkdir -p /tmp/concat') - shell('echo "file exists" > /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': - replace => false, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain 'file exists' } - it { should_not contain '1' } - it { should_not contain '2' } - end - end - - context 'should succeed' do - before(:all) do - shell('mkdir -p /tmp/concat') - shell('echo "file exists" > /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': - replace => true, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should_not contain 'file exists' } - it { should contain '1' } - it { should contain '2' } - end - end - end # file - - context 'symlink' do - context 'should not succeed' do - # XXX the core puppet file type will replace a symlink with a plain file - # when using ensure => present and source => ... but it will not when using - # ensure => present and content => ...; this is somewhat confusing behavior - before(:all) do - shell('mkdir -p /tmp/concat') - shell('ln -s /tmp/concat/dangling /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': - replace => false, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_linked_to '/tmp/concat/dangling' } - end - - describe file('/tmp/concat/dangling') do - # XXX serverspec does not have a matcher for 'exists' - it { should_not be_file } - it { should_not be_directory } - end - end - - context 'should succeed' do - # XXX the core puppet file type will replace a symlink with a plain file - # when using ensure => present and source => ... but it will not when using - # ensure => present and content => ...; this is somewhat confusing behavior - before(:all) do - shell('mkdir -p /tmp/concat') - shell('ln -s /tmp/concat/dangling /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': - replace => true, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '1' } - it { should contain '2' } - end - end - end # symlink - - context 'directory' do - context 'should not succeed' do - before(:all) do - shell('mkdir -p /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with stderr for changing to file' do - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/change from directory to file failed/) - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/change from directory to file failed/) - end - - describe file('/tmp/concat/file') do - it { should be_directory } - end - end - - # XXX concat's force param currently enables the creation of empty files - # when there are no fragments, and the replace param will only replace - # files and symlinks, not directories. The semantics either need to be - # changed, extended, or a new param introduced to control directory - # replacement. - context 'should succeed', :pending => 'not yet implemented' do - before(:all) do - shell('mkdir -p /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - pp = <<-EOS - concat { '/tmp/concat/file': - force => true, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '1' } - end - end - end # directory -end diff --git a/modules/concat/spec/acceptance/symbolic_name_spec.rb b/modules/concat/spec/acceptance/symbolic_name_spec.rb deleted file mode 100644 index 7267f5e..0000000 --- a/modules/concat/spec/acceptance/symbolic_name_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'symbolic name' do - pp = <<-EOS - concat { 'not_abs_path': - path => '/tmp/concat/file', - } - - concat::fragment { '1': - target => 'not_abs_path', - content => '1', - order => '01', - } - - concat::fragment { '2': - target => 'not_abs_path', - content => '2', - order => '02', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '1' } - it { should contain '2' } - end -end diff --git a/modules/concat/spec/acceptance/warn_spec.rb b/modules/concat/spec/acceptance/warn_spec.rb deleted file mode 100644 index cb0b743..0000000 --- a/modules/concat/spec/acceptance/warn_spec.rb +++ /dev/null @@ -1,97 +0,0 @@ -require 'spec_helper_acceptance' - -describe 'concat warn =>' do - context 'true should enable default warning message' do - pp = <<-EOS - concat { '/tmp/concat/file': - warn => true, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - order => '01', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - order => '02', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '# This file is managed by Puppet. DO NOT EDIT.' } - it { should contain '1' } - it { should contain '2' } - end - end - context 'false should not enable default warning message' do - pp = <<-EOS - concat { '/tmp/concat/file': - warn => false, - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - order => '01', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - order => '02', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should_not contain '# This file is managed by Puppet. DO NOT EDIT.' } - it { should contain '1' } - it { should contain '2' } - end - end - context '# foo should overide default warning message' do - pp = <<-EOS - concat { '/tmp/concat/file': - warn => '# foo', - } - - concat::fragment { '1': - target => '/tmp/concat/file', - content => '1', - order => '01', - } - - concat::fragment { '2': - target => '/tmp/concat/file', - content => '2', - order => '02', - } - EOS - - it 'applies the manifest twice with no stderr' do - expect(apply_manifest(pp, :catch_failures => true).stderr).to eq("") - expect(apply_manifest(pp, :catch_changes => true).stderr).to eq("") - end - - describe file('/tmp/concat/file') do - it { should be_file } - it { should contain '# foo' } - it { should contain '1' } - it { should contain '2' } - end - end -end diff --git a/modules/concat/spec/spec_helper.rb b/modules/concat/spec/spec_helper.rb deleted file mode 100644 index 2c6f566..0000000 --- a/modules/concat/spec/spec_helper.rb +++ /dev/null @@ -1 +0,0 @@ -require 'puppetlabs_spec_helper/module_spec_helper' diff --git a/modules/concat/spec/spec_helper_acceptance.rb b/modules/concat/spec/spec_helper_acceptance.rb deleted file mode 100644 index 22bd72f..0000000 --- a/modules/concat/spec/spec_helper_acceptance.rb +++ /dev/null @@ -1,39 +0,0 @@ -require 'beaker-rspec/spec_helper' -require 'beaker-rspec/helpers/serverspec' - -unless ENV['RS_PROVISION'] == 'no' or ENV['BEAKER_provision'] == 'no' - if hosts.first.is_pe? - install_pe - else - install_puppet - end - hosts.each do |host| - on hosts, "mkdir -p #{host['distmoduledir']}" - end -end - -RSpec.configure do |c| - # Project root - proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) - - # Readable test descriptions - c.formatter = :documentation - - # Configure all nodes in nodeset - c.before :suite do - # Install module and dependencies - puppet_module_install(:source => proj_root, :module_name => 'concat') - hosts.each do |host| - on host, puppet('module','install','puppetlabs-stdlib'), { :acceptable_exit_codes => [0,1] } - end - end - - c.before(:all) do - shell('mkdir -p /tmp/concat') - end - c.after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - - c.treat_symbols_as_metadata_keys_with_true_values = true -end diff --git a/modules/concat/spec/unit/classes/concat_setup_spec.rb b/modules/concat/spec/unit/classes/concat_setup_spec.rb deleted file mode 100644 index bba455a..0000000 --- a/modules/concat/spec/unit/classes/concat_setup_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -require 'spec_helper' - -describe 'concat::setup', :type => :class do - - shared_examples 'setup' do |concatdir| - concatdir = '/foo' if concatdir.nil? - - let(:facts) {{ :concat_basedir => concatdir }} - - it do - should contain_file("#{concatdir}/bin/concatfragments.sh").with({ - :mode => '0755', - :source => 'puppet:///modules/concat/concatfragments.sh', - :backup => false, - }) - end - - [concatdir, "#{concatdir}/bin"].each do |file| - it do - should contain_file(file).with({ - :ensure => 'directory', - :mode => '0755', - :backup => false, - }) - end - end - end - - context 'facts' do - context 'concat_basedir =>' do - context '/foo' do - it_behaves_like 'setup', '/foo' - end - end - end # facts - - context 'deprecated as a public class' do - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end -end diff --git a/modules/concat/spec/unit/defines/concat_fragment_spec.rb b/modules/concat/spec/unit/defines/concat_fragment_spec.rb deleted file mode 100644 index 3b5269e..0000000 --- a/modules/concat/spec/unit/defines/concat_fragment_spec.rb +++ /dev/null @@ -1,267 +0,0 @@ -require 'spec_helper' - -describe 'concat::fragment', :type => :define do - - shared_examples 'fragment' do |title, params| - params = {} if params.nil? - - p = { - :content => nil, - :source => nil, - :order => 10, - :ensure => 'present', - }.merge(params) - - safe_name = title.gsub(/[\/\n]/, '_') - safe_target_name = p[:target].gsub(/[\/\n]/, '_') - concatdir = '/var/lib/puppet/concat' - fragdir = "#{concatdir}/#{safe_target_name}" - id = 'root' - if p[:ensure] == 'absent' - safe_ensure = p[:ensure] - else - safe_ensure = 'file' - end - - let(:title) { title } - let(:facts) {{ :concat_basedir => concatdir, :id => id }} - let(:params) { params } - let(:pre_condition) do - "concat{ '#{p[:target]}': }" - end - - it do - should contain_class('concat::setup') - should contain_concat(p[:target]) - should contain_file("#{fragdir}/fragments/#{p[:order]}_#{safe_name}").with({ - :ensure => safe_ensure, - :owner => id, - :mode => '0640', - :source => p[:source], - :content => p[:content], - :alias => "concat_fragment_#{title}", - :backup => false, - }) - end - end - - context 'title' do - ['0', '1', 'a', 'z'].each do |title| - it_behaves_like 'fragment', title, { - :target => '/etc/motd', - } - end - end # title - - context 'target =>' do - ['./etc/motd', 'etc/motd', 'motd_header'].each do |target| - context target do - it_behaves_like 'fragment', target, { - :target => '/etc/motd', - } - end - end - - context 'false' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) {{ :target => false }} - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # target => - - context 'ensure =>' do - ['present', 'absent'].each do |ens| - context ens do - it_behaves_like 'fragment', 'motd_header', { - :ensure => ens, - :target => '/etc/motd', - } - end - end - - context 'any value other than \'present\' or \'absent\'' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) {{ :ensure => 'invalid', :target => '/etc/motd' }} - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end # ensure => - - context 'content =>' do - ['', 'ashp is our hero'].each do |content| - context content do - it_behaves_like 'fragment', 'motd_header', { - :content => content, - :target => '/etc/motd', - } - end - end - - context 'false' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) {{ :content => false, :target => '/etc/motd' }} - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # content => - - context 'source =>' do - ['', '/foo/bar', ['/foo/bar', '/foo/baz']].each do |source| - context source do - it_behaves_like 'fragment', 'motd_header', { - :source => source, - :target => '/etc/motd', - } - end - end - - context 'false' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) {{ :source => false, :target => '/etc/motd' }} - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string or an Array/) - end - end - end # source => - - context 'order =>' do - ['', '42', 'a', 'z'].each do |order| - context '\'\'' do - it_behaves_like 'fragment', 'motd_header', { - :order => order, - :target => '/etc/motd', - } - end - end - - context 'false' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) {{ :order => false, :target => '/etc/motd' }} - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # order => - - context 'more than one content source' do - error_msg = 'You cannot specify more than one of $content, $source, $ensure => /target' - - context 'ensure => target and source' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) do - { - :target => '/etc/motd', - :ensure => '/foo', - :source => '/bar', - } - end - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /#{Regexp.escape(error_msg)}/m) - end - end - - context 'ensure => target and content' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) do - { - :target => '/etc/motd', - :ensure => '/foo', - :content => 'bar', - } - end - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /#{Regexp.escape(error_msg)}/m) - end - end - - context 'source and content' do - let(:title) { 'motd_header' } - let(:facts) {{ :concat_basedir => '/tmp' }} - let(:params) do - { - :target => '/etc/motd', - :source => '/foo', - :content => 'bar', - } - end - - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /#{Regexp.escape(error_msg)}/m) - end - end - - end # more than one content source - - describe 'deprecated parameter' do - context 'mode =>' do - context '1755' do - it_behaves_like 'fragment', 'motd_header', { - :mode => '1755', - :target => '/etc/motd', - } - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end # mode => - - context 'owner =>' do - context 'apenny' do - it_behaves_like 'fragment', 'motd_header', { - :owner => 'apenny', - :target => '/etc/motd', - } - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end # owner => - - context 'group =>' do - context 'apenny' do - it_behaves_like 'fragment', 'motd_header', { - :group => 'apenny', - :target => '/etc/motd', - } - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end # group => - - context 'backup =>' do - context 'foo' do - it_behaves_like 'fragment', 'motd_header', { - :backup => 'foo', - :target => '/etc/motd', - } - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end # backup => - end # deprecated params - -end diff --git a/modules/concat/spec/unit/defines/concat_spec.rb b/modules/concat/spec/unit/defines/concat_spec.rb deleted file mode 100644 index 9fdd7b2..0000000 --- a/modules/concat/spec/unit/defines/concat_spec.rb +++ /dev/null @@ -1,380 +0,0 @@ -require 'spec_helper' - -describe 'concat', :type => :define do - - shared_examples 'concat' do |title, params, id| - params = {} if params.nil? - id = 'root' if id.nil? - - # default param values - p = { - :ensure => 'present', - :path => title, - :owner => nil, - :group => nil, - :mode => '0644', - :warn => false, - :force => false, - :backup => 'puppet', - :replace => true, - :order => 'alpha', - :ensure_newline => false, - }.merge(params) - - safe_name = title.gsub('/', '_') - concatdir = '/var/lib/puppet/concat' - fragdir = "#{concatdir}/#{safe_name}" - concat_name = 'fragments.concat.out' - default_warn_message = '# This file is managed by Puppet. DO NOT EDIT.' - - file_defaults = { - :backup => false, - } - - let(:title) { title } - let(:params) { params } - let(:facts) {{ :concat_basedir => concatdir, :id => id }} - - if p[:ensure] == 'present' - it do - should contain_file(fragdir).with(file_defaults.merge({ - :ensure => 'directory', - :mode => '0750', - })) - end - - it do - should contain_file("#{fragdir}/fragments").with(file_defaults.merge({ - :ensure => 'directory', - :mode => '0750', - :force => true, - :ignore => ['.svn', '.git', '.gitignore'], - :purge => true, - :recurse => true, - })) - end - - [ - "#{fragdir}/fragments.concat", - "#{fragdir}/#{concat_name}", - ].each do |file| - it do - should contain_file(file).with(file_defaults.merge({ - :ensure => 'present', - :mode => '0640', - })) - end - end - - it do - should contain_file(title).with(file_defaults.merge({ - :ensure => 'present', - :owner => p[:owner], - :group => p[:group], - :mode => p[:mode], - :replace => p[:replace], - :path => p[:path], - :alias => "concat_#{title}", - :source => "#{fragdir}/#{concat_name}", - :backup => p[:backup], - })) - end - - cmd = "#{concatdir}/bin/concatfragments.sh " + - "-o \"#{concatdir}/#{safe_name}/fragments.concat.out\" " + - "-d \"#{concatdir}/#{safe_name}\"" - - # flag order: fragdir, warnflag, forceflag, orderflag, newlineflag - if p.has_key?(:warn) - case p[:warn] - when TrueClass - message = default_warn_message - when 'true', 'yes', 'on' - # should generate a stringified boolean warning - message = default_warn_message - when FalseClass - message = nil - when 'false', 'no', 'off' - # should generate a stringified boolean warning - message = nil - else - message = p[:warn] - end - - unless message.nil? - cmd += " -w \'#{message}\'" - end - end - - cmd += " -f" if p[:force] - cmd += " -n" if p[:order] == 'numeric' - cmd += " -l" if p[:ensure_newline] == true - - it do - should contain_exec("concat_#{title}").with({ - :alias => "concat_#{fragdir}", - :command => cmd, - :unless => "#{cmd} -t", - }) - end - else - [ - fragdir, - "#{fragdir}/fragments", - "#{fragdir}/fragments.concat", - "#{fragdir}/#{concat_name}", - ].each do |file| - it do - should contain_file(file).with(file_defaults.merge({ - :ensure => 'absent', - :backup => false, - :force => true, - })) - end - end - - it do - should contain_file(title).with(file_defaults.merge({ - :ensure => 'absent', - :backup => p[:backup], - })) - end - - it do - should contain_exec("concat_#{title}").with({ - :alias => "concat_#{fragdir}", - :command => 'true', - :path => '/bin:/usr/bin', - }) - end - end - end - - context 'title' do - context 'without path param' do - # title/name is the default value for the path param. therefore, the - # title must be an absolute path unless path is specified - ['/foo', '/foo/bar', '/foo/bar/baz'].each do |title| - context title do - it_behaves_like 'concat', '/etc/foo.bar' - end - end - - ['./foo', 'foo', 'foo/bar'].each do |title| - context title do - let(:title) { title } - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not an absolute path/) - end - end - end - end - - context 'with path param' do - ['./foo', 'foo', 'foo/bar'].each do |title| - context title do - it_behaves_like 'concat', title, { :path => '/etc/foo.bar' } - end - end - end - end # title => - - context 'as non-root user' do - it_behaves_like 'concat', '/etc/foo.bar', {}, 'bob' - end - - context 'ensure =>' do - ['present', 'absent'].each do |ens| - context ens do - it_behaves_like 'concat', '/etc/foo.bar', { :ensure => ens } - end - end - - context 'invalid' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :ensure => 'invalid' }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /#{Regexp.escape('does not match "^present$|^absent$"')}/) - end - end - end # ensure => - - context 'path =>' do - context '/foo' do - it_behaves_like 'concat', '/etc/foo.bar', { :path => '/foo' } - end - - ['./foo', 'foo', 'foo/bar', false].each do |path| - context path do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :path => path }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not an absolute path/) - end - end - end - end # path => - - context 'owner =>' do - context 'apenney' do - it_behaves_like 'concat', '/etc/foo.bar', { :owner => 'apenny' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :owner => false }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # owner => - - context 'group =>' do - context 'apenney' do - it_behaves_like 'concat', '/etc/foo.bar', { :group => 'apenny' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :group => false }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # group => - - context 'mode =>' do - context '1755' do - it_behaves_like 'concat', '/etc/foo.bar', { :mode => '1755' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :mode => false }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # mode => - - context 'warn =>' do - [true, false, '# foo'].each do |warn| - context warn do - it_behaves_like 'concat', '/etc/foo.bar', { :warn => warn } - end - end - - context '(stringified boolean)' do - ['true', 'yes', 'on', 'false', 'no', 'off'].each do |warn| - context warn do - it_behaves_like 'concat', '/etc/foo.bar', { :warn => warn } - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :warn => 123 }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string or boolean/) - end - end - end # warn => - - context 'force =>' do - [true, false].each do |force| - context force do - it_behaves_like 'concat', '/etc/foo.bar', { :force => force } - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :force => 123 }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a boolean/) - end - end - end # force => - - context 'backup =>' do - context 'reverse' do - it_behaves_like 'concat', '/etc/foo.bar', { :backup => 'reverse' } - end - - context 'false' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :backup => false }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a string/) - end - end - end # backup => - - context 'replace =>' do - [true, false].each do |replace| - context replace do - it_behaves_like 'concat', '/etc/foo.bar', { :replace => replace } - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :replace => 123 }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a boolean/) - end - end - end # replace => - - context 'order =>' do - ['alpha', 'numeric'].each do |order| - context order do - it_behaves_like 'concat', '/etc/foo.bar', { :order => order } - end - end - - context 'invalid' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :order => 'invalid' }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /#{Regexp.escape('does not match "^alpha$|^numeric$"')}/) - end - end - end # order => - - context 'ensure_newline =>' do - [true, false].each do |ensure_newline| - context 'true' do - it_behaves_like 'concat', '/etc/foo.bar', { :ensure_newline => ensure_newline} - end - end - - context '123' do - let(:title) { '/etc/foo.bar' } - let(:params) {{ :ensure_newline => 123 }} - it 'should fail' do - expect { should }.to raise_error(Puppet::Error, /is not a boolean/) - end - end - end # ensure_newline => - - describe 'deprecated parameter' do - context 'gnu =>' do - context 'foo' do - it_behaves_like 'concat', '/etc/foo.bar', { :gnu => 'foo'} - - it 'should create a warning' do - pending('rspec-puppet support for testing warning()') - end - end - end - end - -end - -# vim:sw=2:ts=2:expandtab:textwidth=79 diff --git a/modules/concat/spec/unit/facts/concat_basedir_spec.rb b/modules/concat/spec/unit/facts/concat_basedir_spec.rb deleted file mode 100644 index 41bc90f..0000000 --- a/modules/concat/spec/unit/facts/concat_basedir_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'spec_helper' - -describe 'concat_basedir', :type => :fact do - before(:each) { Facter.clear } - - context 'Puppet[:vardir] ==' do - it '/var/lib/puppet' do - Puppet.stubs(:[]).with(:vardir).returns('/var/lib/puppet') - Facter.fact(:concat_basedir).value.should == '/var/lib/puppet/concat' - end - - it '/home/apenny/.puppet/var' do - Puppet.stubs(:[]).with(:vardir).returns('/home/apenny/.puppet/var') - Facter.fact(:concat_basedir).value.should == '/home/apenny/.puppet/var/concat' - end - end - -end diff --git a/modules/concat/tests/fragment.pp b/modules/concat/tests/fragment.pp deleted file mode 100644 index a2dfaca..0000000 --- a/modules/concat/tests/fragment.pp +++ /dev/null @@ -1,19 +0,0 @@ -concat { 'testconcat': - ensure => present, - path => '/tmp/concat', - owner => 'root', - group => 'root', - mode => '0664', -} - -concat::fragment { '1': - target => 'testconcat', - content => '1', - order => '01', -} - -concat::fragment { '2': - target => 'testconcat', - content => '2', - order => '02', -} diff --git a/modules/concat/tests/init.pp b/modules/concat/tests/init.pp deleted file mode 100644 index fd21427..0000000 --- a/modules/concat/tests/init.pp +++ /dev/null @@ -1,7 +0,0 @@ -concat { '/tmp/concat': - ensure => present, - force => true, - owner => 'root', - group => 'root', - mode => '0644', -} diff --git a/modules/kannel/.project b/modules/kannel/.project deleted file mode 100644 index 52b8311..0000000 --- a/modules/kannel/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - kannel - - - - - - org.eclipse.xtext.ui.shared.xtextBuilder - - - - - com.puppetlabs.geppetto.pp.dsl.ui.modulefileBuilder - - - - - - com.puppetlabs.geppetto.pp.dsl.ui.puppetNature - org.eclipse.xtext.ui.shared.xtextNature - - diff --git a/modules/kannel/README.markdown b/modules/kannel/README.markdown deleted file mode 100644 index bd506d1..0000000 --- a/modules/kannel/README.markdown +++ /dev/null @@ -1,3 +0,0 @@ -# kannel # - -This is the kannel module. It provides... diff --git a/modules/kannel/Rakefile b/modules/kannel/Rakefile deleted file mode 100644 index 14f1c24..0000000 --- a/modules/kannel/Rakefile +++ /dev/null @@ -1,2 +0,0 @@ -require 'rubygems' -require 'puppetlabs_spec_helper/rake_tasks' diff --git a/modules/kannel/files/kannel-default b/modules/kannel/files/kannel-default deleted file mode 100644 index adb0f48..0000000 --- a/modules/kannel/files/kannel-default +++ /dev/null @@ -1,2 +0,0 @@ -#START_WAPBOX=1 -START_SMSBOX=1 diff --git a/modules/kannel/manifests/init.pp b/modules/kannel/manifests/init.pp deleted file mode 100644 index d67c2e7..0000000 --- a/modules/kannel/manifests/init.pp +++ /dev/null @@ -1,35 +0,0 @@ -# Class: kannel -# -# This module manages kannel -# -# Parameters: none -# -# Actions: -# -# Requires: see Modulefile -# -# Sample Usage: -# -class kannel ( - $kannel_bind_address = hiera('rhizo::vpn_ip_address'), - $kannel_admin_password = hiera('rhizo::kannel_admin_password'), - $smsc_password = hiera('rhizo::smsc_password'), - $kannel_sendsms_password = hiera('rhizo::kannel_sendsms_password') -) { - - package { 'kannel': - ensure => purged, - } - - file { '/etc/kannel/kannel.conf': - ensure => absent, - content => template('kannel/kannel.conf.erb'), - require => Package['kannel'], - } - - file { '/etc/default/kannel': - ensure => absent, - source => ['puppet:///modules/kannel/kannel-default'], - } - -} diff --git a/modules/kannel/metadata.json b/modules/kannel/metadata.json deleted file mode 100644 index 487a78f..0000000 --- a/modules/kannel/metadata.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "ciaby-kannel", - "version": "0.1.0", - "summary": "", - "author": "", - "description": "", - "dependencies": [], - "types": [], - "checksums": {}, - "source": "", - "project_page": "", - "license": "" -} \ No newline at end of file diff --git a/modules/kannel/spec/spec.opts b/modules/kannel/spec/spec.opts deleted file mode 100644 index 91cd642..0000000 --- a/modules/kannel/spec/spec.opts +++ /dev/null @@ -1,6 +0,0 @@ ---format -s ---colour ---loadby -mtime ---backtrace diff --git a/modules/kannel/spec/spec_helper.rb b/modules/kannel/spec/spec_helper.rb deleted file mode 100644 index dc7e9f4..0000000 --- a/modules/kannel/spec/spec_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -require 'rubygems' -require 'puppetlabs_spec_helper/module_spec_helper' diff --git a/modules/kannel/templates/kannel.conf.erb b/modules/kannel/templates/kannel.conf.erb deleted file mode 100644 index d953fd3..0000000 --- a/modules/kannel/templates/kannel.conf.erb +++ /dev/null @@ -1,67 +0,0 @@ -group = core -admin-port = 14000 -admin-password = <%= @kannel_admin_password %> -log-file = "/var/log/kannel/bearerbox.log" -log-level = 0 -access-log = "/var/log/kannel/bearerbox_access.log" -# Smsbox related -smsbox-port = 14001 -#box-deny-ip = "*.*.*.*" -#box-allow-ip = "127.0.0.1" -#sms-resend-retry = 2 - - -# SMSC SMPP -group = smsc -smsc = smpp -smsc-id = KSMPP -host = 127.0.0.1 -port = 2775 -#receive-port = 2775 -interface-version=34 -# alt-charset = ISO-8859-1 -enquire-link-interval = 10 -connect-allow-ip = 127.0.0.1 -transceiver-mode = true -smsc-username = OSMPP -smsc-password = <%= @smsc_password %> -system-type = kannel -connection-timeout = 10 -reconnect-delay = 10 - - -group = smsbox-route -smsbox-id = mysm -smsc-id = KSMPP - - -# receive SMS -group = sms-service -#keyword = -keyword-regex = .* -catch-all = yes -max-messages = 0 -post-url = "http://localhost:8085/sms?source=%p&destination=%P&charset=%C&coding=%c&text=%a&btext=%b&dr=%d&dcs=%O" - - -# send to web cgi -group = sendsms-user -default-smsc = KSMPP -username = rhizomatica -password = <%= @kannel_sendsms_password %> -concatenation = true -max-messages = 6 - - -# SMSBOX SETUP -group = smsbox -#smsbox-port = 14001 -sendsms-port = 14002 -smsbox-id = mysm -#mo-recode=true -#immediate-sendsms-reply = true -bearerbox-host = 127.0.0.1 -bearerbox-port = 14001 -log-file = "/var/log/kannel/smsbox.log" -log-level = 0 -access-log = "/var/log/kannel/smsbox_access.log" diff --git a/modules/kannel/tests/init.pp b/modules/kannel/tests/init.pp deleted file mode 100644 index 38779a4..0000000 --- a/modules/kannel/tests/init.pp +++ /dev/null @@ -1 +0,0 @@ -include kannel diff --git a/modules/packagecloud b/modules/packagecloud deleted file mode 160000 index 63d7e7a..0000000 --- a/modules/packagecloud +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 63d7e7aad5f82acaa0b2ae9ca44cdd1146f5fb84 diff --git a/modules/postgresql b/modules/postgresql index 9ca4b42..eb04c05 160000 --- a/modules/postgresql +++ b/modules/postgresql @@ -1 +1 @@ -Subproject commit 9ca4b42450ea9c9ed8eec52dac48cb67187ae925 +Subproject commit eb04c05f768b67d7d655ff4d1d5da36bb391d5df diff --git a/modules/python b/modules/python index 9b1d26b..a7ed33c 160000 --- a/modules/python +++ b/modules/python @@ -1 +1 @@ -Subproject commit 9b1d26bba9b063193259033772a7b34eef349e3b +Subproject commit a7ed33c5cf5584cb24b6ac1e00f8d784f236c614 diff --git a/modules/rhizo_base/manifests/riak.pp b/modules/rhizo_base/manifests/riak.pp deleted file mode 100644 index a2daff9..0000000 --- a/modules/rhizo_base/manifests/riak.pp +++ /dev/null @@ -1,79 +0,0 @@ -# Class: rhizo_base::riak -# -# This module manages the Riak database -# -# Parameters: none -# -# Actions: -# -# Requires: see Modulefile -# -# Sample Usage: -# -class rhizo_base::riak { - - $vpn_ip_address = $rhizo_base::vpn_ip_address - $riak_ip_address = $rhizo_base::riak_ip_address - - include packagecloud - - packagecloud::repo { 'basho/riak': - type => 'deb', - } -> - class { '::riak': - package_name => 'riak', # default - service_name => 'riak', # default - manage_package => true, # default - manage_repo => false, - version => 'latest', # default, use a package version if desired - # settings in the settings hash are written directly to settings.conf. - settings => { - 'anti_entropy' => 'active', - 'bitcask.data_root' => '$(platform_data_dir)/bitcask', - 'bitcask.io_mode' => 'erlang', - 'distributed_cookie' => 'riak', - 'dtrace' => 'off', - 'erlang.async_threads' => '64', - 'erlang.max_ports' => '65536', - 'leveldb.maximum_memory.percent' => '70', - 'listener.http.internal' => "${vpn_ip_address}:8098", - 'listener.protobuf.internal' => "${vpn_ip_address}:8087", - 'log.console' => 'file', - 'log.console.file' => '$(platform_log_dir)/console.log', - 'log.console.level' => 'info', - 'log.crash.file' => '$(platform_log_dir)/crash.log', - 'log.crash.maximum_message_size' => '64KB', - 'log.crash' => 'on', - 'log.crash.rotation' => '$D0', - 'log.crash.rotation.keep' => '5', - 'log.crash.size' => '10MB', - 'log.error.file' => '$(platform_log_dir)/error.log', - 'log.syslog' => 'off', - 'nodename' => "riak@${vpn_ip_address}", - 'object.format' => '1', - 'object.siblings.maximum' => '100', - 'object.siblings.warning_threshold' => '25', - 'object.size.maximum' => '50MB', - 'object.size.warning_threshold' => '5MB', - 'platform_bin_dir' => '/usr/sbin', - 'platform_data_dir' => '/var/lib/riak', - 'platform_etc_dir' => '/etc/riak', - 'platform_lib_dir' => '/usr/lib64/riak/lib', - 'platform_log_dir' => '/var/log/riak', - 'riak_control.auth.mode' => 'off', - 'riak_control' => 'off', - 'search' => 'off', - 'search.solr.jmx_port' => '8985', - 'search.solr.jvm_options' => '-d64 -Xms1g -Xmx1g -XX:+UseStringCache -XX:+UseCompressedOops', - 'search.solr.port' => '8093', - 'search.solr.start_timeout' => '30s', - 'storage_backend' => 'leveldb', - } - } - - exec { 'insserv': - command => '/usr/lib/insserv/insserv', - refreshonly => true, - } - - } diff --git a/modules/riak b/modules/riak deleted file mode 160000 index 84e01ad..0000000 --- a/modules/riak +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 84e01ad925be944f3d11b1fb573e784a960f9ad8 diff --git a/modules/stdlib b/modules/stdlib new file mode 160000 index 0000000..b0d99ad --- /dev/null +++ b/modules/stdlib @@ -0,0 +1 @@ +Subproject commit b0d99ad6f1c87c4f0115e08b3bade8c736cc7f64 diff --git a/modules/stdlib/CHANGELOG.md b/modules/stdlib/CHANGELOG.md deleted file mode 100644 index 97979bf..0000000 --- a/modules/stdlib/CHANGELOG.md +++ /dev/null @@ -1,418 +0,0 @@ -##2014-06-04 - Release 4.2.2 -### Summary - -This release adds PE3.3 support in the metadata and fixes a few tests. - -## 2014-05-08 - Release - 4.2.1 -### Summary -This release moves a stray symlink that can cause problems. - -## 2014-05-08 - Release - 4.2.0 -### Summary -This release adds many new functions and fixes, and continues to be backwards compatible with stdlib 3.x - -#### Features -- New `base64()` function -- New `deep_merge()` function -- New `delete_undef_values()` function -- New `delete_values()` function -- New `difference()` function -- New `intersection()` function -- New `is_bool()` function -- New `pick_default()` function -- New `union()` function -- New `validate_ipv4_address` function -- New `validate_ipv6_address` function -- Update `ensure_packages()` to take an option hash as a second parameter. -- Update `range()` to take an optional third argument for range step -- Update `validate_slength()` to take an optional third argument for minimum length -- Update `file_line` resource to take `after` and `multiple` attributes - -#### Bugfixes -- Correct `is_string`, `is_domain_name`, `is_array`, `is_float`, and `is_function_available` for parsing odd types such as bools and hashes. -- Allow facts.d facts to contain `=` in the value -- Fix `root_home` fact on darwin systems -- Fix `concat()` to work with a second non-array argument -- Fix `floor()` to work with integer strings -- Fix `is_integer()` to return true if passed integer strings -- Fix `is_numeric()` to return true if passed integer strings -- Fix `merge()` to work with empty strings -- Fix `pick()` to raise the correct error type -- Fix `uriescape()` to use the default URI.escape list -- Add/update unit & acceptance tests. - - -##2014-03-04 - Supported Release - 3.2.1 -###Summary -This is a supported release - -####Bugfixes -- Fixed `is_integer`/`is_float`/`is_numeric` for checking the value of arithmatic expressions. - -####Known bugs -* No known bugs - ---- - -##### 2013-05-06 - Jeff McCune - 4.1.0 - - * (#20582) Restore facter\_dot\_d to stdlib for PE users (3b887c8) - * (maint) Update Gemfile with GEM\_FACTER\_VERSION (f44d535) - -##### 2013-05-06 - Alex Cline - 4.1.0 - - * Terser method of string to array conversion courtesy of ethooz. (d38bce0) - -##### 2013-05-06 - Alex Cline 4.1.0 - - * Refactor ensure\_resource expectations (b33cc24) - -##### 2013-05-06 - Alex Cline 4.1.0 - - * Changed str-to-array conversion and removed abbreviation. (de253db) - -##### 2013-05-03 - Alex Cline 4.1.0 - - * (#20548) Allow an array of resource titles to be passed into the ensure\_resource function (e08734a) - -##### 2013-05-02 - Raphaël Pinson - 4.1.0 - - * Add a dirname function (2ba9e47) - -##### 2013-04-29 - Mark Smith-Guerrero - 4.1.0 - - * (maint) Fix a small typo in hash() description (928036a) - -##### 2013-04-12 - Jeff McCune - 4.0.2 - - * Update user information in gemspec to make the intent of the Gem clear. - -##### 2013-04-11 - Jeff McCune - 4.0.1 - - * Fix README function documentation (ab3e30c) - -##### 2013-04-11 - Jeff McCune - 4.0.0 - - * stdlib 4.0 drops support with Puppet 2.7 - * stdlib 4.0 preserves support with Puppet 3 - -##### 2013-04-11 - Jeff McCune - 4.0.0 - - * Add ability to use puppet from git via bundler (9c5805f) - -##### 2013-04-10 - Jeff McCune - 4.0.0 - - * (maint) Make stdlib usable as a Ruby GEM (e81a45e) - -##### 2013-04-10 - Erik Dalén - 4.0.0 - - * Add a count function (f28550e) - -##### 2013-03-31 - Amos Shapira - 4.0.0 - - * (#19998) Implement any2array (7a2fb80) - -##### 2013-03-29 - Steve Huff - 4.0.0 - - * (19864) num2bool match fix (8d217f0) - -##### 2013-03-20 - Erik Dalén - 4.0.0 - - * Allow comparisons of Numeric and number as String (ff5dd5d) - -##### 2013-03-26 - Richard Soderberg - 4.0.0 - - * add suffix function to accompany the prefix function (88a93ac) - -##### 2013-03-19 - Kristof Willaert - 4.0.0 - - * Add floor function implementation and unit tests (0527341) - -##### 2012-04-03 - Eric Shamow - 4.0.0 - - * (#13610) Add is\_function\_available to stdlib (961dcab) - -##### 2012-12-17 - Justin Lambert - 4.0.0 - - * str2bool should return a boolean if called with a boolean (5d5a4d4) - -##### 2012-10-23 - Uwe Stuehler - 4.0.0 - - * Fix number of arguments check in flatten() (e80207b) - -##### 2013-03-11 - Jeff McCune - 4.0.0 - - * Add contributing document (96e19d0) - -##### 2013-03-04 - Raphaël Pinson - 4.0.0 - - * Add missing documentation for validate\_augeas and validate\_cmd to README.markdown (a1510a1) - -##### 2013-02-14 - Joshua Hoblitt - 4.0.0 - - * (#19272) Add has\_element() function (95cf3fe) - -##### 2013-02-07 - Raphaël Pinson - 4.0.0 - - * validate\_cmd(): Use Puppet::Util::Execution.execute when available (69248df) - -##### 2012-12-06 - Raphaël Pinson - 4.0.0 - - * Add validate\_augeas function (3a97c23) - -##### 2012-12-06 - Raphaël Pinson - 4.0.0 - - * Add validate\_cmd function (6902cc5) - -##### 2013-01-14 - David Schmitt - 4.0.0 - - * Add geppetto project definition (b3fc0a3) - -##### 2013-01-02 - Jaka Hudoklin - 4.0.0 - - * Add getparam function to get defined resource parameters (20e0e07) - -##### 2013-01-05 - Jeff McCune - 4.0.0 - - * (maint) Add Travis CI Support (d082046) - -##### 2012-12-04 - Jeff McCune - 4.0.0 - - * Clarify that stdlib 3 supports Puppet 3 (3a6085f) - -##### 2012-11-30 - Erik Dalén - 4.0.0 - - * maint: style guideline fixes (7742e5f) - -##### 2012-11-09 - James Fryman - 4.0.0 - - * puppet-lint cleanup (88acc52) - -##### 2012-11-06 - Joe Julian - 4.0.0 - - * Add function, uriescape, to URI.escape strings. Redmine #17459 (fd52b8d) - -##### 2012-09-18 - Chad Metcalf - 3.2.0 - - * Add an ensure\_packages function. (8a8c09e) - -##### 2012-11-23 - Erik Dalén - 3.2.0 - - * (#17797) min() and max() functions (9954133) - -##### 2012-05-23 - Peter Meier - 3.2.0 - - * (#14670) autorequire a file\_line resource's path (dfcee63) - -##### 2012-11-19 - Joshua Harlan Lifton - 3.2.0 - - * Add join\_keys\_to\_values function (ee0f2b3) - -##### 2012-11-17 - Joshua Harlan Lifton - 3.2.0 - - * Extend delete function for strings and hashes (7322e4d) - -##### 2012-08-03 - Gary Larizza - 3.2.0 - - * Add the pick() function (ba6dd13) - -##### 2012-03-20 - Wil Cooley - 3.2.0 - - * (#13974) Add predicate functions for interface facts (f819417) - -##### 2012-11-06 - Joe Julian - 3.2.0 - - * Add function, uriescape, to URI.escape strings. Redmine #17459 (70f4a0e) - -##### 2012-10-25 - Jeff McCune - 3.1.1 - - * (maint) Fix spec failures resulting from Facter API changes (97f836f) - -##### 2012-10-23 - Matthaus Owens - 3.1.0 - - * Add PE facts to stdlib (cdf3b05) - -##### 2012-08-16 - Jeff McCune - 3.0.1 - - * Fix accidental removal of facts\_dot\_d.rb in 3.0.0 release - -##### 2012-08-16 - Jeff McCune - 3.0.0 - - * stdlib 3.0 drops support with Puppet 2.6 - * stdlib 3.0 preserves support with Puppet 2.7 - -##### 2012-08-07 - Dan Bode - 3.0.0 - - * Add function ensure\_resource and defined\_with\_params (ba789de) - -##### 2012-07-10 - Hailee Kenney - 3.0.0 - - * (#2157) Remove facter\_dot\_d for compatibility with external facts (f92574f) - -##### 2012-04-10 - Chris Price - 3.0.0 - - * (#13693) moving logic from local spec\_helper to puppetlabs\_spec\_helper (85f96df) - -##### 2012-10-25 - Jeff McCune - 2.5.1 - - * (maint) Fix spec failures resulting from Facter API changes (97f836f) - -##### 2012-10-23 - Matthaus Owens - 2.5.0 - - * Add PE facts to stdlib (cdf3b05) - -##### 2012-08-15 - Dan Bode - 2.5.0 - - * Explicitly load functions used by ensure\_resource (9fc3063) - -##### 2012-08-13 - Dan Bode - 2.5.0 - - * Add better docs about duplicate resource failures (97d327a) - -##### 2012-08-13 - Dan Bode - 2.5.0 - - * Handle undef for parameter argument (4f8b133) - -##### 2012-08-07 - Dan Bode - 2.5.0 - - * Add function ensure\_resource and defined\_with\_params (a0cb8cd) - -##### 2012-08-20 - Jeff McCune - 2.5.0 - - * Disable tests that fail on 2.6.x due to #15912 (c81496e) - -##### 2012-08-20 - Jeff McCune - 2.5.0 - - * (Maint) Fix mis-use of rvalue functions as statements (4492913) - -##### 2012-08-20 - Jeff McCune - 2.5.0 - - * Add .rspec file to repo root (88789e8) - -##### 2012-06-07 - Chris Price - 2.4.0 - - * Add support for a 'match' parameter to file\_line (a06c0d8) - -##### 2012-08-07 - Erik Dalén - 2.4.0 - - * (#15872) Add to\_bytes function (247b69c) - -##### 2012-07-19 - Jeff McCune - 2.4.0 - - * (Maint) use PuppetlabsSpec::PuppetInternals.scope (master) (deafe88) - -##### 2012-07-10 - Hailee Kenney - 2.4.0 - - * (#2157) Make facts\_dot\_d compatible with external facts (5fb0ddc) - -##### 2012-03-16 - Steve Traylen - 2.4.0 - - * (#13205) Rotate array/string randomley based on fqdn, fqdn\_rotate() (fef247b) - -##### 2012-05-22 - Peter Meier - 2.3.3 - - * fix regression in #11017 properly (f0a62c7) - -##### 2012-05-10 - Jeff McCune - 2.3.3 - - * Fix spec tests using the new spec\_helper (7d34333) - -##### 2012-05-10 - Puppet Labs - 2.3.2 - - * Make file\_line default to ensure => present (1373e70) - * Memoize file\_line spec instance variables (20aacc5) - * Fix spec tests using the new spec\_helper (1ebfa5d) - * (#13595) initialize\_everything\_for\_tests couples modules Puppet ver (3222f35) - * (#13439) Fix MRI 1.9 issue with spec\_helper (15c5fd1) - * (#13439) Fix test failures with Puppet 2.6.x (665610b) - * (#13439) refactor spec helper for compatibility with both puppet 2.7 and master (82194ca) - * (#13494) Specify the behavior of zero padded strings (61891bb) - -##### 2012-03-29 Puppet Labs - 2.1.3 - -* (#11607) Add Rakefile to enable spec testing -* (#12377) Avoid infinite loop when retrying require json - -##### 2012-03-13 Puppet Labs - 2.3.1 - -* (#13091) Fix LoadError bug with puppet apply and puppet\_vardir fact - -##### 2012-03-12 Puppet Labs - 2.3.0 - -* Add a large number of new Puppet functions -* Backwards compatibility preserved with 2.2.x - -##### 2011-12-30 Puppet Labs - 2.2.1 - -* Documentation only release for the Forge - -##### 2011-12-30 Puppet Labs - 2.1.2 - -* Documentation only release for PE 2.0.x - -##### 2011-11-08 Puppet Labs - 2.2.0 - -* #10285 - Refactor json to use pson instead. -* Maint - Add watchr autotest script -* Maint - Make rspec tests work with Puppet 2.6.4 -* #9859 - Add root\_home fact and tests - -##### 2011-08-18 Puppet Labs - 2.1.1 - -* Change facts.d paths to match Facter 2.0 paths. -* /etc/facter/facts.d -* /etc/puppetlabs/facter/facts.d - -##### 2011-08-17 Puppet Labs - 2.1.0 - -* Add R.I. Pienaar's facts.d custom facter fact -* facts defined in /etc/facts.d and /etc/puppetlabs/facts.d are - automatically loaded now. - -##### 2011-08-04 Puppet Labs - 2.0.0 - -* Rename whole\_line to file\_line -* This is an API change and as such motivating a 2.0.0 release according to semver.org. - -##### 2011-08-04 Puppet Labs - 1.1.0 - -* Rename append\_line to whole\_line -* This is an API change and as such motivating a 1.1.0 release. - -##### 2011-08-04 Puppet Labs - 1.0.0 - -* Initial stable release -* Add validate\_array and validate\_string functions -* Make merge() function work with Ruby 1.8.5 -* Add hash merging function -* Add has\_key function -* Add loadyaml() function -* Add append\_line native - -##### 2011-06-21 Jeff McCune - 0.1.7 - -* Add validate\_hash() and getvar() functions - -##### 2011-06-15 Jeff McCune - 0.1.6 - -* Add anchor resource type to provide containment for composite classes - -##### 2011-06-03 Jeff McCune - 0.1.5 - -* Add validate\_bool() function to stdlib - -##### 0.1.4 2011-05-26 Jeff McCune - -* Move most stages after main - -##### 0.1.3 2011-05-25 Jeff McCune - -* Add validate\_re() function - -##### 0.1.2 2011-05-24 Jeff McCune - -* Update to add annotated tag - -##### 0.1.1 2011-05-24 Jeff McCune - -* Add stdlib::stages class with a standard set of stages diff --git a/modules/stdlib/CONTRIBUTING.md b/modules/stdlib/CONTRIBUTING.md deleted file mode 100644 index 5280da1..0000000 --- a/modules/stdlib/CONTRIBUTING.md +++ /dev/null @@ -1,65 +0,0 @@ -# How to contribute - -Third-party patches are essential for keeping stdlib great. We simply can't -access the huge number of platforms and myriad configurations for running -stdlib. We want to keep it as easy as possible to contribute changes that -get things working in your environment. There are a few guidelines that we -need contributors to follow so that we can have a chance of keeping on -top of things. - -## Getting Started - -* Make sure you have a [Jira account](http://tickets.puppetlabs.com) -* Make sure you have a [GitHub account](https://github.com/signup/free) -* Submit a ticket for your issue, assuming one does not already exist. - * Clearly describe the issue including steps to reproduce when it is a bug. - * Make sure you fill in the earliest version that you know has the issue. -* Fork the repository on GitHub - -## Making Changes - -* Create a topic branch from where you want to base your work. - * This is usually the master branch. - * Only target release branches if you are certain your fix must be on that - branch. - * To quickly create a topic branch based on master; `git branch - fix/master/my_contribution master` then checkout the new branch with `git - checkout fix/master/my_contribution`. Please avoid working directly on the - `master` branch. -* Make commits of logical units. -* Check for unnecessary whitespace with `git diff --check` before committing. -* Make sure your commit messages are in the proper format. - -```` - (#99999) Make the example in CONTRIBUTING imperative and concrete - - Without this patch applied the example commit message in the CONTRIBUTING - document is not a concrete example. This is a problem because the - contributor is left to imagine what the commit message should look like - based on a description rather than an example. This patch fixes the - problem by making the example concrete and imperative. - - The first line is a real life imperative statement with a ticket number - from our issue tracker. The body describes the behavior without the patch, - why this is a problem, and how the patch fixes the problem when applied. -```` - -* Make sure you have added the necessary tests for your changes. -* Run _all_ the tests to assure nothing else was accidentally broken. - -## Submitting Changes - -* Sign the [Contributor License Agreement](http://links.puppetlabs.com/cla). -* Push your changes to a topic branch in your fork of the repository. -* Submit a pull request to the repository in the puppetlabs organization. -* Update your ticket to mark that you have submitted code and are ready for it to be reviewed. - * Include a link to the pull request in the ticket - -# Additional Resources - -* [More information on contributing](http://links.puppetlabs.com/contribute-to-puppet) -* [Bug tracker (Jira)](http://tickets.puppetlabs.com) -* [Contributor License Agreement](http://links.puppetlabs.com/cla) -* [General GitHub documentation](http://help.github.com/) -* [GitHub pull request documentation](http://help.github.com/send-pull-requests/) -* #puppet-dev IRC channel on freenode.org diff --git a/modules/stdlib/Gemfile b/modules/stdlib/Gemfile deleted file mode 100644 index bbef720..0000000 --- a/modules/stdlib/Gemfile +++ /dev/null @@ -1,33 +0,0 @@ -source ENV['GEM_SOURCE'] || 'https://rubygems.org' - -def location_for(place, fake_version = nil) - if place =~ /^(git[:@][^#]*)#(.*)/ - [fake_version, { :git => $1, :branch => $2, :require => false }].compact - elsif place =~ /^file:\/\/(.*)/ - ['>= 0', { :path => File.expand_path($1), :require => false }] - else - [place, { :require => false }] - end -end - -group :development, :test do - gem 'rake', '~> 10.1.0', :require => false - gem 'rspec-puppet', :require => false - gem 'puppetlabs_spec_helper', :require => false - gem 'serverspec', :require => false - gem 'puppet-lint', :require => false - gem 'pry', :require => false - gem 'simplecov', :require => false - gem 'beaker', :require => false - gem 'beaker-rspec', :require => false -end - -ENV['GEM_PUPPET_VERSION'] ||= ENV['PUPPET_GEM_VERSION'] -puppetversion = ENV['GEM_PUPPET_VERSION'] -if puppetversion - gem 'puppet', *location_for(puppetversion) -else - gem 'puppet', :require => false -end - -# vim:ft=ruby diff --git a/modules/stdlib/Gemfile.lock b/modules/stdlib/Gemfile.lock deleted file mode 100644 index 402a3ea..0000000 --- a/modules/stdlib/Gemfile.lock +++ /dev/null @@ -1,166 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (2.2.8) - addressable (2.3.6) - archive-tar-minitar (0.5.2) - autoparse (0.3.3) - addressable (>= 2.3.1) - extlib (>= 0.9.15) - multi_json (>= 1.0.0) - aws-sdk (1.42.0) - json (~> 1.4) - nokogiri (>= 1.4.4) - beaker (1.12.1) - aws-sdk (~> 1.38) - blimpy (~> 0.6) - docker-api - fission (~> 0.4) - google-api-client (~> 0.7.1) - inifile (~> 2.0) - json (~> 1.8) - mime-types (~> 1.25) - net-scp (~> 1.1) - net-ssh (~> 2.6) - nokogiri (= 1.5.10) - rbvmomi (= 1.8.1) - unf (~> 0.1) - beaker-rspec (2.2.4) - beaker (~> 1.10) - rspec (~> 2.14) - serverspec (~> 1.0) - specinfra (~> 1.0) - blimpy (0.6.7) - fog - minitar - thor - builder (3.2.2) - coderay (1.1.0) - diff-lcs (1.2.5) - docile (1.1.3) - docker-api (1.11.0) - archive-tar-minitar - excon (>= 0.34.0) - json - excon (0.34.0) - extlib (0.9.16) - facter (2.0.1) - CFPropertyList (~> 2.2.6) - faraday (0.9.0) - multipart-post (>= 1.2, < 3) - fission (0.5.0) - CFPropertyList (~> 2.2) - fog (1.11.1) - builder - excon (~> 0.20) - formatador (~> 0.2.0) - json (~> 1.7) - mime-types - net-scp (~> 1.1) - net-ssh (>= 2.1.3) - nokogiri (~> 1.5.0) - ruby-hmac - formatador (0.2.5) - google-api-client (0.7.1) - addressable (>= 2.3.2) - autoparse (>= 0.3.3) - extlib (>= 0.9.15) - faraday (>= 0.9.0) - jwt (>= 0.1.5) - launchy (>= 2.1.1) - multi_json (>= 1.0.0) - retriable (>= 1.4) - signet (>= 0.5.0) - uuidtools (>= 2.1.0) - hiera (1.3.3) - json_pure - highline (1.6.21) - inifile (2.0.2) - json (1.8.1) - json_pure (1.8.1) - jwt (1.0.0) - launchy (2.4.2) - addressable (~> 2.3) - metaclass (0.0.4) - method_source (0.8.2) - mime-types (1.25.1) - minitar (0.5.4) - mocha (1.1.0) - metaclass (~> 0.0.1) - multi_json (1.10.1) - multipart-post (2.0.0) - net-scp (1.2.1) - net-ssh (>= 2.6.5) - net-ssh (2.9.1) - nokogiri (1.5.10) - pry (0.9.12.6) - coderay (~> 1.0) - method_source (~> 0.8) - slop (~> 3.4) - puppet (3.6.1) - facter (> 1.6, < 3) - hiera (~> 1.0) - json_pure - rgen (~> 0.6.5) - puppet-lint (0.3.2) - puppetlabs_spec_helper (0.4.1) - mocha (>= 0.10.5) - rake - rspec (>= 2.9.0) - rspec-puppet (>= 0.1.1) - rake (10.1.1) - rbvmomi (1.8.1) - builder - nokogiri (>= 1.4.1) - trollop - retriable (1.4.1) - rgen (0.6.6) - rspec (2.99.0) - rspec-core (~> 2.99.0) - rspec-expectations (~> 2.99.0) - rspec-mocks (~> 2.99.0) - rspec-core (2.99.0) - rspec-expectations (2.99.0) - diff-lcs (>= 1.1.3, < 2.0) - rspec-mocks (2.99.0) - rspec-puppet (1.0.1) - rspec - ruby-hmac (0.4.0) - serverspec (1.7.0) - highline - net-ssh - rspec (~> 2.13) - specinfra (~> 1.13) - signet (0.5.0) - addressable (>= 2.2.3) - faraday (>= 0.9.0.rc5) - jwt (>= 0.1.5) - multi_json (>= 1.0.0) - simplecov (0.8.2) - docile (~> 1.1.0) - multi_json - simplecov-html (~> 0.8.0) - simplecov-html (0.8.0) - slop (3.5.0) - specinfra (1.15.0) - thor (0.19.1) - trollop (2.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.6) - uuidtools (2.1.4) - -PLATFORMS - ruby - -DEPENDENCIES - beaker - beaker-rspec (= 2.2.4) - pry - puppet - puppet-lint - puppetlabs_spec_helper - rake (~> 10.1.0) - rspec-puppet - serverspec - simplecov diff --git a/modules/stdlib/LICENSE b/modules/stdlib/LICENSE deleted file mode 100644 index ec0587c..0000000 --- a/modules/stdlib/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2011 Puppet Labs Inc - -and some parts: - -Copyright (C) 2011 Krzysztof Wilczynski - -Puppet Labs can be contacted at: info@puppetlabs.com - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/modules/stdlib/Modulefile b/modules/stdlib/Modulefile deleted file mode 100644 index bf80e3b..0000000 --- a/modules/stdlib/Modulefile +++ /dev/null @@ -1,11 +0,0 @@ -name 'puppetlabs-stdlib' -version '4.2.2' -source 'git://github.com/puppetlabs/puppetlabs-stdlib.git' -author 'puppetlabs' -license 'Apache 2.0' -summary 'Puppet Module Standard Library' -description 'Standard Library for Puppet Modules' -project_page 'https://github.com/puppetlabs/puppetlabs-stdlib' - -## Add dependencies, if any: -# dependency 'username/name', '>= 1.2.0' diff --git a/modules/stdlib/README.markdown b/modules/stdlib/README.markdown deleted file mode 100644 index e9ad53b..0000000 --- a/modules/stdlib/README.markdown +++ /dev/null @@ -1,1304 +0,0 @@ -# Puppet Labs Standard Library # - -[![Build Status](https://travis-ci.org/puppetlabs/puppetlabs-stdlib.png?branch=master)](https://travis-ci.org/puppetlabs/puppetlabs-stdlib) - -This module provides a "standard library" of resources for developing Puppet -Modules. This modules will include the following additions to Puppet - - * Stages - * Facts - * Functions - * Defined resource types - * Types - * Providers - -This module is officially curated and provided by Puppet Labs. The modules -Puppet Labs writes and distributes will make heavy use of this standard -library. - -To report or research a bug with any part of this module, please go to -[http://tickets.puppetlabs.com/browse/PUP](http://tickets.puppetlabs.com/browse/PUP) - -# Versions # - -This module follows semver.org (v1.0.0) versioning guidelines. The standard -library module is released as part of [Puppet -Enterprise](http://puppetlabs.com/puppet/puppet-enterprise/) and as a result -older versions of Puppet Enterprise that Puppet Labs still supports will have -bugfix maintenance branches periodically "merged up" into master. The current -list of integration branches are: - - * v2.1.x (v2.1.1 released in PE 1) - * v2.2.x (Never released as part of PE, only to the Forge) - * v2.3.x (Released in PE 2) - * v3.0.x (Released in PE 3) - * v4.0.x (Maintains compatibility with v3.x despite the major semantic version bump. Compatible with Puppet 2.7.x) - * v5.x (To be released when stdlib can drop support for Puppet 2.7.x. Please see [this discussion](https://github.com/puppetlabs/puppetlabs-stdlib/pull/176#issuecomment-30251414)) - * master (mainline development branch) - -The first Puppet Enterprise version including the stdlib module is Puppet -Enterprise 1.2. - -# Compatibility # - -Puppet Versions | < 2.6 | 2.6 | 2.7 | 3.x | -:---------------|:-----:|:---:|:---:|:----: -**stdlib 2.x** | no | **yes** | **yes** | no -**stdlib 3.x** | no | no | **yes** | **yes** -**stdlib 4.x** | no | no | **yes** | **yes** - -The stdlib module does not work with Puppet versions released prior to Puppet -2.6.0. - -## stdlib 2.x ## - -All stdlib releases in the 2.0 major version support Puppet 2.6 and Puppet 2.7. - -## stdlib 3.x ## - -The 3.0 major release of stdlib drops support for Puppet 2.6. Stdlib 3.x -supports Puppet 2 and Puppet 3. - -## stdlib 4.x ## - -The 4.0 major release of stdlib was intended to drop support for Puppet 2.7, -but the impact on end users was too high. The decision was made to treat -stdlib 4.x as a continuation of stdlib 3.x support. Stdlib 4.x supports Puppet -2.7 and 3. Notably, ruby 1.8.5 is no longer supported though ruby -1.8.7, 1.9.3, and 2.0.0 are fully supported. - -# Functions # - -abs ---- -Returns the absolute value of a number, for example -34.56 becomes -34.56. Takes a single integer and float value as an argument. - - -- *Type*: rvalue - -any2array ---------- -This converts any object to an array containing that object. Empty argument -lists are converted to an empty array. Arrays are left untouched. Hashes are -converted to arrays of alternating keys and values. - - -- *Type*: rvalue - -base64 --------- -Converts a string to and from base64 encoding. -Requires an action ['encode','decode'] and either a plain or base64 encoded -string - - -- *Type*: rvalue - -bool2num --------- -Converts a boolean to a number. Converts the values: -false, f, 0, n, and no to 0 -true, t, 1, y, and yes to 1 - Requires a single boolean or string as an input. - - -- *Type*: rvalue - -capitalize ----------- -Capitalizes the first letter of a string or array of strings. -Requires either a single string or an array as an input. - - -- *Type*: rvalue - -chomp ------ -Removes the record separator from the end of a string or an array of -strings, for example `hello\n` becomes `hello`. -Requires a single string or array as an input. - - -- *Type*: rvalue - -chop ----- -Returns a new string with the last character removed. If the string ends -with `\r\n`, both characters are removed. Applying chop to an empty -string returns an empty string. If you wish to merely remove record -separators then you should use the `chomp` function. -Requires a string or array of strings as input. - - -- *Type*: rvalue - -concat ------- -Appends the contents of array 2 onto array 1. - -*Example:* - - concat(['1','2','3'],['4','5','6']) - -Would result in: - - ['1','2','3','4','5','6'] - - concat(['1','2','3'],'4') - -Would result in: - - ['1','2','3','4'] - -- *Type*: rvalue - -count ------ -Takes an array as first argument and an optional second argument. -Count the number of elements in array that matches second argument. -If called with only an array it counts the number of elements that are not nil/undef. - - -- *Type*: rvalue - -defined_with_params -------------------- -Takes a resource reference and an optional hash of attributes. - -Returns true if a resource with the specified attributes has already been added -to the catalog, and false otherwise. - - user { 'dan': - ensure => present, - } - - if ! defined_with_params(User[dan], {'ensure' => 'present' }) { - user { 'dan': ensure => present, } - } - - -- *Type*: rvalue - -delete ------- -Deletes all instances of a given element from an array, substring from a -string, or key from a hash. - -*Examples:* - - delete(['a','b','c','b'], 'b') - Would return: ['a','c'] - - delete({'a'=>1,'b'=>2,'c'=>3}, 'b') - Would return: {'a'=>1,'c'=>3} - - delete('abracadabra', 'bra') - Would return: 'acada' - - -- *Type*: rvalue - -delete_at ---------- -Deletes a determined indexed value from an array. - -*Examples:* - - delete_at(['a','b','c'], 1) - -Would return: ['a','c'] - - -- *Type*: rvalue - -delete_values -------------- -Deletes all instances of a given value from a hash. - -*Examples:* - - delete_values({'a'=>'A','b'=>'B','c'=>'C','B'=>'D'}, 'B') - -Would return: {'a'=>'A','c'=>'C','B'=>'D'} - - -- *Type*: rvalue - -delete_undef_values -------------------- -Deletes all instances of the undef value from an array or hash. - -*Examples:* - - $hash = delete_undef_values({a=>'A', b=>'', c=>undef, d => false}) - -Would return: {a => 'A', b => '', d => false} - - $array = delete_undef_values(['A','',undef,false]) - -Would return: ['A','',false] - -- *Type*: rvalue - -difference ----------- -This function returns the difference between two arrays. -The returned array is a copy of the original array, removing any items that -also appear in the second array. - -*Examples:* - - difference(["a","b","c"],["b","c","d"]) - -Would return: ["a"] - -dirname -------- -Returns the `dirname` of a path. - -*Examples:* - - dirname('/path/to/a/file.ext') - -Would return: '/path/to/a' - -downcase --------- -Converts the case of a string or all strings in an array to lower case. - - -- *Type*: rvalue - -empty ------ -Returns true if the variable is empty. - - -- *Type*: rvalue - -ensure_packages ---------------- -Takes a list of packages and only installs them if they don't already exist. -It optionally takes a hash as a second parameter that will be passed as the -third argument to the ensure_resource() function. - - -- *Type*: statement - -ensure_resource ---------------- -Takes a resource type, title, and a list of attributes that describe a -resource. - - user { 'dan': - ensure => present, - } - -This example only creates the resource if it does not already exist: - - ensure_resource('user', 'dan', {'ensure' => 'present' }) - -If the resource already exists but does not match the specified parameters, -this function will attempt to recreate the resource leading to a duplicate -resource definition error. - -An array of resources can also be passed in and each will be created with -the type and parameters specified if it doesn't already exist. - - ensure_resource('user', ['dan','alex'], {'ensure' => 'present'}) - - - -- *Type*: statement - -file_line ---------- -This resource ensures that a given line is contained within a file. You can also use -"match" to replace existing lines. - -*Examples:* - - file_line { 'sudo_rule': - path => '/etc/sudoers', - line => '%sudo ALL=(ALL) ALL', - } - - file_line { 'change_mount': - path => '/etc/fstab', - line => '10.0.0.1:/vol/data /opt/data nfs defaults 0 0', - match => '^172.16.17.2:/vol/old', - } - -- *Type*: resource - -flatten -------- -This function flattens any deeply nested arrays and returns a single flat array -as a result. - -*Examples:* - - flatten(['a', ['b', ['c']]]) - -Would return: ['a','b','c'] - - -- *Type*: rvalue - -floor ------ -Returns the largest integer less or equal to the argument. -Takes a single numeric value as an argument. - - -- *Type*: rvalue - -fqdn_rotate ------------ -Rotates an array a random number of times based on a nodes fqdn. - - -- *Type*: rvalue - -get_module_path ---------------- -Returns the absolute path of the specified module for the current -environment. - -Example: - $module_path = get_module_path('stdlib') - - -- *Type*: rvalue - -getparam --------- -Takes a resource reference and name of the parameter and -returns value of resource's parameter. - -*Examples:* - - define example_resource($param) { - } - - example_resource { "example_resource_instance": - param => "param_value" - } - - getparam(Example_resource["example_resource_instance"], "param") - -Would return: param_value - - -- *Type*: rvalue - -getvar ------- -Lookup a variable in a remote namespace. - -For example: - - $foo = getvar('site::data::foo') - # Equivalent to $foo = $site::data::foo - -This is useful if the namespace itself is stored in a string: - - $datalocation = 'site::data' - $bar = getvar("${datalocation}::bar") - # Equivalent to $bar = $site::data::bar - - -- *Type*: rvalue - -grep ----- -This function searches through an array and returns any elements that match -the provided regular expression. - -*Examples:* - - grep(['aaa','bbb','ccc','aaaddd'], 'aaa') - -Would return: - - ['aaa','aaaddd'] - - -- *Type*: rvalue - -has_interface_with ------------------- -Returns boolean based on kind and value: -* macaddress -* netmask -* ipaddress -* network - -*Examples:* - - has_interface_with("macaddress", "x:x:x:x:x:x") - has_interface_with("ipaddress", "127.0.0.1") => true - -etc. - -If no "kind" is given, then the presence of the interface is checked: - - has_interface_with("lo") => true - - -- *Type*: rvalue - -has_ip_address --------------- -Returns true if the client has the requested IP address on some interface. - -This function iterates through the 'interfaces' fact and checks the -'ipaddress_IFACE' facts, performing a simple string comparison. - - -- *Type*: rvalue - -has_ip_network --------------- -Returns true if the client has an IP address within the requested network. - -This function iterates through the 'interfaces' fact and checks the -'network_IFACE' facts, performing a simple string comparision. - - -- *Type*: rvalue - -has_key -------- -Determine if a hash has a certain key value. - -Example: - - $my_hash = {'key_one' => 'value_one'} - if has_key($my_hash, 'key_two') { - notice('we will not reach here') - } - if has_key($my_hash, 'key_one') { - notice('this will be printed') - } - - - -- *Type*: rvalue - -hash ----- -This function converts an array into a hash. - -*Examples:* - - hash(['a',1,'b',2,'c',3]) - -Would return: {'a'=>1,'b'=>2,'c'=>3} - - -- *Type*: rvalue - -intersection ------------ -This function returns an array an intersection of two. - -*Examples:* - - intersection(["a","b","c"],["b","c","d"]) - -Would return: ["b","c"] - -is_array --------- -Returns true if the variable passed to this function is an array. - -- *Type*: rvalue - -is_bool --------- -Returns true if the variable passed to this function is a boolean. - -- *Type*: rvalue - -is_domain_name --------------- -Returns true if the string passed to this function is a syntactically correct domain name. - -- *Type*: rvalue - -is_float --------- -Returns true if the variable passed to this function is a float. - -- *Type*: rvalue - -is_function_available ---------------------- -This function accepts a string as an argument, determines whether the -Puppet runtime has access to a function by that name. It returns a -true if the function exists, false if not. - -- *Type*: rvalue - -is_hash -------- -Returns true if the variable passed to this function is a hash. - -- *Type*: rvalue - -is_integer ----------- -Returns true if the variable returned to this string is an integer. - -- *Type*: rvalue - -is_ip_address -------------- -Returns true if the string passed to this function is a valid IP address. - -- *Type*: rvalue - -is_mac_address --------------- -Returns true if the string passed to this function is a valid mac address. - -- *Type*: rvalue - -is_numeric ----------- -Returns true if the variable passed to this function is a number. - -- *Type*: rvalue - -is_string ---------- -Returns true if the variable passed to this function is a string. - -- *Type*: rvalue - -join ----- -This function joins an array into a string using a separator. - -*Examples:* - - join(['a','b','c'], ",") - -Would result in: "a,b,c" - -- *Type*: rvalue - -join_keys_to_values -------------------- -This function joins each key of a hash to that key's corresponding value with a -separator. Keys and values are cast to strings. The return value is an array in -which each element is one joined key/value pair. - -*Examples:* - - join_keys_to_values({'a'=>1,'b'=>2}, " is ") - -Would result in: ["a is 1","b is 2"] - -- *Type*: rvalue - -keys ----- -Returns the keys of a hash as an array. - -- *Type*: rvalue - -loadyaml --------- -Load a YAML file containing an array, string, or hash, and return the data -in the corresponding native data type. - -For example: - - $myhash = loadyaml('/etc/puppet/data/myhash.yaml') - - -- *Type*: rvalue - -lstrip ------- -Strips leading spaces to the left of a string. - -- *Type*: rvalue - -max ---- -Returns the highest value of all arguments. -Requires at least one argument. - -- *Type*: rvalue - -member ------- -This function determines if a variable is a member of an array. - -*Examples:* - - member(['a','b'], 'b') - -Would return: true - - member(['a','b'], 'c') - -Would return: false - -- *Type*: rvalue - -merge ------ -Merges two or more hashes together and returns the resulting hash. - -For example: - - $hash1 = {'one' => 1, 'two' => 2} - $hash2 = {'two' => 'dos', 'three' => 'tres'} - $merged_hash = merge($hash1, $hash2) - # The resulting hash is equivalent to: - # $merged_hash = {'one' => 1, 'two' => 'dos', 'three' => 'tres'} - -When there is a duplicate key, the key in the rightmost hash will "win." - -- *Type*: rvalue - -min ---- -Returns the lowest value of all arguments. -Requires at least one argument. - -- *Type*: rvalue - -num2bool --------- -This function converts a number or a string representation of a number into a -true boolean. Zero or anything non-numeric becomes false. Numbers higher then 0 -become true. - -- *Type*: rvalue - -parsejson ---------- -This function accepts JSON as a string and converts into the correct Puppet -structure. - -- *Type*: rvalue - -parseyaml ---------- -This function accepts YAML as a string and converts it into the correct -Puppet structure. - -- *Type*: rvalue - -pick ----- -This function is similar to a coalesce function in SQL in that it will return -the first value in a list of values that is not undefined or an empty string -(two things in Puppet that will return a boolean false value). Typically, -this function is used to check for a value in the Puppet Dashboard/Enterprise -Console, and failover to a default value like the following: - - $real_jenkins_version = pick($::jenkins_version, '1.449') - -The value of $real_jenkins_version will first look for a top-scope variable -called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ -Enterprise Console are brought into Puppet as top-scope variables), and, -failing that, will use a default value of 1.449. - -- *Type*: rvalue - -prefix ------- -This function applies a prefix to all elements in an array. - -*Examples:* - - prefix(['a','b','c'], 'p') - -Will return: ['pa','pb','pc'] - -- *Type*: rvalue - -range ------ -When given range in the form of (start, stop) it will extrapolate a range as -an array. - -*Examples:* - - range("0", "9") - -Will return: [0,1,2,3,4,5,6,7,8,9] - - range("00", "09") - -Will return: [0,1,2,3,4,5,6,7,8,9] - Zero padded strings are converted to -integers automatically - - range("a", "c") - -Will return: ["a","b","c"] - - range("host01", "host10") - -Will return: ["host01", "host02", ..., "host09", "host10"] - -- *Type*: rvalue - -reject ------- -This function searches through an array and rejects all elements that match -the provided regular expression. - -*Examples:* - - reject(['aaa','bbb','ccc','aaaddd'], 'aaa') - -Would return: - - ['bbb','ccc'] - - -- *Type*: rvalue - -reverse -------- -Reverses the order of a string or array. - -- *Type*: rvalue - -rstrip ------- -Strips leading spaces to the right of the string. - -- *Type*: rvalue - -shuffle -------- -Randomizes the order of a string or array elements. - -- *Type*: rvalue - -size ----- -Returns the number of elements in a string or array. - -- *Type*: rvalue - -sort ----- -Sorts strings and arrays lexically. - -- *Type*: rvalue - -squeeze -------- -Returns a new string where runs of the same character that occur in this set -are replaced by a single character. - -- *Type*: rvalue - -str2bool --------- -This converts a string to a boolean. This attempts to convert strings that -contain things like: y, 1, t, true to 'true' and strings that contain things -like: 0, f, n, false, no to 'false'. - - -- *Type*: rvalue - -str2saltedsha512 ----------------- -This converts a string to a salted-SHA512 password hash (which is used for -OS X versions >= 10.7). Given any simple string, you will get a hex version -of a salted-SHA512 password hash that can be inserted into your Puppet -manifests as a valid password attribute. - - -- *Type*: rvalue - -strftime --------- -This function returns formatted time. - -*Examples:* - -To return the time since epoch: - - strftime("%s") - -To return the date: - - strftime("%Y-%m-%d") - -*Format meaning:* - - %a - The abbreviated weekday name (``Sun'') - %A - The full weekday name (``Sunday'') - %b - The abbreviated month name (``Jan'') - %B - The full month name (``January'') - %c - The preferred local date and time representation - %C - Century (20 in 2009) - %d - Day of the month (01..31) - %D - Date (%m/%d/%y) - %e - Day of the month, blank-padded ( 1..31) - %F - Equivalent to %Y-%m-%d (the ISO 8601 date format) - %h - Equivalent to %b - %H - Hour of the day, 24-hour clock (00..23) - %I - Hour of the day, 12-hour clock (01..12) - %j - Day of the year (001..366) - %k - hour, 24-hour clock, blank-padded ( 0..23) - %l - hour, 12-hour clock, blank-padded ( 0..12) - %L - Millisecond of the second (000..999) - %m - Month of the year (01..12) - %M - Minute of the hour (00..59) - %n - Newline (\n) - %N - Fractional seconds digits, default is 9 digits (nanosecond) - %3N millisecond (3 digits) - %6N microsecond (6 digits) - %9N nanosecond (9 digits) - %p - Meridian indicator (``AM'' or ``PM'') - %P - Meridian indicator (``am'' or ``pm'') - %r - time, 12-hour (same as %I:%M:%S %p) - %R - time, 24-hour (%H:%M) - %s - Number of seconds since 1970-01-01 00:00:00 UTC. - %S - Second of the minute (00..60) - %t - Tab character ( ) - %T - time, 24-hour (%H:%M:%S) - %u - Day of the week as a decimal, Monday being 1. (1..7) - %U - Week number of the current year, - starting with the first Sunday as the first - day of the first week (00..53) - %v - VMS date (%e-%b-%Y) - %V - Week number of year according to ISO 8601 (01..53) - %W - Week number of the current year, - starting with the first Monday as the first - day of the first week (00..53) - %w - Day of the week (Sunday is 0, 0..6) - %x - Preferred representation for the date alone, no time - %X - Preferred representation for the time alone, no date - %y - Year without a century (00..99) - %Y - Year with century - %z - Time zone as hour offset from UTC (e.g. +0900) - %Z - Time zone name - %% - Literal ``%'' character - - -- *Type*: rvalue - -strip ------ -This function removes leading and trailing whitespace from a string or from -every string inside an array. - -*Examples:* - - strip(" aaa ") - -Would result in: "aaa" - - -- *Type*: rvalue - -suffix ------- -This function applies a suffix to all elements in an array. - -*Examples:* - - suffix(['a','b','c'], 'p') - -Will return: ['ap','bp','cp'] - - -- *Type*: rvalue - -swapcase --------- -This function will swap the existing case of a string. - -*Examples:* - - swapcase("aBcD") - -Would result in: "AbCd" - - -- *Type*: rvalue - -time ----- -This function will return the current time since epoch as an integer. - -*Examples:* - - time() - -Will return something like: 1311972653 - - -- *Type*: rvalue - -to_bytes --------- -Converts the argument into bytes, for example 4 kB becomes 4096. -Takes a single string value as an argument. - - -- *Type*: rvalue - -type ----- -Returns the type when passed a variable. Type can be one of: - -* string -* array -* hash -* float -* integer -* boolean - - -- *Type*: rvalue - -union ------ -This function returns a union of two arrays. - -*Examples:* - - union(["a","b","c"],["b","c","d"]) - -Would return: ["a","b","c","d"] - - -unique ------- -This function will remove duplicates from strings and arrays. - -*Examples:* - - unique("aabbcc") - -Will return: - - abc - -You can also use this with arrays: - - unique(["a","a","b","b","c","c"]) - -This returns: - - ["a","b","c"] - - -- *Type*: rvalue - -upcase ------- -Converts a string or an array of strings to uppercase. - -*Examples:* - - upcase("abcd") - -Will return: - - ABCD - - -- *Type*: rvalue - -uriescape ---------- -Urlencodes a string or array of strings. -Requires either a single string or an array as an input. - - -- *Type*: rvalue - -validate_absolute_path ----------------------- -Validate the string represents an absolute path in the filesystem. This function works -for windows and unix style paths. - -The following values will pass: - - $my_path = "C:/Program Files (x86)/Puppet Labs/Puppet" - validate_absolute_path($my_path) - $my_path2 = "/var/lib/puppet" - validate_absolute_path($my_path2) - - -The following values will fail, causing compilation to abort: - - validate_absolute_path(true) - validate_absolute_path([ 'var/lib/puppet', '/var/foo' ]) - validate_absolute_path([ '/var/lib/puppet', 'var/foo' ]) - $undefined = undef - validate_absolute_path($undefined) - - - -- *Type*: statement - -validate_array --------------- -Validate that all passed values are array data structures. Abort catalog -compilation if any value fails this check. - -The following values will pass: - - $my_array = [ 'one', 'two' ] - validate_array($my_array) - -The following values will fail, causing compilation to abort: - - validate_array(true) - validate_array('some_string') - $undefined = undef - validate_array($undefined) - - - -- *Type*: statement - -validate_augeas ---------------- -Perform validation of a string using an Augeas lens -The first argument of this function should be a string to -test, and the second argument should be the name of the Augeas lens to use. -If Augeas fails to parse the string with the lens, the compilation will -abort with a parse error. - -A third argument can be specified, listing paths which should -not be found in the file. The `$file` variable points to the location -of the temporary file being tested in the Augeas tree. - -For example, if you want to make sure your passwd content never contains -a user `foo`, you could write: - - validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo']) - -Or if you wanted to ensure that no users used the '/bin/barsh' shell, -you could use: - - validate_augeas($passwdcontent, 'Passwd.lns', ['$file/*[shell="/bin/barsh"]'] - -If a fourth argument is specified, this will be the error message raised and -seen by the user. - -A helpful error message can be returned like this: - - validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas') - - - -- *Type*: statement - -validate_bool -------------- -Validate that all passed values are either true or false. Abort catalog -compilation if any value fails this check. - -The following values will pass: - - $iamtrue = true - validate_bool(true) - validate_bool(true, true, false, $iamtrue) - -The following values will fail, causing compilation to abort: - - $some_array = [ true ] - validate_bool("false") - validate_bool("true") - validate_bool($some_array) - - - -- *Type*: statement - -validate_cmd ------------- -Perform validation of a string with an external command. -The first argument of this function should be a string to -test, and the second argument should be a path to a test command -taking a file as last argument. If the command, launched against -a tempfile containing the passed string, returns a non-null value, -compilation will abort with a parse error. - -If a third argument is specified, this will be the error message raised and -seen by the user. - -A helpful error message can be returned like this: - -Example: - - validate_cmd($sudoerscontent, '/usr/sbin/visudo -c -f', 'Visudo failed to validate sudoers content') - - - -- *Type*: statement - -validate_hash -------------- -Validate that all passed values are hash data structures. Abort catalog -compilation if any value fails this check. - -The following values will pass: - - $my_hash = { 'one' => 'two' } - validate_hash($my_hash) - -The following values will fail, causing compilation to abort: - - validate_hash(true) - validate_hash('some_string') - $undefined = undef - validate_hash($undefined) - - - -- *Type*: statement - -validate_re ------------ -Perform simple validation of a string against one or more regular -expressions. The first argument of this function should be a string to -test, and the second argument should be a stringified regular expression -(without the // delimiters) or an array of regular expressions. If none -of the regular expressions match the string passed in, compilation will -abort with a parse error. - -If a third argument is specified, this will be the error message raised and -seen by the user. - -The following strings will validate against the regular expressions: - - validate_re('one', '^one$') - validate_re('one', [ '^one', '^two' ]) - -The following strings will fail to validate, causing compilation to abort: - - validate_re('one', [ '^two', '^three' ]) - -A helpful error message can be returned like this: - - validate_re($::puppetversion, '^2.7', 'The $puppetversion fact value does not match 2.7') - - - -- *Type*: statement - -validate_slength ----------------- -Validate that the first argument is a string (or an array of strings), and -less/equal to than the length of the second argument. It fails if the first -argument is not a string or array of strings, and if arg 2 is not convertable -to a number. - -The following values will pass: - - validate_slength("discombobulate",17) - validate_slength(["discombobulate","moo"],17) - -The following values will not: - - validate_slength("discombobulate",1) - validate_slength(["discombobulate","thermometer"],5) - - - -- *Type*: statement - -validate_string ---------------- -Validate that all passed values are string data structures. Abort catalog -compilation if any value fails this check. - -The following values will pass: - - $my_string = "one two" - validate_string($my_string, 'three') - -The following values will fail, causing compilation to abort: - - validate_string(true) - validate_string([ 'some', 'array' ]) - $undefined = undef - validate_string($undefined) - - -- *Type*: statement - -values ------- -When given a hash this function will return the values of that hash. - -*Examples:* - - $hash = { - 'a' => 1, - 'b' => 2, - 'c' => 3, - } - values($hash) - -This example would return: - - [1,2,3] - - -- *Type*: rvalue - -values_at ---------- -Finds value inside an array based on location. - -The first argument is the array you want to analyze, and the second element can -be a combination of: - -* A single numeric index -* A range in the form of 'start-stop' (eg. 4-9) -* An array combining the above - -*Examples*: - - values_at(['a','b','c'], 2) - -Would return ['c']. - - values_at(['a','b','c'], ["0-1"]) - -Would return ['a','b']. - - values_at(['a','b','c','d','e'], [0, "2-3"]) - -Would return ['a','c','d']. - - -- *Type*: rvalue - -zip ---- -Takes one element from first array and merges corresponding elements from second array. This generates a sequence of n-element arrays, where n is one more than the count of arguments. - -*Example:* - - zip(['1','2','3'],['4','5','6']) - -Would result in: - - ["1", "4"], ["2", "5"], ["3", "6"] - - -- *Type*: rvalue - -*This page autogenerated on 2013-04-11 13:54:25 -0700* diff --git a/modules/stdlib/README_DEVELOPER.markdown b/modules/stdlib/README_DEVELOPER.markdown deleted file mode 100644 index 04349ed..0000000 --- a/modules/stdlib/README_DEVELOPER.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Puppet Specific Facts -===================== - -Facter is meant to stand alone and apart from Puppet. However, Facter often -runs inside Puppet and all custom facts included in the stdlib module will -almost always be evaluated in the context of Puppet and Facter working -together. - -Still, we don't want to write custom facts that blow up in the users face if -Puppet is not loaded in memory. This is often the case if the user runs -`facter` without also supplying the `--puppet` flag. - -Ah! But Jeff, the custom fact won't be in the `$LOAD_PATH` unless the user -supplies `--facter`! You might say... - -Not (always) true I say! If the user happens to have a CWD of -`/stdlib/lib` then the facts will automatically be evaluated and -blow up. - -In any event, it's pretty easy to write a fact that has no value if Puppet is -not loaded. Simply do it like this: - - Facter.add(:node_vardir) do - setcode do - # This will be nil if Puppet is not available. - Facter::Util::PuppetSettings.with_puppet do - Puppet[:vardir] - end - end - end - -The `Facter::Util::PuppetSettings.with_puppet` method accepts a block and -yields to it only if the Puppet library is loaded. If the Puppet library is -not loaded, then the method silently returns `nil` which Facter interprets as -an undefined fact value. The net effect is that the fact won't be set. diff --git a/modules/stdlib/README_SPECS.markdown b/modules/stdlib/README_SPECS.markdown deleted file mode 100644 index 917b631..0000000 --- a/modules/stdlib/README_SPECS.markdown +++ /dev/null @@ -1,7 +0,0 @@ -NOTE -==== - -This project's specs depend on puppet core, and thus they require the -`puppetlabs_spec_helper` project. For more information please see the README -in that project, which can be found here: [puppetlabs spec -helper](https://github.com/puppetlabs/puppetlabs_spec_helper) diff --git a/modules/stdlib/RELEASE_PROCESS.markdown b/modules/stdlib/RELEASE_PROCESS.markdown deleted file mode 100644 index 0f9328e..0000000 --- a/modules/stdlib/RELEASE_PROCESS.markdown +++ /dev/null @@ -1,24 +0,0 @@ -# Contributing to this module # - - * Work in a topic branch - * Submit a github pull request - * Address any comments / feeback - * Merge into master using --no-ff - -# Releasing this module # - - * This module adheres to http://semver.org/ - * Look for API breaking changes using git diff vX.Y.Z..master - * If no API breaking changes, the minor version may be bumped. - * If there are API breaking changes, the major version must be bumped. - * If there are only small minor changes, the patch version may be bumped. - * Update the CHANGELOG - * Update the Modulefile - * Commit these changes with a message along the lines of "Update CHANGELOG and - Modulefile for release" - * Create an annotated tag with git tag -a vX.Y.Z -m 'version X.Y.Z' (NOTE the - leading v as per semver.org) - * Push the tag with git push origin --tags - * Build a new package with puppet-module or the rake build task if it exists - * Publish the new package to the forge - * Bonus points for an announcement to puppet-users. diff --git a/modules/stdlib/Rakefile b/modules/stdlib/Rakefile deleted file mode 100644 index 4ed1327..0000000 --- a/modules/stdlib/Rakefile +++ /dev/null @@ -1,18 +0,0 @@ -require 'rubygems' -require 'puppetlabs_spec_helper/rake_tasks' -require 'puppet-lint/tasks/puppet-lint' -PuppetLint.configuration.send('disable_80chars') -PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"] - -desc "Validate manifests, templates, and ruby files in lib." -task :validate do - Dir['manifests/**/*.pp'].each do |manifest| - sh "puppet parser validate --noop #{manifest}" - end - Dir['lib/**/*.rb'].each do |lib_file| - sh "ruby -c #{lib_file}" - end - Dir['templates/**/*.erb'].each do |template| - sh "erb -P -x -T '-' #{template} | ruby -c" - end -end diff --git a/modules/stdlib/checksums.json b/modules/stdlib/checksums.json deleted file mode 100644 index a423e04..0000000 --- a/modules/stdlib/checksums.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "CHANGELOG.md": "a3a77d93597fffb4b829b6b56e5d2f16", - "CONTRIBUTING.md": "7fcaaec4913b3d7c123510329ecc4b2d", - "Gemfile": "38895f95212fe38cf47474a05cff2ad2", - "Gemfile.lock": "381b13f5540032a5b9c731766d25c13a", - "LICENSE": "38a048b9d82e713d4e1b2573e370a756", - "Modulefile": "ee2ec9280b87e32529db8b20cf6b1a19", - "README.markdown": "21410cab41d903b5c39c55739846b6b3", - "README_DEVELOPER.markdown": "220a8b28521b5c5d2ea87c4ddb511165", - "README_SPECS.markdown": "82bb4c6abbb711f40778b162ec0070c1", - "RELEASE_PROCESS.markdown": "94b92bc99ac4106ba1a74d5c04e520f9", - "Rakefile": "dfa334598bfd087adf11533a72d71106", - "lib/facter/facter_dot_d.rb": "1f1fcf1bde3443e42a445d3573602304", - "lib/facter/pe_version.rb": "4a9353952963b011759f3e6652a10da5", - "lib/facter/puppet_vardir.rb": "c7ddc97e8a84ded3dd93baa5b9b3283d", - "lib/facter/root_home.rb": "d9c8276acdceb7340d95f60c36dcdcc5", - "lib/facter/util/puppet_settings.rb": "9f1d2593d0ae56bfca89d4b9266aeee1", - "lib/puppet/parser/functions/abs.rb": "32161bd0435fdfc2aec2fc559d2b454b", - "lib/puppet/parser/functions/any2array.rb": "a81e71d6b67a551d38770ba9a1948a75", - "lib/puppet/parser/functions/base64.rb": "ae25adf92295df67ebd9edfabc9ecdd6", - "lib/puppet/parser/functions/bool2num.rb": "8e627eee990e811e35e7e838c586bd77", - "lib/puppet/parser/functions/capitalize.rb": "14481fc8c7c83fe002066ebcf6722f17", - "lib/puppet/parser/functions/chomp.rb": "719d46923d75251f7b6b68b6e015cccc", - "lib/puppet/parser/functions/chop.rb": "4691a56e6064b792ed4575e4ad3f3d20", - "lib/puppet/parser/functions/concat.rb": "c522e67e558336e1ac26b0a3cfeeed2d", - "lib/puppet/parser/functions/count.rb": "9eb74eccd93e2b3c87fd5ea14e329eba", - "lib/puppet/parser/functions/deep_merge.rb": "d83696855578fb81b64b9e92b9c7cc7c", - "lib/puppet/parser/functions/defined_with_params.rb": "ffab4433d03f32b551f2ea024a2948fc", - "lib/puppet/parser/functions/delete.rb": "96e569dac96b8c9387e9303445d73048", - "lib/puppet/parser/functions/delete_at.rb": "6bc24b79390d463d8be95396c963381a", - "lib/puppet/parser/functions/delete_undef_values.rb": "b32d4a3925753b2eb2c318cbd7f14404", - "lib/puppet/parser/functions/delete_values.rb": "39b147f7d369bb5f809044b6341954a2", - "lib/puppet/parser/functions/difference.rb": "e31b95fbaf974cf853a510177368bfb9", - "lib/puppet/parser/functions/dirname.rb": "bef7214eb89db3eb8f7ee5fc9dca0233", - "lib/puppet/parser/functions/downcase.rb": "9204a04c2a168375a38d502db8811bbe", - "lib/puppet/parser/functions/empty.rb": "ae92905c9d94ddca30bf56b7b1dabedf", - "lib/puppet/parser/functions/ensure_packages.rb": "fbed5c0c9bf82b7746e01f15f89d184f", - "lib/puppet/parser/functions/ensure_resource.rb": "6678127386e77bbc0f09db7b5a32ab6a", - "lib/puppet/parser/functions/flatten.rb": "25777b76f9719162a8bab640e5595b7a", - "lib/puppet/parser/functions/floor.rb": "42cad4c689231a51526c55a6f0985d1f", - "lib/puppet/parser/functions/fqdn_rotate.rb": "20743a138c56fc806a35cb7b60137dbc", - "lib/puppet/parser/functions/get_module_path.rb": "d4bf50da25c0b98d26b75354fa1bcc45", - "lib/puppet/parser/functions/getparam.rb": "4dd7a0e35f4a3780dcfc9b19b4e0006e", - "lib/puppet/parser/functions/getvar.rb": "10bf744212947bc6a7bfd2c9836dbd23", - "lib/puppet/parser/functions/grep.rb": "5682995af458b05f3b53dd794c4bf896", - "lib/puppet/parser/functions/has_interface_with.rb": "8d3ebca805dc6edb88b6b7a13d404787", - "lib/puppet/parser/functions/has_ip_address.rb": "ee207f47906455a5aa49c4fb219dd325", - "lib/puppet/parser/functions/has_ip_network.rb": "b4d726c8b2a0afac81ced8a3a28aa731", - "lib/puppet/parser/functions/has_key.rb": "7cd9728c38f0b0065f832dabd62b0e7e", - "lib/puppet/parser/functions/hash.rb": "9d072527dfc7354b69292e9302906530", - "lib/puppet/parser/functions/intersection.rb": "924ac4aceec7b896952166a7ec08fdb1", - "lib/puppet/parser/functions/is_array.rb": "875ca4356cb0d7a10606fb146b4a3d11", - "lib/puppet/parser/functions/is_bool.rb": "e693b7c4b5366cff1380b6e0c7dd7b11", - "lib/puppet/parser/functions/is_domain_name.rb": "cf72726c0fec831eb703ec9deea739eb", - "lib/puppet/parser/functions/is_float.rb": "10e0d3ecf75fac15e415aee79acf70dc", - "lib/puppet/parser/functions/is_function_available.rb": "628428bbcd9313ce09783d9484330e09", - "lib/puppet/parser/functions/is_hash.rb": "8c7d9a05084dab0389d1b779c8a05b1a", - "lib/puppet/parser/functions/is_integer.rb": "c665be82686aa4729959bb42c66a7510", - "lib/puppet/parser/functions/is_ip_address.rb": "a714a736c1560e8739aaacd9030cca00", - "lib/puppet/parser/functions/is_mac_address.rb": "288bd4b38d4df42a83681f13e7eaaee0", - "lib/puppet/parser/functions/is_numeric.rb": "93ddc9d4c0834a5e5e0562d7b3cdce91", - "lib/puppet/parser/functions/is_string.rb": "2bd9a652bbb2668323eee6c57729ff64", - "lib/puppet/parser/functions/join.rb": "a285a05c015ae278608f6454aef211ea", - "lib/puppet/parser/functions/join_keys_to_values.rb": "f29da49531228f6ca5b3aa0df00a14c2", - "lib/puppet/parser/functions/keys.rb": "eb6ac815ea14fbf423580ed903ef7bad", - "lib/puppet/parser/functions/loadyaml.rb": "2b912f257aa078e376d3b3f6a86c2a00", - "lib/puppet/parser/functions/lstrip.rb": "210b103f78622e099f91cc2956b6f741", - "lib/puppet/parser/functions/max.rb": "f652fd0b46ef7d2fbdb42b141f8fdd1d", - "lib/puppet/parser/functions/member.rb": "541e67d06bc4155e79b00843a125e9bc", - "lib/puppet/parser/functions/merge.rb": "f3dcc5c83440cdda2036cce69b61a14b", - "lib/puppet/parser/functions/min.rb": "0d2a1b7e735ab251c5469e735fa3f4c6", - "lib/puppet/parser/functions/num2bool.rb": "605c12fa518c87ed2c66ae153e0686ce", - "lib/puppet/parser/functions/parsejson.rb": "e7f968c34928107b84cd0860daf50ab1", - "lib/puppet/parser/functions/parseyaml.rb": "00f10ec1e2b050e23d80c256061ebdd7", - "lib/puppet/parser/functions/pick.rb": "bf01f13bbfe2318e7f6a302ac7c4433f", - "lib/puppet/parser/functions/pick_default.rb": "ad3ea60262de408767786d37a54d45dc", - "lib/puppet/parser/functions/prefix.rb": "aebbea0290be82a4ae89ddfffbee1125", - "lib/puppet/parser/functions/range.rb": "17a05dbae8f562f882450f9e648d4e2d", - "lib/puppet/parser/functions/reject.rb": "689f6a7c961a55fe9dcd240921f4c7f9", - "lib/puppet/parser/functions/reverse.rb": "1386371c0f5301055fdf99079e862b3e", - "lib/puppet/parser/functions/rstrip.rb": "8a0d69876bdbc88a2054ba41c9c38961", - "lib/puppet/parser/functions/shuffle.rb": "6445e6b4dc62c37b184a60eeaf34414b", - "lib/puppet/parser/functions/size.rb": "8972d48c0f9e487d659bd7326b40b642", - "lib/puppet/parser/functions/sort.rb": "504b033b438461ca4f9764feeb017833", - "lib/puppet/parser/functions/squeeze.rb": "541f85b4203b55c9931d3d6ecd5c75f8", - "lib/puppet/parser/functions/str2bool.rb": "6320f1a50fd28ec027981cd1fb8ffdd0", - "lib/puppet/parser/functions/str2saltedsha512.rb": "49afad7b386be38ce53deaefef326e85", - "lib/puppet/parser/functions/strftime.rb": "e02e01a598ca5d7d6eee0ba22440304a", - "lib/puppet/parser/functions/strip.rb": "273d547c7b05c0598556464dfd12f5fd", - "lib/puppet/parser/functions/suffix.rb": "109279db4180441e75545dbd5f273298", - "lib/puppet/parser/functions/swapcase.rb": "4902f38f0b9292afec66d40fee4b02ec", - "lib/puppet/parser/functions/time.rb": "08d88d52abd1e230e3a2f82107545d48", - "lib/puppet/parser/functions/to_bytes.rb": "83f23c33adbfa42b2a9d9fc2db3daeb4", - "lib/puppet/parser/functions/type.rb": "62f914d6c90662aaae40c5539701be60", - "lib/puppet/parser/functions/union.rb": "137998fe47decf25aede20f0c0155a4c", - "lib/puppet/parser/functions/unique.rb": "217ccce6d23235af92923f50f8556963", - "lib/puppet/parser/functions/upcase.rb": "a5744a74577cfa136fca2835e75888d3", - "lib/puppet/parser/functions/uriescape.rb": "321b8d2c33a5ea48337e1293774db4e0", - "lib/puppet/parser/functions/validate_absolute_path.rb": "385137ac24a2dec6cecc4e6ea75be442", - "lib/puppet/parser/functions/validate_array.rb": "72b29289b8af1cfc3662ef9be78911b8", - "lib/puppet/parser/functions/validate_augeas.rb": "d4acca7b8a9fdada9ae39e5101902cc1", - "lib/puppet/parser/functions/validate_bool.rb": "a712634a000024398b3c6cd4ecc46463", - "lib/puppet/parser/functions/validate_cmd.rb": "78fd21cb3fc52efc3b53ba2b3301de18", - "lib/puppet/parser/functions/validate_hash.rb": "e9cfaca68751524efe16ecf2f958a9a0", - "lib/puppet/parser/functions/validate_ipv4_address.rb": "a8fb6f0ca36aa460d462c07c2af5d5a2", - "lib/puppet/parser/functions/validate_ipv6_address.rb": "4699238e4cad60e7e1428905523eaeb7", - "lib/puppet/parser/functions/validate_re.rb": "c6664b3943bc820415a43f16372dc2a9", - "lib/puppet/parser/functions/validate_slength.rb": "7e67c213509b9383707819cc612b2a29", - "lib/puppet/parser/functions/validate_string.rb": "6afcbc51f83f0714348b8d61e06ea7eb", - "lib/puppet/parser/functions/values.rb": "066a6e4170e5034edb9a80463dff2bb5", - "lib/puppet/parser/functions/values_at.rb": "094ac110ce9f7a5b16d0c80a0cf2243c", - "lib/puppet/parser/functions/zip.rb": "a80782461ed9465f0cd0c010936f1855", - "lib/puppet/provider/file_line/ruby.rb": "10d65268d2d1e75b5dae014974b79d60", - "lib/puppet/type/anchor.rb": "bbd36bb49c3b554f8602d8d3df366c0c", - "lib/puppet/type/file_line.rb": "a1eceef6bd7cbfe99892cf3ee57ef2b4", - "manifests/init.pp": "f2ba5f36e7227ed87bbb69034fc0de8b", - "manifests/stages.pp": "cc6ed1751d334b0ea278c0335c7f0b5a", - "metadata.json": "42591a032ab4a712a52a294148361090", - "spec/acceptance/abs_spec.rb": "435478ef1ba43a6cca1f7b4db14a4bcc", - "spec/acceptance/any2array_spec.rb": "78187dc3683c8ecd15774d99024de47d", - "spec/acceptance/base64_spec.rb": "1684d5dd176dd5bbd4c3c6b1e64fbcea", - "spec/acceptance/bool2num_spec.rb": "c5e3aadb08a437f181247429f4125bab", - "spec/acceptance/build_csv.rb": "f28ef587de764ade1513091c4906412c", - "spec/acceptance/capitalize_spec.rb": "e77ea2c37144a75a67969c0d0839adfd", - "spec/acceptance/chomp_spec.rb": "fb0862a6b7eeb3c290e280788e705061", - "spec/acceptance/chop_spec.rb": "0bd1065b9c16a54b86adeb4e3be041fb", - "spec/acceptance/concat_spec.rb": "3a0dae19a34bb13d406c8e0ec87d8fe5", - "spec/acceptance/count_spec.rb": "5b35e597ae1051f41431812707d4b502", - "spec/acceptance/deep_merge_spec.rb": "c335a947f1666e185e0210e661f1c78a", - "spec/acceptance/defined_with_params_spec.rb": "f27c54ade9872c63c69316f62b03c119", - "spec/acceptance/delete_at_spec.rb": "9c028b703ee0286565c9877757678f3f", - "spec/acceptance/delete_spec.rb": "31e6dfcb9cc7c16b20d47c00e6a85a1d", - "spec/acceptance/delete_undef_values_spec.rb": "6e6a66aee0c383c843b5f92ef8c8410c", - "spec/acceptance/delete_values_spec.rb": "22c9b4914d4cbc0153aa3862cb4fb50e", - "spec/acceptance/difference_spec.rb": "289f4f1788feaacb304ffd54971c7e7e", - "spec/acceptance/dirname_spec.rb": "84db53878c4400a6c684c924cff05cfc", - "spec/acceptance/downcase_spec.rb": "0f094849b94a94df491ee01186473104", - "spec/acceptance/empty_spec.rb": "35c1f43e8a3e1fe7dd4335ef86e7efcc", - "spec/acceptance/ensure_packages_spec.rb": "d4c02a9313e2b8339d9e4a2f5b200e0e", - "spec/acceptance/ensure_resource_spec.rb": "9e03216abb2431e749be76a4302931df", - "spec/acceptance/flatten_spec.rb": "83fb08cc168a105c1d5d0df66b1d9e84", - "spec/acceptance/floor_spec.rb": "d7267b2914b1da6406224abb7489ca86", - "spec/acceptance/fqdn_rotate_spec.rb": "a1fa84292395adec3c47b21c3dc79ec3", - "spec/acceptance/get_module_path_spec.rb": "6a6552ff8d6d75ce795b0139c68a7993", - "spec/acceptance/getparam_spec.rb": "b62a47524f434b903f9e155ad56959b3", - "spec/acceptance/getvar_spec.rb": "ba2f081a88be97c0e7004a6296294f23", - "spec/acceptance/grep_spec.rb": "98818b8b0557b80d6ff519f70ea7617c", - "spec/acceptance/has_interface_with_spec.rb": "467183aeada0bec74143be6cf0b89a3d", - "spec/acceptance/has_ip_address_spec.rb": "e0369b12725695c528e2d47b8ea2b4d8", - "spec/acceptance/has_ip_network_spec.rb": "ca8dd6faa6df940784a60a49bec1330d", - "spec/acceptance/has_key_spec.rb": "6509a26a0886f7d591eaa926b2f92407", - "spec/acceptance/hash_spec.rb": "1c626457ba056bdd3936e28aa5bf503e", - "spec/acceptance/intersection_spec.rb": "40f586af7f95408a5d4a2882a4aa98f1", - "spec/acceptance/is_array_spec.rb": "c2ff70ce59b90b50a5aed67abaa5399d", - "spec/acceptance/is_bool_spec.rb": "c001fdecff6b0a3c9dc78774987a0b15", - "spec/acceptance/is_domain_name_spec.rb": "63e84285c26d8717fd5d4dda01e3f432", - "spec/acceptance/is_float_spec.rb": "2f0164b4d732166aa46055a2cf7b4ea9", - "spec/acceptance/is_function_available_spec.rb": "7745eba89f8719c9ca7ebf04d5b005f7", - "spec/acceptance/is_hash_spec.rb": "cff723cd8fddac45033af5dc8406d4e4", - "spec/acceptance/is_integer_spec.rb": "c09201d17d3914bba197872897fa3413", - "spec/acceptance/is_ip_address_spec.rb": "aa14cf9abf404c3fe1e761ea957871fe", - "spec/acceptance/is_mac_address_spec.rb": "30ff4c6a63be58daa3568305617ca2a7", - "spec/acceptance/is_numeric_spec.rb": "fb9829c7a1a8d4a58836df6ff4c3386d", - "spec/acceptance/is_string_spec.rb": "df3022de123b72f0022728eb2d8ce857", - "spec/acceptance/join_keys_to_values_spec.rb": "8aa128bbaeea65aab8d92badee3ca2b5", - "spec/acceptance/join_spec.rb": "c6378ed481265152bba9871fc5501ee6", - "spec/acceptance/keys_spec.rb": "20486e3ebee53e50dc9de3b78b9d6ae6", - "spec/acceptance/loadyaml_spec.rb": "5bce9c4b90e73bccdcd4f66fc988676b", - "spec/acceptance/lstrip_spec.rb": "e29ab4039b65660ec2bd76a298adcae0", - "spec/acceptance/max_spec.rb": "209cda4b83d677743afb1a8870330618", - "spec/acceptance/member_spec.rb": "0dac8ec7c7f670fca429fc26cf8ccc14", - "spec/acceptance/merge_spec.rb": "ac61d7627c66565a3a5cbfb2f9db21eb", - "spec/acceptance/min_spec.rb": "152a7db28434a0d0378561d4f64cddcc", - "spec/acceptance/nodesets/centos-6-vcloud.yml": "bdf9ce9d3b0f0b4995666ae9d64d878d", - "spec/acceptance/nodesets/centos-64-x64-pe.yml": "ec075d95760df3d4702abea1ce0a829b", - "spec/acceptance/nodesets/centos-64-x64.yml": "092dd2c588a9f87fa1fb12997c0723ef", - "spec/acceptance/nodesets/default.yml": "3e5c36e6aa5a690229e720f4048bb8af", - "spec/acceptance/nodesets/fedora-18-x64.yml": "80e41b1ee16ea489f53164bfdae58855", - "spec/acceptance/nodesets/sles-11-x64.yml": "44e4c6c15c018333bfa9840a5e702f66", - "spec/acceptance/nodesets/ubuntu-server-10044-x64.yml": "75e86400b7889888dc0781c0ae1a1297", - "spec/acceptance/nodesets/ubuntu-server-12042-x64.yml": "d30d73e34cd50b043c7d14e305955269", - "spec/acceptance/num2bool_spec.rb": "e4a00b913b08c68a689837e9f9336cb2", - "spec/acceptance/parsejson_spec.rb": "ea3973d412ad6f72425fdfac6fbb2bb4", - "spec/acceptance/parseyaml_spec.rb": "7bbfeed73d0626f69daedfc151957967", - "spec/acceptance/pick_default_spec.rb": "1bc2562380ef6f6cded5ec90a03922be", - "spec/acceptance/pick_spec.rb": "272c54c8f9398f499768331bdb4276ee", - "spec/acceptance/prefix_spec.rb": "da620568c6771e7d492ec1ff697c531c", - "spec/acceptance/range_spec.rb": "65e5b98ceca257658604d988fbec7d03", - "spec/acceptance/reject_spec.rb": "b5185f1a6071c9bdc7aca92e6f899c3e", - "spec/acceptance/reverse_spec.rb": "7bdee543e82532e97bbf7a067140031c", - "spec/acceptance/rstrip_spec.rb": "28a64ceb7cb5ae8a93d31f49816190ab", - "spec/acceptance/shuffle_spec.rb": "8a8652e57d56f2b4946cdf4d20052b7a", - "spec/acceptance/size_spec.rb": "ae17d8a55921a0570972200c7c9327e1", - "spec/acceptance/sort_spec.rb": "d44b1b8c090f0f00a2f38515fda431ea", - "spec/acceptance/squeeze_spec.rb": "adcd65fa4e72203b97f1f14c8835c2cd", - "spec/acceptance/str2bool_spec.rb": "55ad165ceef6b9ba32bf20ca3b53b44c", - "spec/acceptance/str2saltedsha512_spec.rb": "b684c4214d06ae3d5bae055262a5ccaa", - "spec/acceptance/strftime_spec.rb": "0f4eadbd74445b35de4a42c9790fbcc1", - "spec/acceptance/strip_spec.rb": "6767da5bc735beb5362aeee6ff692c9e", - "spec/acceptance/suffix_spec.rb": "07dfc7eed48b75fcc1b93d0308243eda", - "spec/acceptance/swapcase_spec.rb": "5c3c1bc19a09fed6e01881f79b0b4ea5", - "spec/acceptance/time_spec.rb": "044b2f634a1fa6ecc735998d68a93b73", - "spec/acceptance/to_bytes_spec.rb": "f9df1f234b9409f5eaf56ef24e651c36", - "spec/acceptance/type_spec.rb": "d103a7e1607ab9cea74cdef25af610b0", - "spec/acceptance/union_spec.rb": "b6092941e0574f3c60910bebf84d2844", - "spec/acceptance/unique_spec.rb": "9b00b21cefde3b5391f50eeb9cd2493b", - "spec/acceptance/unsupported_spec.rb": "09b9265ecb05252cd5e5a18327c7ae97", - "spec/acceptance/upcase_spec.rb": "ffd1d6f9e6ec24131fb78983c53a75f9", - "spec/acceptance/uriescape_spec.rb": "13daa387714cbfc63b587aaa8dbf7fcd", - "spec/acceptance/validate_absolute_path_spec.rb": "8b9ebfae80329231d84fcab606a3eeaf", - "spec/acceptance/validate_array_spec.rb": "382641719e754622ffae562d10e38bf7", - "spec/acceptance/validate_augeas_spec.rb": "ec0a9c030e2c3494889973d74d60b2a4", - "spec/acceptance/validate_bool_spec.rb": "08bc139459204cf0a35098a5bc30ab95", - "spec/acceptance/validate_cmd_spec.rb": "d08eacac4dd5bdb50b5b0f02a6494048", - "spec/acceptance/validate_hash_spec.rb": "70ceacc18a0dee97b26ab2e50f925706", - "spec/acceptance/validate_ipv4_address_spec.rb": "dc901bbd05c3764a93cb49154cea6e4b", - "spec/acceptance/validate_ipv6_address_spec.rb": "c0872c56230ac2800cd5723eaa5bc53a", - "spec/acceptance/validate_re_spec.rb": "b289909078d6ae0d015419f518566698", - "spec/acceptance/validate_slength_spec.rb": "f0a05c1c2b895b096cb7326df4821594", - "spec/acceptance/validate_string_spec.rb": "6c9ced99fb1e263e66e25427d24f8f7b", - "spec/acceptance/values_at_spec.rb": "669b26c4d47742051472003518c3aa61", - "spec/acceptance/values_spec.rb": "714a13735aa0db3ffd3dfc4cd2c2e330", - "spec/acceptance/zip_spec.rb": "0a76aa26bd9552b8dae3294af7d233ab", - "spec/classes/anchor_spec.rb": "40600ba2845f9bd360a9504a347f12ba", - "spec/fixtures/dscacheutil/root": "e1a7622f55f3d1be258c9a5b16b474be", - "spec/fixtures/manifests/site.pp": "d41d8cd98f00b204e9800998ecf8427e", - "spec/functions/abs_spec.rb": "0a5864a29a8e9e99acc483268bd5917c", - "spec/functions/any2array_spec.rb": "167e114cfa222de971bf8be141766b6a", - "spec/functions/base64_spec.rb": "fe16d992be54dbb06d040f1b0e189571", - "spec/functions/bool2num_spec.rb": "67c3055d5d4e4c9fbcaca82038a09081", - "spec/functions/capitalize_spec.rb": "82a4209a033fc88c624f708c12e64e2a", - "spec/functions/chomp_spec.rb": "3cd8e2fe6b12efeffad94cce5b693b7c", - "spec/functions/chop_spec.rb": "4e9534d25b952b261c9f46add677c390", - "spec/functions/concat_spec.rb": "d7657b1af27a96072aae711cee041181", - "spec/functions/count_spec.rb": "db98ef89752a7112425f0aade10108e0", - "spec/functions/deep_merge_spec.rb": "7961a696e1b45167cead127f841f1c99", - "spec/functions/defined_with_params_spec.rb": "3bdfac38e3d6f06140ff2e926f4ebed2", - "spec/functions/delete_at_spec.rb": "7fd4fe7db8d213925fbc80c992673d10", - "spec/functions/delete_spec.rb": "fe66bdf9e61b9c992bc73ee54a37035c", - "spec/functions/delete_undef_values_spec.rb": "83b9c3027463f5c8a90a6d47d219acd5", - "spec/functions/delete_values_spec.rb": "ddcaa269caa95ad926b8a3ef82976da9", - "spec/functions/difference_spec.rb": "e64c1501699fef8eb1037a3ca60a05a6", - "spec/functions/dirname_spec.rb": "1d7cf70468c2cfa6dacfc75935322395", - "spec/functions/downcase_spec.rb": "b0197829512f2e92a2d2b06ce8e2226f", - "spec/functions/empty_spec.rb": "028c30267d648a172d8a81a9262c3abe", - "spec/functions/ensure_packages_spec.rb": "f1b60599078cdcb3cff1368346108264", - "spec/functions/ensure_resource_spec.rb": "7765dde3b9fc54b7dddb6597e0f7b523", - "spec/functions/flatten_spec.rb": "583c9a70f93e492cfb22ffa1811f6aa0", - "spec/functions/floor_spec.rb": "d01ef7dfe0245d7a0a73d7df13cb02e3", - "spec/functions/fqdn_rotate_spec.rb": "c67b71737bee9936f5261d41a37bad46", - "spec/functions/get_module_path_spec.rb": "b7ea196f548b1a9a745ab6671295ab27", - "spec/functions/getparam_spec.rb": "75153d949eb122aa18f0c5e2c8e861e5", - "spec/functions/getvar_spec.rb": "842bf88d47077a9ae64097b6e39c3364", - "spec/functions/grep_spec.rb": "78179537496a7150469e591a95e255d8", - "spec/functions/has_interface_with_spec.rb": "7c16d731c518b434c81b8cb2227cc916", - "spec/functions/has_ip_address_spec.rb": "f53c7baeaf024ff577447f6c28c0f3a7", - "spec/functions/has_ip_network_spec.rb": "885ea8a4c987b735d683b742bf846cb1", - "spec/functions/has_key_spec.rb": "3e4e730d98bbdfb88438b6e08e45868e", - "spec/functions/hash_spec.rb": "826337a92d8f7a189b7ac19615db0ed7", - "spec/functions/intersection_spec.rb": "1b1f1a3900a1f1e165692b056e766fba", - "spec/functions/is_array_spec.rb": "8c020af9c360abdbbf1ba887bb26babe", - "spec/functions/is_bool_spec.rb": "3219ba1500de75161bfb4f292404d1fa", - "spec/functions/is_domain_name_spec.rb": "8eed3a9eb9334bf6a473ad4e2cabc2ec", - "spec/functions/is_float_spec.rb": "171fc0e382d9856c2d8db2b70c9ec9cd", - "spec/functions/is_function_available.rb": "c8858a3c6253713cce0113a98d229b5d", - "spec/functions/is_hash_spec.rb": "408e121a5e30c4c5c4a0a383beb6e209", - "spec/functions/is_integer_spec.rb": "c848f20da5f62ac4bbaf0f6c1485c88f", - "spec/functions/is_ip_address_spec.rb": "6040a9bae4e5c853966148b634501157", - "spec/functions/is_mac_address_spec.rb": "644cd498b426ff2f9ea9cbc5d8e141d7", - "spec/functions/is_numeric_spec.rb": "65f2ad0e70d9b60c601740351eba94fd", - "spec/functions/is_string_spec.rb": "5c015d8267de852da3a12b984e077092", - "spec/functions/join_keys_to_values_spec.rb": "7c7937411b7fe4bb944c0c022d3a96b0", - "spec/functions/join_spec.rb": "c3b50c39390a86b493511be2c6722235", - "spec/functions/keys_spec.rb": "35cc2ed490dc68da6464f245dfebd617", - "spec/functions/loadyaml_spec.rb": "ce86614d8aaceec93653ecf299d3d441", - "spec/functions/lstrip_spec.rb": "1fc2c2d80b5f724a358c3cfeeaae6249", - "spec/functions/max_spec.rb": "5562bccc643443af7e4fa7c9d1e52b8b", - "spec/functions/member_spec.rb": "067c60985efc57022ca1c5508d74d77f", - "spec/functions/merge_spec.rb": "c17a7244453f2da22970acc02a6de110", - "spec/functions/min_spec.rb": "bf80bf58261117bb24392670b624a611", - "spec/functions/num2bool_spec.rb": "8cd5b46b7c8e612dfae3362e3a68a5f9", - "spec/functions/parsejson_spec.rb": "37ab84381e035c31d6a3dd9bf73a3d53", - "spec/functions/parseyaml_spec.rb": "65dfed872930ffe0d21954c15daaf498", - "spec/functions/pick_default_spec.rb": "db0a9d261b7e1b82e2786716dd924e92", - "spec/functions/pick_spec.rb": "34382f7483b6c10d38831de2169777c2", - "spec/functions/prefix_spec.rb": "7245749e27bafe1b36c1c5bae6f705c7", - "spec/functions/range_spec.rb": "c40b3c6d4031fc541c2421ff7b8c41fe", - "spec/functions/reject_spec.rb": "8e16c9f064870e958b6278261e480954", - "spec/functions/reverse_spec.rb": "48169990e59081ccbd112b6703418ce4", - "spec/functions/rstrip_spec.rb": "a408e933753c9c323a05d7079d32cbb3", - "spec/functions/shuffle_spec.rb": "2141a54d2fb3cf725b88184d639677f4", - "spec/functions/size_spec.rb": "d126b696b21a8cd754d58f78ddba6f06", - "spec/functions/sort_spec.rb": "7039cd230a94e95d9d1de2e1094acae2", - "spec/functions/squeeze_spec.rb": "df5b349c208a9a2a4d4b8e6d9324756f", - "spec/functions/str2bool_spec.rb": "e2a8a4d39680f3ed18621e26d67c6024", - "spec/functions/str2saltedsha512_spec.rb": "1de174be8835ba6fef86b590887bb2cc", - "spec/functions/strftime_spec.rb": "bf140883ecf3254277306fa5b25f0344", - "spec/functions/strip_spec.rb": "a01796bebbdabd3fad12b0662ea5966e", - "spec/functions/suffix_spec.rb": "ee875e2d09d7ffc363bf6c34d9ef322f", - "spec/functions/swapcase_spec.rb": "0660ce8807608cc8f98ad1edfa76a402", - "spec/functions/time_spec.rb": "b6d0279062779efe5153fe5cfafc5bbd", - "spec/functions/to_bytes_spec.rb": "80aaf68cf7e938e46b5278c1907af6be", - "spec/functions/type_spec.rb": "422f2c33458fe9b0cc9614d16f7573ba", - "spec/functions/union_spec.rb": "c4f72a55e186813cd3a47a83ba3e9a61", - "spec/functions/unique_spec.rb": "2df8b3b2edb9503943cb4dcb4a371867", - "spec/functions/upcase_spec.rb": "813668919bc62cdd1d349dafc19fbbb3", - "spec/functions/uriescape_spec.rb": "204e9b1566e330a0234761ac8ac7083f", - "spec/functions/validate_absolute_path_spec.rb": "5a0b98675070e511810dab9e60dc43b6", - "spec/functions/validate_array_spec.rb": "bcd231229554785c4270ca92ef99cb60", - "spec/functions/validate_augeas_spec.rb": "eee1a0c3ef3051bda525b1e17d577ab0", - "spec/functions/validate_bool_spec.rb": "7aeb6085fc9601c6bbe6c49e56d209a4", - "spec/functions/validate_cmd_spec.rb": "efc88e8e21481acd36c7f948b1f226ea", - "spec/functions/validate_hash_spec.rb": "8529c74051ceb71e6b1b97c9cecdf625", - "spec/functions/validate_ipv4_address_spec.rb": "19f2f44fbbdf7a2e69aeaa2f0f402695", - "spec/functions/validate_ipv6_address_spec.rb": "2d8617be4405bdbd84d140ba8be6c184", - "spec/functions/validate_re_spec.rb": "d8ab477f9afcb748f144588ebb3a28a3", - "spec/functions/validate_slength_spec.rb": "73273a083a26941b3f7c1e3b2e18b3e2", - "spec/functions/validate_string_spec.rb": "64a4f681084cba55775a070f7fab5e0c", - "spec/functions/values_at_spec.rb": "de45fd8abbc4c037c3c4fac2dcf186f9", - "spec/functions/values_spec.rb": "0ac9e141ed1f612d7cc224f747b2d1d9", - "spec/functions/zip_spec.rb": "06a86e4e70d2aea63812582aae1d26c4", - "spec/lib/puppet_spec/compiler.rb": "3c1f03dd8ac2f6f90d7e8f879a3ce4c0", - "spec/lib/puppet_spec/database.rb": "c74c0cf62980beea88c7749f876ccfa7", - "spec/lib/puppet_spec/files.rb": "906da85e399302cee403e10e357d3f4c", - "spec/lib/puppet_spec/fixtures.rb": "0722c5ccbfcba1fc27da1900e54b4463", - "spec/lib/puppet_spec/matchers.rb": "dd30ba6b936e8c267511d67acb087c35", - "spec/lib/puppet_spec/modules.rb": "445d2739aa8754568a14816280727d70", - "spec/lib/puppet_spec/pops.rb": "adf661defa460b7189e3750535533d34", - "spec/lib/puppet_spec/scope.rb": "01aeb89bdc2d29a2528ced26ec6402ec", - "spec/lib/puppet_spec/settings.rb": "5da4e0dad8bf6b21cc4437c73753a56d", - "spec/lib/puppet_spec/verbose.rb": "71dbccd9a45ed89d12fd1c44456a6820", - "spec/monkey_patches/alias_should_to_must.rb": "b19ee31563afb91a72f9869f9d7362ff", - "spec/monkey_patches/publicize_methods.rb": "c690e444b77c871375d321e413e28ca1", - "spec/spec.opts": "a600ded995d948e393fbe2320ba8e51c", - "spec/spec_helper.rb": "846cc69a2d612d55d130622759aa12e0", - "spec/spec_helper_acceptance.rb": "d82b5682eac4ff46bbe5aa08c29d5e28", - "spec/unit/facter/facter_dot_d_spec.rb": "cce0748b2671b1b104332a7c757e5206", - "spec/unit/facter/pe_version_spec.rb": "ef031cca838f36f99b1dab3259df96a5", - "spec/unit/facter/root_home_spec.rb": "ecd851e2b8a4a8578960cce094cf41ee", - "spec/unit/facter/util/puppet_settings_spec.rb": "8666142d017e5804445f5596f3be76e8", - "spec/unit/puppet/provider/file_line/ruby_spec.rb": "e118a65a3eb0ccd3d1bf99d7bb010669", - "spec/unit/puppet/type/anchor_spec.rb": "3c3251acbc1085b121623f4617107fb9", - "spec/unit/puppet/type/file_line_spec.rb": "72ba1d9ad9de5df592f3ff03551983cb", - "tests/file_line.pp": "67727539aa7b7dd76f06626fe734f7f7", - "tests/has_interface_with.pp": "59c98b4af0d39fc11d1ef4c7a6dc8f7a", - "tests/has_ip_address.pp": "93ce02915f67ddfb43a049b2b84ef391", - "tests/has_ip_network.pp": "abc05686797a776ea8c054657e6f7456", - "tests/init.pp": "1d98070412c76824e66db4b7eb74d433" -} \ No newline at end of file diff --git a/modules/stdlib/lib/facter/facter_dot_d.rb b/modules/stdlib/lib/facter/facter_dot_d.rb deleted file mode 100644 index 2c096b0..0000000 --- a/modules/stdlib/lib/facter/facter_dot_d.rb +++ /dev/null @@ -1,202 +0,0 @@ -# A Facter plugin that loads facts from /etc/facter/facts.d -# and /etc/puppetlabs/facter/facts.d. -# -# Facts can be in the form of JSON, YAML or Text files -# and any executable that returns key=value pairs. -# -# In the case of scripts you can also create a file that -# contains a cache TTL. For foo.sh store the ttl as just -# a number in foo.sh.ttl -# -# The cache is stored in /tmp/facts_cache.yaml as a mode -# 600 file and will have the end result of not calling your -# fact scripts more often than is needed - -class Facter::Util::DotD - require 'yaml' - - def initialize(dir="/etc/facts.d", cache_file="/tmp/facts_cache.yml") - @dir = dir - @cache_file = cache_file - @cache = nil - @types = {".txt" => :txt, ".json" => :json, ".yaml" => :yaml} - end - - def entries - Dir.entries(@dir).reject{|f| f =~ /^\.|\.ttl$/}.sort.map {|f| File.join(@dir, f) } - rescue - [] - end - - def fact_type(file) - extension = File.extname(file) - - type = @types[extension] || :unknown - - type = :script if type == :unknown && File.executable?(file) - - return type - end - - def txt_parser(file) - File.readlines(file).each do |line| - if line =~ /^([^=]+)=(.+)$/ - var = $1; val = $2 - - Facter.add(var) do - setcode { val } - end - end - end - rescue Exception => e - Facter.warn("Failed to handle #{file} as text facts: #{e.class}: #{e}") - end - - def json_parser(file) - begin - require 'json' - rescue LoadError - retry if require 'rubygems' - raise - end - - JSON.load(File.read(file)).each_pair do |f, v| - Facter.add(f) do - setcode { v } - end - end - rescue Exception => e - Facter.warn("Failed to handle #{file} as json facts: #{e.class}: #{e}") - end - - def yaml_parser(file) - require 'yaml' - - YAML.load_file(file).each_pair do |f, v| - Facter.add(f) do - setcode { v } - end - end - rescue Exception => e - Facter.warn("Failed to handle #{file} as yaml facts: #{e.class}: #{e}") - end - - def script_parser(file) - result = cache_lookup(file) - ttl = cache_time(file) - - unless result - result = Facter::Util::Resolution.exec(file) - - if ttl > 0 - Facter.debug("Updating cache for #{file}") - cache_store(file, result) - cache_save! - end - else - Facter.debug("Using cached data for #{file}") - end - - result.split("\n").each do |line| - if line =~ /^(.+)=(.+)$/ - var = $1; val = $2 - - Facter.add(var) do - setcode { val } - end - end - end - rescue Exception => e - Facter.warn("Failed to handle #{file} as script facts: #{e.class}: #{e}") - Facter.debug(e.backtrace.join("\n\t")) - end - - def cache_save! - cache = load_cache - File.open(@cache_file, "w", 0600) {|f| f.write(YAML.dump(cache)) } - rescue - end - - def cache_store(file, data) - load_cache - - @cache[file] = {:data => data, :stored => Time.now.to_i} - rescue - end - - def cache_lookup(file) - cache = load_cache - - return nil if cache.empty? - - ttl = cache_time(file) - - if cache[file] - now = Time.now.to_i - - return cache[file][:data] if ttl == -1 - return cache[file][:data] if (now - cache[file][:stored]) <= ttl - return nil - else - return nil - end - rescue - return nil - end - - def cache_time(file) - meta = file + ".ttl" - - return File.read(meta).chomp.to_i - rescue - return 0 - end - - def load_cache - unless @cache - if File.exist?(@cache_file) - @cache = YAML.load_file(@cache_file) - else - @cache = {} - end - end - - return @cache - rescue - @cache = {} - return @cache - end - - def create - entries.each do |fact| - type = fact_type(fact) - parser = "#{type}_parser" - - if respond_to?("#{type}_parser") - Facter.debug("Parsing #{fact} using #{parser}") - - send(parser, fact) - end - end - end -end - - -mdata = Facter.version.match(/(\d+)\.(\d+)\.(\d+)/) -if mdata - (major, minor, patch) = mdata.captures.map { |v| v.to_i } - if major < 2 - # Facter 1.7 introduced external facts support directly - unless major == 1 and minor > 6 - Facter::Util::DotD.new("/etc/facter/facts.d").create - Facter::Util::DotD.new("/etc/puppetlabs/facter/facts.d").create - - # Windows has a different configuration directory that defaults to a vendor - # specific sub directory of the %COMMON_APPDATA% directory. - if Dir.const_defined? 'COMMON_APPDATA' then - windows_facts_dot_d = File.join(Dir::COMMON_APPDATA, 'PuppetLabs', 'facter', 'facts.d') - Facter::Util::DotD.new(windows_facts_dot_d).create - end - end - end -end diff --git a/modules/stdlib/lib/facter/pe_version.rb b/modules/stdlib/lib/facter/pe_version.rb deleted file mode 100644 index 0cc0f64..0000000 --- a/modules/stdlib/lib/facter/pe_version.rb +++ /dev/null @@ -1,53 +0,0 @@ -# Fact: is_pe, pe_version, pe_major_version, pe_minor_version, pe_patch_version -# -# Purpose: Return various facts about the PE state of the system -# -# Resolution: Uses a regex match against puppetversion to determine whether the -# machine has Puppet Enterprise installed, and what version (overall, major, -# minor, patch) is installed. -# -# Caveats: -# -Facter.add("pe_version") do - setcode do - pe_ver = Facter.value("puppetversion").match(/Puppet Enterprise (\d+\.\d+\.\d+)/) - pe_ver[1] if pe_ver - end -end - -Facter.add("is_pe") do - setcode do - if Facter.value(:pe_version).to_s.empty? then - false - else - true - end - end -end - -Facter.add("pe_major_version") do - confine :is_pe => true - setcode do - if pe_version = Facter.value(:pe_version) - pe_version.to_s.split('.')[0] - end - end -end - -Facter.add("pe_minor_version") do - confine :is_pe => true - setcode do - if pe_version = Facter.value(:pe_version) - pe_version.to_s.split('.')[1] - end - end -end - -Facter.add("pe_patch_version") do - confine :is_pe => true - setcode do - if pe_version = Facter.value(:pe_version) - pe_version.to_s.split('.')[2] - end - end -end diff --git a/modules/stdlib/lib/facter/puppet_vardir.rb b/modules/stdlib/lib/facter/puppet_vardir.rb deleted file mode 100644 index 0e6af40..0000000 --- a/modules/stdlib/lib/facter/puppet_vardir.rb +++ /dev/null @@ -1,26 +0,0 @@ -# This facter fact returns the value of the Puppet vardir setting for the node -# running puppet or puppet agent. The intent is to enable Puppet modules to -# automatically have insight into a place where they can place variable data, -# regardless of the node's platform. -# -# The value should be directly usable in a File resource path attribute. - - -begin - require 'facter/util/puppet_settings' -rescue LoadError => e - # puppet apply does not add module lib directories to the $LOAD_PATH (See - # #4248). It should (in the future) but for the time being we need to be - # defensive which is what this rescue block is doing. - rb_file = File.join(File.dirname(__FILE__), 'util', 'puppet_settings.rb') - load rb_file if File.exists?(rb_file) or raise e -end - -Facter.add(:puppet_vardir) do - setcode do - # This will be nil if Puppet is not available. - Facter::Util::PuppetSettings.with_puppet do - Puppet[:vardir] - end - end -end diff --git a/modules/stdlib/lib/facter/root_home.rb b/modules/stdlib/lib/facter/root_home.rb deleted file mode 100644 index b4f87ff..0000000 --- a/modules/stdlib/lib/facter/root_home.rb +++ /dev/null @@ -1,32 +0,0 @@ -# A facter fact to determine the root home directory. -# This varies on PE supported platforms and may be -# reconfigured by the end user. - -module Facter::Util::RootHome - class << self - def get_root_home - root_ent = Facter::Util::Resolution.exec("getent passwd root") - # The home directory is the sixth element in the passwd entry - # If the platform doesn't have getent, root_ent will be nil and we should - # return it straight away. - root_ent && root_ent.split(":")[5] - end - end -end - -Facter.add(:root_home) do - setcode { Facter::Util::RootHome.get_root_home } -end - -Facter.add(:root_home) do - confine :kernel => :darwin - setcode do - str = Facter::Util::Resolution.exec("dscacheutil -q user -a name root") - hash = {} - str.split("\n").each do |pair| - key,value = pair.split(/:/) - hash[key] = value - end - hash['dir'].strip - end -end diff --git a/modules/stdlib/lib/facter/util/puppet_settings.rb b/modules/stdlib/lib/facter/util/puppet_settings.rb deleted file mode 100644 index 1ad9452..0000000 --- a/modules/stdlib/lib/facter/util/puppet_settings.rb +++ /dev/null @@ -1,21 +0,0 @@ -module Facter - module Util - module PuppetSettings - # This method is intended to provide a convenient way to evaluate a - # Facter code block only if Puppet is loaded. This is to account for the - # situation where the fact happens to be in the load path, but Puppet is - # not loaded for whatever reason. Perhaps the user is simply running - # facter without the --puppet flag and they happen to be working in a lib - # directory of a module. - def self.with_puppet - begin - Module.const_get("Puppet") - rescue NameError - nil - else - yield - end - end - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/abs.rb b/modules/stdlib/lib/puppet/parser/functions/abs.rb deleted file mode 100644 index 11d2d7f..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/abs.rb +++ /dev/null @@ -1,36 +0,0 @@ -# -# abs.rb -# - -module Puppet::Parser::Functions - newfunction(:abs, :type => :rvalue, :doc => <<-EOS - Returns the absolute value of a number, for example -34.56 becomes - 34.56. Takes a single integer and float value as an argument. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "abs(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - - # Numbers in Puppet are often string-encoded which is troublesome ... - if value.is_a?(String) - if value.match(/^-?(?:\d+)(?:\.\d+){1}$/) - value = value.to_f - elsif value.match(/^-?\d+$/) - value = value.to_i - else - raise(Puppet::ParseError, 'abs(): Requires float or ' + - 'integer to work with') - end - end - - # We have numeric value to handle ... - result = value.abs - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/any2array.rb b/modules/stdlib/lib/puppet/parser/functions/any2array.rb deleted file mode 100644 index e71407e..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/any2array.rb +++ /dev/null @@ -1,33 +0,0 @@ -# -# any2array.rb -# - -module Puppet::Parser::Functions - newfunction(:any2array, :type => :rvalue, :doc => <<-EOS -This converts any object to an array containing that object. Empty argument -lists are converted to an empty array. Arrays are left untouched. Hashes are -converted to arrays of alternating keys and values. - EOS - ) do |arguments| - - if arguments.empty? - return [] - end - - if arguments.length == 1 - if arguments[0].kind_of?(Array) - return arguments[0] - elsif arguments[0].kind_of?(Hash) - result = [] - arguments[0].each do |key, value| - result << key << value - end - return result - end - end - - return arguments - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/base64.rb b/modules/stdlib/lib/puppet/parser/functions/base64.rb deleted file mode 100644 index 617ba31..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/base64.rb +++ /dev/null @@ -1,37 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:base64, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - - Base64 encode or decode a string based on the command and the string submitted - - Usage: - - $encodestring = base64('encode','thestring') - $decodestring = base64('decode','dGhlc3RyaW5n') - - ENDHEREDOC - - require 'base64' - - raise Puppet::ParseError, ("base64(): Wrong number of arguments (#{args.length}; must be = 2)") unless args.length == 2 - - actions = ['encode','decode'] - - unless actions.include?(args[0]) - raise Puppet::ParseError, ("base64(): the first argument must be one of 'encode' or 'decode'") - end - - unless args[1].is_a?(String) - raise Puppet::ParseError, ("base64(): the second argument must be a string to base64") - end - - case args[0] - when 'encode' - result = Base64.encode64(args[1]) - when 'decode' - result = Base64.decode64(args[1]) - end - - return result - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/bool2num.rb b/modules/stdlib/lib/puppet/parser/functions/bool2num.rb deleted file mode 100644 index 9a07a8a..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/bool2num.rb +++ /dev/null @@ -1,49 +0,0 @@ -# -# bool2num.rb -# - -module Puppet::Parser::Functions - newfunction(:bool2num, :type => :rvalue, :doc => <<-EOS - Converts a boolean to a number. Converts the values: - false, f, 0, n, and no to 0 - true, t, 1, y, and yes to 1 - Requires a single boolean or string as an input. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "bool2num(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - # We can have either true or false, or string which resembles boolean ... - unless [FalseClass, TrueClass, String].include?(klass) - raise(Puppet::ParseError, 'bool2num(): Requires either ' + - 'boolean or string to work with') - end - - if value.is_a?(String) - # We consider all the yes, no, y, n and so on too ... - value = case value - # - # This is how undef looks like in Puppet ... - # We yield 0 (or false if you wish) in this case. - # - when /^$/, '' then false # Empty string will be false ... - when /^(1|t|y|true|yes)$/ then true - when /^(0|f|n|false|no)$/ then false - when /^(undef|undefined)$/ then false # This is not likely to happen ... - else - raise(Puppet::ParseError, 'bool2num(): Unknown type of boolean given') - end - end - - # We have real boolean values as well ... - result = value ? 1 : 0 - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/capitalize.rb b/modules/stdlib/lib/puppet/parser/functions/capitalize.rb deleted file mode 100644 index 640d00b..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/capitalize.rb +++ /dev/null @@ -1,34 +0,0 @@ -# -# capitalize.rb -# - -module Puppet::Parser::Functions - newfunction(:capitalize, :type => :rvalue, :doc => <<-EOS - Capitalizes the first letter of a string or array of strings. - Requires either a single string or an array as an input. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "capitalize(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'capitalize(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.capitalize : i } - else - result = value.capitalize - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/chomp.rb b/modules/stdlib/lib/puppet/parser/functions/chomp.rb deleted file mode 100644 index 4564a00..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/chomp.rb +++ /dev/null @@ -1,35 +0,0 @@ -# -# chomp.rb -# - -module Puppet::Parser::Functions - newfunction(:chomp, :type => :rvalue, :doc => <<-'EOS' - Removes the record separator from the end of a string or an array of - strings, for example `hello\n` becomes `hello`. - Requires a single string or array as an input. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "chomp(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'chomp(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.chomp : i } - else - result = value.chomp - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/chop.rb b/modules/stdlib/lib/puppet/parser/functions/chop.rb deleted file mode 100644 index f242af3..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/chop.rb +++ /dev/null @@ -1,37 +0,0 @@ -# -# chop.rb -# - -module Puppet::Parser::Functions - newfunction(:chop, :type => :rvalue, :doc => <<-'EOS' - Returns a new string with the last character removed. If the string ends - with `\r\n`, both characters are removed. Applying chop to an empty - string returns an empty string. If you wish to merely remove record - separators then you should use the `chomp` function. - Requires a string or array of strings as input. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "chop(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'chop(): Requires either an ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.chop : i } - else - result = value.chop - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/concat.rb b/modules/stdlib/lib/puppet/parser/functions/concat.rb deleted file mode 100644 index 6c86382..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/concat.rb +++ /dev/null @@ -1,41 +0,0 @@ -# -# concat.rb -# - -module Puppet::Parser::Functions - newfunction(:concat, :type => :rvalue, :doc => <<-EOS -Appends the contents of array 2 onto array 1. - -*Example:* - - concat(['1','2','3'],['4','5','6']) - -Would result in: - - ['1','2','3','4','5','6'] - EOS - ) do |arguments| - - # Check that 2 arguments have been given ... - raise(Puppet::ParseError, "concat(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size != 2 - - a = arguments[0] - b = arguments[1] - - # Check that the first parameter is an array - unless a.is_a?(Array) - raise(Puppet::ParseError, 'concat(): Requires array to work with') - end - - if b.is_a?(Array) - result = a.concat(b) - else - result = a << b - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/count.rb b/modules/stdlib/lib/puppet/parser/functions/count.rb deleted file mode 100644 index 52de1b8..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/count.rb +++ /dev/null @@ -1,22 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:count, :type => :rvalue, :arity => -2, :doc => <<-EOS -Takes an array as first argument and an optional second argument. -Count the number of elements in array that matches second argument. -If called with only an array it counts the number of elements that are not nil/undef. - EOS - ) do |args| - - if (args.size > 2) then - raise(ArgumentError, "count(): Wrong number of arguments "+ - "given #{args.size} for 1 or 2.") - end - - collection, item = args - - if item then - collection.count item - else - collection.count { |obj| obj != nil && obj != :undef && obj != '' } - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/deep_merge.rb b/modules/stdlib/lib/puppet/parser/functions/deep_merge.rb deleted file mode 100644 index 6df32e9..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/deep_merge.rb +++ /dev/null @@ -1,44 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:deep_merge, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - Recursively merges two or more hashes together and returns the resulting hash. - - For example: - - $hash1 = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } } - $hash2 = {'two' => 'dos', 'three' => { 'five' => 5 } } - $merged_hash = deep_merge($hash1, $hash2) - # The resulting hash is equivalent to: - # $merged_hash = { 'one' => 1, 'two' => 'dos', 'three' => { 'four' => 4, 'five' => 5 } } - - When there is a duplicate key that is a hash, they are recursively merged. - When there is a duplicate key that is not a hash, the key in the rightmost hash will "win." - - ENDHEREDOC - - if args.length < 2 - raise Puppet::ParseError, ("deep_merge(): wrong number of arguments (#{args.length}; must be at least 2)") - end - - deep_merge = Proc.new do |hash1,hash2| - hash1.merge(hash2) do |key,old_value,new_value| - if old_value.is_a?(Hash) && new_value.is_a?(Hash) - deep_merge.call(old_value, new_value) - else - new_value - end - end - end - - result = Hash.new - args.each do |arg| - next if arg.is_a? String and arg.empty? # empty string is synonym for puppet's undef - # If the argument was not a hash, skip it. - unless arg.is_a?(Hash) - raise Puppet::ParseError, "deep_merge: unexpected argument type #{arg.class}, only expects hash arguments" - end - - result = deep_merge.call(result, arg) - end - return( result ) - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb b/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb deleted file mode 100644 index d7df306..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb +++ /dev/null @@ -1,35 +0,0 @@ -# Test whether a given class or definition is defined -require 'puppet/parser/functions' - -Puppet::Parser::Functions.newfunction(:defined_with_params, - :type => :rvalue, - :doc => <<-'ENDOFDOC' -Takes a resource reference and an optional hash of attributes. - -Returns true if a resource with the specified attributes has already been added -to the catalog, and false otherwise. - - user { 'dan': - ensure => present, - } - - if ! defined_with_params(User[dan], {'ensure' => 'present' }) { - user { 'dan': ensure => present, } - } -ENDOFDOC -) do |vals| - reference, params = vals - raise(ArgumentError, 'Must specify a reference') unless reference - if (! params) || params == '' - params = {} - end - ret = false - if resource = findresource(reference.to_s) - matches = params.collect do |key, value| - resource[key] == value - end - ret = params.empty? || !matches.include?(false) - end - Puppet.debug("Resource #{reference} was not determined to be defined") - ret -end diff --git a/modules/stdlib/lib/puppet/parser/functions/delete.rb b/modules/stdlib/lib/puppet/parser/functions/delete.rb deleted file mode 100644 index d03a293..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/delete.rb +++ /dev/null @@ -1,46 +0,0 @@ -# -# delete.rb -# - -# TODO(Krzysztof Wilczynski): We need to add support for regular expression ... - -module Puppet::Parser::Functions - newfunction(:delete, :type => :rvalue, :doc => <<-EOS -Deletes all instances of a given element from an array, substring from a -string, or key from a hash. - -*Examples:* - - delete(['a','b','c','b'], 'b') - Would return: ['a','c'] - - delete({'a'=>1,'b'=>2,'c'=>3}, 'b') - Would return: {'a'=>1,'c'=>3} - - delete('abracadabra', 'bra') - Would return: 'acada' - EOS - ) do |arguments| - - if (arguments.size != 2) then - raise(Puppet::ParseError, "delete(): Wrong number of arguments "+ - "given #{arguments.size} for 2.") - end - - collection = arguments[0].dup - item = arguments[1] - - case collection - when Array, Hash - collection.delete item - when String - collection.gsub! item, '' - else - raise(TypeError, "delete(): First argument must be an Array, " + - "String, or Hash. Given an argument of class #{collection.class}.") - end - collection - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/delete_at.rb b/modules/stdlib/lib/puppet/parser/functions/delete_at.rb deleted file mode 100644 index 3eb4b53..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/delete_at.rb +++ /dev/null @@ -1,49 +0,0 @@ -# -# delete_at.rb -# - -module Puppet::Parser::Functions - newfunction(:delete_at, :type => :rvalue, :doc => <<-EOS -Deletes a determined indexed value from an array. - -*Examples:* - - delete_at(['a','b','c'], 1) - -Would return: ['a','c'] - EOS - ) do |arguments| - - raise(Puppet::ParseError, "delete_at(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size < 2 - - array = arguments[0] - - unless array.is_a?(Array) - raise(Puppet::ParseError, 'delete_at(): Requires array to work with') - end - - index = arguments[1] - - if index.is_a?(String) and not index.match(/^\d+$/) - raise(Puppet::ParseError, 'delete_at(): You must provide ' + - 'non-negative numeric index') - end - - result = array.clone - - # Numbers in Puppet are often string-encoded which is troublesome ... - index = index.to_i - - if index > result.size - 1 # First element is at index 0 is it not? - raise(Puppet::ParseError, 'delete_at(): Given index ' + - 'exceeds size of array given') - end - - result.delete_at(index) # We ignore the element that got deleted ... - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/delete_undef_values.rb b/modules/stdlib/lib/puppet/parser/functions/delete_undef_values.rb deleted file mode 100644 index f94d4da..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/delete_undef_values.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:delete_undef_values, :type => :rvalue, :doc => <<-EOS -Returns a copy of input hash or array with all undefs deleted. - -*Examples:* - - $hash = delete_undef_values({a=>'A', b=>'', c=>undef, d => false}) - -Would return: {a => 'A', b => '', d => false} - - $array = delete_undef_values(['A','',undef,false]) - -Would return: ['A','',false] - - EOS - ) do |args| - - raise(Puppet::ParseError, - "delete_undef_values(): Wrong number of arguments given " + - "(#{args.size})") if args.size < 1 - - unless args[0].is_a? Array or args[0].is_a? Hash - raise(Puppet::ParseError, - "delete_undef_values(): expected an array or hash, got #{args[0]} type #{args[0].class} ") - end - result = args[0].dup - if result.is_a?(Hash) - result.delete_if {|key, val| val.equal? :undef} - elsif result.is_a?(Array) - result.delete :undef - end - result - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/delete_values.rb b/modules/stdlib/lib/puppet/parser/functions/delete_values.rb deleted file mode 100644 index f6c8c0e..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/delete_values.rb +++ /dev/null @@ -1,26 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:delete_values, :type => :rvalue, :doc => <<-EOS -Deletes all instances of a given value from a hash. - -*Examples:* - - delete_values({'a'=>'A','b'=>'B','c'=>'C','B'=>'D'}, 'B') - -Would return: {'a'=>'A','c'=>'C','B'=>'D'} - - EOS - ) do |arguments| - - raise(Puppet::ParseError, - "delete_values(): Wrong number of arguments given " + - "(#{arguments.size} of 2)") if arguments.size != 2 - - hash, item = arguments - - if not hash.is_a?(Hash) - raise(TypeError, "delete_values(): First argument must be a Hash. " + \ - "Given an argument of class #{hash.class}.") - end - hash.dup.delete_if { |key, val| item == val } - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/difference.rb b/modules/stdlib/lib/puppet/parser/functions/difference.rb deleted file mode 100644 index cd258f7..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/difference.rb +++ /dev/null @@ -1,36 +0,0 @@ -# -# difference.rb -# - -module Puppet::Parser::Functions - newfunction(:difference, :type => :rvalue, :doc => <<-EOS -This function returns the difference between two arrays. -The returned array is a copy of the original array, removing any items that -also appear in the second array. - -*Examples:* - - difference(["a","b","c"],["b","c","d"]) - -Would return: ["a"] - EOS - ) do |arguments| - - # Two arguments are required - raise(Puppet::ParseError, "difference(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size != 2 - - first = arguments[0] - second = arguments[1] - - unless first.is_a?(Array) && second.is_a?(Array) - raise(Puppet::ParseError, 'difference(): Requires 2 arrays') - end - - result = first - second - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/dirname.rb b/modules/stdlib/lib/puppet/parser/functions/dirname.rb deleted file mode 100644 index ea8cc1e..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/dirname.rb +++ /dev/null @@ -1,15 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:dirname, :type => :rvalue, :doc => <<-EOS - Returns the dirname of a path. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "dirname(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - path = arguments[0] - return File.dirname(path) - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/downcase.rb b/modules/stdlib/lib/puppet/parser/functions/downcase.rb deleted file mode 100644 index 4066d21..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/downcase.rb +++ /dev/null @@ -1,33 +0,0 @@ -# -# downcase.rb -# - -module Puppet::Parser::Functions - newfunction(:downcase, :type => :rvalue, :doc => <<-EOS -Converts the case of a string or all strings in an array to lower case. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "downcase(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'downcase(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.downcase : i } - else - result = value.downcase - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/empty.rb b/modules/stdlib/lib/puppet/parser/functions/empty.rb deleted file mode 100644 index 80ebb86..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/empty.rb +++ /dev/null @@ -1,28 +0,0 @@ -# -# empty.rb -# - -module Puppet::Parser::Functions - newfunction(:empty, :type => :rvalue, :doc => <<-EOS -Returns true if the variable is empty. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "empty(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, Hash, String].include?(klass) - raise(Puppet::ParseError, 'empty(): Requires either ' + - 'array, hash or string to work with') - end - - result = value.empty? - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb b/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb deleted file mode 100644 index f1da4aa..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb +++ /dev/null @@ -1,35 +0,0 @@ -# -# ensure_packages.rb -# - -module Puppet::Parser::Functions - newfunction(:ensure_packages, :type => :statement, :doc => <<-EOS -Takes a list of packages and only installs them if they don't already exist. -It optionally takes a hash as a second parameter that will be passed as the -third argument to the ensure_resource() function. - EOS - ) do |arguments| - - if arguments.size > 2 or arguments.size == 0 - raise(Puppet::ParseError, "ensure_packages(): Wrong number of arguments " + - "given (#{arguments.size} for 1 or 2)") - elsif arguments.size == 2 and !arguments[1].is_a?(Hash) - raise(Puppet::ParseError, 'ensure_packages(): Requires second argument to be a Hash') - end - - packages = Array(arguments[0]) - - if arguments[1] - defaults = { 'ensure' => 'present' }.merge(arguments[1]) - else - defaults = { 'ensure' => 'present' } - end - - Puppet::Parser::Functions.function(:ensure_resource) - packages.each { |package_name| - function_ensure_resource(['package', package_name, defaults ]) - } - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb b/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb deleted file mode 100644 index 05e5593..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb +++ /dev/null @@ -1,45 +0,0 @@ -# Test whether a given class or definition is defined -require 'puppet/parser/functions' - -Puppet::Parser::Functions.newfunction(:ensure_resource, - :type => :statement, - :doc => <<-'ENDOFDOC' -Takes a resource type, title, and a list of attributes that describe a -resource. - - user { 'dan': - ensure => present, - } - -This example only creates the resource if it does not already exist: - - ensure_resource('user', 'dan', {'ensure' => 'present' }) - -If the resource already exists but does not match the specified parameters, -this function will attempt to recreate the resource leading to a duplicate -resource definition error. - -An array of resources can also be passed in and each will be created with -the type and parameters specified if it doesn't already exist. - - ensure_resource('user', ['dan','alex'], {'ensure' => 'present'}) - -ENDOFDOC -) do |vals| - type, title, params = vals - raise(ArgumentError, 'Must specify a type') unless type - raise(ArgumentError, 'Must specify a title') unless title - params ||= {} - - items = [title].flatten - - items.each do |item| - Puppet::Parser::Functions.function(:defined_with_params) - if function_defined_with_params(["#{type}[#{item}]", params]) - Puppet.debug("Resource #{type}[#{item}] not created because it already exists") - else - Puppet::Parser::Functions.function(:create_resources) - function_create_resources([type.capitalize, { item => params }]) - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/flatten.rb b/modules/stdlib/lib/puppet/parser/functions/flatten.rb deleted file mode 100644 index a1ed183..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/flatten.rb +++ /dev/null @@ -1,33 +0,0 @@ -# -# flatten.rb -# - -module Puppet::Parser::Functions - newfunction(:flatten, :type => :rvalue, :doc => <<-EOS -This function flattens any deeply nested arrays and returns a single flat array -as a result. - -*Examples:* - - flatten(['a', ['b', ['c']]]) - -Would return: ['a','b','c'] - EOS - ) do |arguments| - - raise(Puppet::ParseError, "flatten(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - array = arguments[0] - - unless array.is_a?(Array) - raise(Puppet::ParseError, 'flatten(): Requires array to work with') - end - - result = array.flatten - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/floor.rb b/modules/stdlib/lib/puppet/parser/functions/floor.rb deleted file mode 100644 index 9a6f014..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/floor.rb +++ /dev/null @@ -1,25 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:floor, :type => :rvalue, :doc => <<-EOS - Returns the largest integer less or equal to the argument. - Takes a single numeric value as an argument. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "floor(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - begin - arg = Float(arguments[0]) - rescue TypeError, ArgumentError => e - raise(Puppet::ParseError, "floor(): Wrong argument type " + - "given (#{arguments[0]} for Numeric)") - end - - raise(Puppet::ParseError, "floor(): Wrong argument type " + - "given (#{arg.class} for Numeric)") if arg.is_a?(Numeric) == false - - arg.floor - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb b/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb deleted file mode 100644 index 6558206..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb +++ /dev/null @@ -1,46 +0,0 @@ -# -# fqdn_rotate.rb -# - -module Puppet::Parser::Functions - newfunction(:fqdn_rotate, :type => :rvalue, :doc => <<-EOS -Rotates an array a random number of times based on a nodes fqdn. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "fqdn_rotate(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - require 'digest/md5' - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'fqdn_rotate(): Requires either ' + - 'array or string to work with') - end - - result = value.clone - - string = value.is_a?(String) ? true : false - - # Check whether it makes sense to rotate ... - return result if result.size <= 1 - - # We turn any string value into an array to be able to rotate ... - result = string ? result.split('') : result - - elements = result.size - - srand(Digest::MD5.hexdigest([lookupvar('::fqdn'),arguments].join(':')).hex) - rand(elements).times { - result.push result.shift - } - - result = string ? result.join : result - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb b/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb deleted file mode 100644 index 1421b91..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb +++ /dev/null @@ -1,17 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:get_module_path, :type =>:rvalue, :doc => <<-EOT - Returns the absolute path of the specified module for the current - environment. - - Example: - $module_path = get_module_path('stdlib') - EOT - ) do |args| - raise(Puppet::ParseError, "get_module_path(): Wrong number of arguments, expects one") unless args.size == 1 - if module_path = Puppet::Module.find(args[0], compiler.environment.to_s) - module_path.path - else - raise(Puppet::ParseError, "Could not find module #{args[0]} in environment #{compiler.environment}") - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/getparam.rb b/modules/stdlib/lib/puppet/parser/functions/getparam.rb deleted file mode 100644 index 6d51006..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/getparam.rb +++ /dev/null @@ -1,35 +0,0 @@ -# Test whether a given class or definition is defined -require 'puppet/parser/functions' - -Puppet::Parser::Functions.newfunction(:getparam, - :type => :rvalue, - :doc => <<-'ENDOFDOC' -Takes a resource reference and name of the parameter and -returns value of resource's parameter. - -*Examples:* - - define example_resource($param) { - } - - example_resource { "example_resource_instance": - param => "param_value" - } - - getparam(Example_resource["example_resource_instance"], "param") - -Would return: param_value -ENDOFDOC -) do |vals| - reference, param = vals - raise(ArgumentError, 'Must specify a reference') unless reference - raise(ArgumentError, 'Must specify name of a parameter') unless param and param.instance_of? String - - return '' if param.empty? - - if resource = findresource(reference.to_s) - return resource[param] if resource[param] - end - - return '' -end diff --git a/modules/stdlib/lib/puppet/parser/functions/getvar.rb b/modules/stdlib/lib/puppet/parser/functions/getvar.rb deleted file mode 100644 index 1621149..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/getvar.rb +++ /dev/null @@ -1,26 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:getvar, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - Lookup a variable in a remote namespace. - - For example: - - $foo = getvar('site::data::foo') - # Equivalent to $foo = $site::data::foo - - This is useful if the namespace itself is stored in a string: - - $datalocation = 'site::data' - $bar = getvar("${datalocation}::bar") - # Equivalent to $bar = $site::data::bar - ENDHEREDOC - - unless args.length == 1 - raise Puppet::ParseError, ("getvar(): wrong number of arguments (#{args.length}; must be 1)") - end - - self.lookupvar("#{args[0]}") - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/grep.rb b/modules/stdlib/lib/puppet/parser/functions/grep.rb deleted file mode 100644 index ceba9ec..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/grep.rb +++ /dev/null @@ -1,33 +0,0 @@ -# -# grep.rb -# - -module Puppet::Parser::Functions - newfunction(:grep, :type => :rvalue, :doc => <<-EOS -This function searches through an array and returns any elements that match -the provided regular expression. - -*Examples:* - - grep(['aaa','bbb','ccc','aaaddd'], 'aaa') - -Would return: - - ['aaa','aaaddd'] - EOS - ) do |arguments| - - if (arguments.size != 2) then - raise(Puppet::ParseError, "grep(): Wrong number of arguments "+ - "given #{arguments.size} for 2") - end - - a = arguments[0] - pattern = Regexp.new(arguments[1]) - - a.grep(pattern) - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb b/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb deleted file mode 100644 index 7f150a7..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb +++ /dev/null @@ -1,52 +0,0 @@ -# -# has_interface_with -# - -module Puppet::Parser::Functions - newfunction(:has_interface_with, :type => :rvalue, :doc => <<-EOS -Returns boolean based on kind and value: - * macaddress - * netmask - * ipaddress - * network - -has_interface_with("macaddress", "x:x:x:x:x:x") -has_interface_with("ipaddress", "127.0.0.1") => true -etc. - -If no "kind" is given, then the presence of the interface is checked: -has_interface_with("lo") => true - EOS - ) do |args| - - raise(Puppet::ParseError, "has_interface_with(): Wrong number of arguments " + - "given (#{args.size} for 1 or 2)") if args.size < 1 or args.size > 2 - - interfaces = lookupvar('interfaces') - - # If we do not have any interfaces, then there are no requested attributes - return false if (interfaces == :undefined) - - interfaces = interfaces.split(',') - - if args.size == 1 - return interfaces.member?(args[0]) - end - - kind, value = args - - if lookupvar(kind) == value - return true - end - - result = false - interfaces.each do |iface| - if value == lookupvar("#{kind}_#{iface}") - result = true - break - end - end - - result - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb b/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb deleted file mode 100644 index 842c8ec..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb +++ /dev/null @@ -1,25 +0,0 @@ -# -# has_ip_address -# - -module Puppet::Parser::Functions - newfunction(:has_ip_address, :type => :rvalue, :doc => <<-EOS -Returns true if the client has the requested IP address on some interface. - -This function iterates through the 'interfaces' fact and checks the -'ipaddress_IFACE' facts, performing a simple string comparison. - EOS - ) do |args| - - raise(Puppet::ParseError, "has_ip_address(): Wrong number of arguments " + - "given (#{args.size} for 1)") if args.size != 1 - - Puppet::Parser::Functions.autoloader.load(:has_interface_with) \ - unless Puppet::Parser::Functions.autoloader.loaded?(:has_interface_with) - - function_has_interface_with(['ipaddress', args[0]]) - - end -end - -# vim:sts=2 sw=2 diff --git a/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb b/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb deleted file mode 100644 index 9ccf902..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb +++ /dev/null @@ -1,25 +0,0 @@ -# -# has_ip_network -# - -module Puppet::Parser::Functions - newfunction(:has_ip_network, :type => :rvalue, :doc => <<-EOS -Returns true if the client has an IP address within the requested network. - -This function iterates through the 'interfaces' fact and checks the -'network_IFACE' facts, performing a simple string comparision. - EOS - ) do |args| - - raise(Puppet::ParseError, "has_ip_network(): Wrong number of arguments " + - "given (#{args.size} for 1)") if args.size != 1 - - Puppet::Parser::Functions.autoloader.load(:has_interface_with) \ - unless Puppet::Parser::Functions.autoloader.loaded?(:has_interface_with) - - function_has_interface_with(['network', args[0]]) - - end -end - -# vim:sts=2 sw=2 diff --git a/modules/stdlib/lib/puppet/parser/functions/has_key.rb b/modules/stdlib/lib/puppet/parser/functions/has_key.rb deleted file mode 100644 index 4657cc2..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/has_key.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:has_key, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - Determine if a hash has a certain key value. - - Example: - - $my_hash = {'key_one' => 'value_one'} - if has_key($my_hash, 'key_two') { - notice('we will not reach here') - } - if has_key($my_hash, 'key_one') { - notice('this will be printed') - } - - ENDHEREDOC - - unless args.length == 2 - raise Puppet::ParseError, ("has_key(): wrong number of arguments (#{args.length}; must be 2)") - end - unless args[0].is_a?(Hash) - raise Puppet::ParseError, "has_key(): expects the first argument to be a hash, got #{args[0].inspect} which is of type #{args[0].class}" - end - args[0].has_key?(args[1]) - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/hash.rb b/modules/stdlib/lib/puppet/parser/functions/hash.rb deleted file mode 100644 index 8cc4823..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/hash.rb +++ /dev/null @@ -1,41 +0,0 @@ -# -# hash.rb -# - -module Puppet::Parser::Functions - newfunction(:hash, :type => :rvalue, :doc => <<-EOS -This function converts an array into a hash. - -*Examples:* - - hash(['a',1,'b',2,'c',3]) - -Would return: {'a'=>1,'b'=>2,'c'=>3} - EOS - ) do |arguments| - - raise(Puppet::ParseError, "hash(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - array = arguments[0] - - unless array.is_a?(Array) - raise(Puppet::ParseError, 'hash(): Requires array to work with') - end - - result = {} - - begin - # This is to make it compatible with older version of Ruby ... - array = array.flatten - result = Hash[*array] - rescue Exception - raise(Puppet::ParseError, 'hash(): Unable to compute ' + - 'hash from array given') - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/intersection.rb b/modules/stdlib/lib/puppet/parser/functions/intersection.rb deleted file mode 100644 index 48f02e9..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/intersection.rb +++ /dev/null @@ -1,34 +0,0 @@ -# -# intersection.rb -# - -module Puppet::Parser::Functions - newfunction(:intersection, :type => :rvalue, :doc => <<-EOS -This function returns an array an intersection of two. - -*Examples:* - - intersection(["a","b","c"],["b","c","d"]) - -Would return: ["b","c"] - EOS - ) do |arguments| - - # Two arguments are required - raise(Puppet::ParseError, "intersection(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size != 2 - - first = arguments[0] - second = arguments[1] - - unless first.is_a?(Array) && second.is_a?(Array) - raise(Puppet::ParseError, 'intersection(): Requires 2 arrays') - end - - result = first & second - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_array.rb b/modules/stdlib/lib/puppet/parser/functions/is_array.rb deleted file mode 100644 index b39e184..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_array.rb +++ /dev/null @@ -1,22 +0,0 @@ -# -# is_array.rb -# - -module Puppet::Parser::Functions - newfunction(:is_array, :type => :rvalue, :doc => <<-EOS -Returns true if the variable passed to this function is an array. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "is_array(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - type = arguments[0] - - result = type.is_a?(Array) - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_bool.rb b/modules/stdlib/lib/puppet/parser/functions/is_bool.rb deleted file mode 100644 index 8bbdbc8..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_bool.rb +++ /dev/null @@ -1,22 +0,0 @@ -# -# is_bool.rb -# - -module Puppet::Parser::Functions - newfunction(:is_bool, :type => :rvalue, :doc => <<-EOS -Returns true if the variable passed to this function is a boolean. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "is_bool(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - type = arguments[0] - - result = type.is_a?(TrueClass) || type.is_a?(FalseClass) - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb b/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb deleted file mode 100644 index b3fee96..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb +++ /dev/null @@ -1,50 +0,0 @@ -# -# is_domain_name.rb -# - -module Puppet::Parser::Functions - newfunction(:is_domain_name, :type => :rvalue, :doc => <<-EOS -Returns true if the string passed to this function is a syntactically correct domain name. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_domain_name(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - domain = arguments[0] - - # Limits (rfc1035, 3.1) - domain_max_length=255 - label_min_length=1 - label_max_length=63 - - # Only allow string types - return false unless domain.is_a?(String) - - # Allow ".", it is the top level domain - return true if domain == '.' - - # Remove the final dot, if present. - domain.chomp!('.') - - # Check the whole domain - return false if domain.empty? - return false if domain.length > domain_max_length - - # Check each label in the domain - labels = domain.split('.') - vlabels = labels.each do |label| - break if label.length < label_min_length - break if label.length > label_max_length - break if label[-1..-1] == '-' - break if label[0..0] == '-' - break unless /^[a-z\d-]+$/i.match(label) - end - return vlabels == labels - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_float.rb b/modules/stdlib/lib/puppet/parser/functions/is_float.rb deleted file mode 100644 index a2da943..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_float.rb +++ /dev/null @@ -1,30 +0,0 @@ -# -# is_float.rb -# - -module Puppet::Parser::Functions - newfunction(:is_float, :type => :rvalue, :doc => <<-EOS -Returns true if the variable passed to this function is a float. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_float(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - value = arguments[0] - - # Only allow Numeric or String types - return false unless value.is_a?(Numeric) or value.is_a?(String) - - if value != value.to_f.to_s and !value.is_a? Float then - return false - else - return true - end - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_function_available.rb b/modules/stdlib/lib/puppet/parser/functions/is_function_available.rb deleted file mode 100644 index 6da82c8..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_function_available.rb +++ /dev/null @@ -1,26 +0,0 @@ -# -# is_function_available.rb -# - -module Puppet::Parser::Functions - newfunction(:is_function_available, :type => :rvalue, :doc => <<-EOS -This function accepts a string as an argument, determines whether the -Puppet runtime has access to a function by that name. It returns a -true if the function exists, false if not. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_function_available?(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - # Only allow String types - return false unless arguments[0].is_a?(String) - - function = Puppet::Parser::Functions.function(arguments[0].to_sym) - function.is_a?(String) and not function.empty? - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_hash.rb b/modules/stdlib/lib/puppet/parser/functions/is_hash.rb deleted file mode 100644 index ad907f0..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_hash.rb +++ /dev/null @@ -1,22 +0,0 @@ -# -# is_hash.rb -# - -module Puppet::Parser::Functions - newfunction(:is_hash, :type => :rvalue, :doc => <<-EOS -Returns true if the variable passed to this function is a hash. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "is_hash(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - type = arguments[0] - - result = type.is_a?(Hash) - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_integer.rb b/modules/stdlib/lib/puppet/parser/functions/is_integer.rb deleted file mode 100644 index c03d28d..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_integer.rb +++ /dev/null @@ -1,45 +0,0 @@ -# -# is_integer.rb -# - -module Puppet::Parser::Functions - newfunction(:is_integer, :type => :rvalue, :doc => <<-EOS -Returns true if the variable passed to this function is an Integer or -a decimal (base 10) integer in String form. The string may -start with a '-' (minus). A value of '0' is allowed, but a leading '0' digit may not -be followed by other digits as this indicates that the value is octal (base 8). - -If given any other argument `false` is returned. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_integer(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - value = arguments[0] - - # Regex is taken from the lexer of puppet - # puppet/pops/parser/lexer.rb but modified to match also - # negative values and disallow numbers prefixed with multiple - # 0's - # - # TODO these parameter should be a constant but I'm not sure - # if there is no risk to declare it inside of the module - # Puppet::Parser::Functions - - # Integer numbers like - # -1234568981273 - # 47291 - numeric = %r{^-?(?:(?:[1-9]\d*)|0)$} - - if value.is_a? Integer or (value.is_a? String and value.match numeric) - return true - else - return false - end - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb b/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb deleted file mode 100644 index a90adab..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb +++ /dev/null @@ -1,32 +0,0 @@ -# -# is_ip_address.rb -# - -module Puppet::Parser::Functions - newfunction(:is_ip_address, :type => :rvalue, :doc => <<-EOS -Returns true if the string passed to this function is a valid IP address. - EOS - ) do |arguments| - - require 'ipaddr' - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_ip_address(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - begin - ip = IPAddr.new(arguments[0]) - rescue ArgumentError - return false - end - - if ip.ipv4? or ip.ipv6? then - return true - else - return false - end - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb b/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb deleted file mode 100644 index 1b3088a..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb +++ /dev/null @@ -1,27 +0,0 @@ -# -# is_mac_address.rb -# - -module Puppet::Parser::Functions - newfunction(:is_mac_address, :type => :rvalue, :doc => <<-EOS -Returns true if the string passed to this function is a valid mac address. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_mac_address(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - mac = arguments[0] - - if /^[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}:[a-fA-F0-9]{1,2}$/.match(mac) then - return true - else - return false - end - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb b/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb deleted file mode 100644 index e7e1d2a..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb +++ /dev/null @@ -1,75 +0,0 @@ -# -# is_numeric.rb -# - -module Puppet::Parser::Functions - newfunction(:is_numeric, :type => :rvalue, :doc => <<-EOS -Returns true if the given argument is a Numeric (Integer or Float), -or a String containing either a valid integer in decimal base 10 form, or -a valid floating point string representation. - -The function recognizes only decimal (base 10) integers and float but not -integers in hex (base 16) or octal (base 8) form. - -The string representation may start with a '-' (minus). If a decimal '.' is used, -it must be followed by at least one digit. - -Valid examples: - - 77435 - 10e-12 - -8475 - 0.2343 - -23.561e3 - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "is_numeric(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - value = arguments[0] - - # Regex is taken from the lexer of puppet - # puppet/pops/parser/lexer.rb but modified to match also - # negative values and disallow invalid octal numbers or - # numbers prefixed with multiple 0's (except in hex numbers) - # - # TODO these parameters should be constants but I'm not sure - # if there is no risk to declare them inside of the module - # Puppet::Parser::Functions - - # TODO decide if this should be used - # HEX numbers like - # 0xaa230F - # 0X1234009C - # 0x0012 - # -12FcD - #numeric_hex = %r{^-?0[xX][0-9A-Fa-f]+$} - - # TODO decide if this should be used - # OCTAL numbers like - # 01234567 - # -045372 - #numeric_oct = %r{^-?0[1-7][0-7]*$} - - # Integer/Float numbers like - # -0.1234568981273 - # 47291 - # 42.12345e-12 - numeric = %r{^-?(?:(?:[1-9]\d*)|0)(?:\.\d+)?(?:[eE]-?\d+)?$} - - if value.is_a? Numeric or (value.is_a? String and ( - value.match(numeric) #or - # value.match(numeric_hex) or - # value.match(numeric_oct) - )) - return true - else - return false - end - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/is_string.rb b/modules/stdlib/lib/puppet/parser/functions/is_string.rb deleted file mode 100644 index f5bef04..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/is_string.rb +++ /dev/null @@ -1,26 +0,0 @@ -# -# is_string.rb -# - -module Puppet::Parser::Functions - newfunction(:is_string, :type => :rvalue, :doc => <<-EOS -Returns true if the variable passed to this function is a string. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "is_string(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - type = arguments[0] - - result = type.is_a?(String) - - if result and (type == type.to_f.to_s or type == type.to_i.to_s) then - return false - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/join.rb b/modules/stdlib/lib/puppet/parser/functions/join.rb deleted file mode 100644 index 6c0a6ba..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/join.rb +++ /dev/null @@ -1,41 +0,0 @@ -# -# join.rb -# - -module Puppet::Parser::Functions - newfunction(:join, :type => :rvalue, :doc => <<-EOS -This function joins an array into a string using a separator. - -*Examples:* - - join(['a','b','c'], ",") - -Would result in: "a,b,c" - EOS - ) do |arguments| - - # Technically we support two arguments but only first is mandatory ... - raise(Puppet::ParseError, "join(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - array = arguments[0] - - unless array.is_a?(Array) - raise(Puppet::ParseError, 'join(): Requires array to work with') - end - - suffix = arguments[1] if arguments[1] - - if suffix - unless suffix.is_a?(String) - raise(Puppet::ParseError, 'join(): Requires string to work with') - end - end - - result = suffix ? array.join(suffix) : array.join - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb b/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb deleted file mode 100644 index e9924fe..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -# join.rb -# - -module Puppet::Parser::Functions - newfunction(:join_keys_to_values, :type => :rvalue, :doc => <<-EOS -This function joins each key of a hash to that key's corresponding value with a -separator. Keys and values are cast to strings. The return value is an array in -which each element is one joined key/value pair. - -*Examples:* - - join_keys_to_values({'a'=>1,'b'=>2}, " is ") - -Would result in: ["a is 1","b is 2"] - EOS - ) do |arguments| - - # Validate the number of arguments. - if arguments.size != 2 - raise(Puppet::ParseError, "join_keys_to_values(): Takes exactly two " + - "arguments, but #{arguments.size} given.") - end - - # Validate the first argument. - hash = arguments[0] - if not hash.is_a?(Hash) - raise(TypeError, "join_keys_to_values(): The first argument must be a " + - "hash, but a #{hash.class} was given.") - end - - # Validate the second argument. - separator = arguments[1] - if not separator.is_a?(String) - raise(TypeError, "join_keys_to_values(): The second argument must be a " + - "string, but a #{separator.class} was given.") - end - - # Join the keys to their values. - hash.map do |k,v| - String(k) + separator + String(v) - end - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/keys.rb b/modules/stdlib/lib/puppet/parser/functions/keys.rb deleted file mode 100644 index f0d13b6..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/keys.rb +++ /dev/null @@ -1,26 +0,0 @@ -# -# keys.rb -# - -module Puppet::Parser::Functions - newfunction(:keys, :type => :rvalue, :doc => <<-EOS -Returns the keys of a hash as an array. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "keys(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - hash = arguments[0] - - unless hash.is_a?(Hash) - raise(Puppet::ParseError, 'keys(): Requires hash to work with') - end - - result = hash.keys - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb b/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb deleted file mode 100644 index 10c4005..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb +++ /dev/null @@ -1,20 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:loadyaml, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - Load a YAML file containing an array, string, or hash, and return the data - in the corresponding native data type. - - For example: - - $myhash = loadyaml('/etc/puppet/data/myhash.yaml') - ENDHEREDOC - - unless args.length == 1 - raise Puppet::ParseError, ("loadyaml(): wrong number of arguments (#{args.length}; must be 1)") - end - - YAML.load_file(args[0]) - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/lstrip.rb b/modules/stdlib/lib/puppet/parser/functions/lstrip.rb deleted file mode 100644 index 3a64de3..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/lstrip.rb +++ /dev/null @@ -1,33 +0,0 @@ -# -# lstrip.rb -# - -module Puppet::Parser::Functions - newfunction(:lstrip, :type => :rvalue, :doc => <<-EOS -Strips leading spaces to the left of a string. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "lstrip(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'lstrip(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.lstrip : i } - else - result = value.lstrip - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/max.rb b/modules/stdlib/lib/puppet/parser/functions/max.rb deleted file mode 100644 index 60fb94a..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/max.rb +++ /dev/null @@ -1,21 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:max, :type => :rvalue, :doc => <<-EOS - Returns the highest value of all arguments. - Requires at least one argument. - EOS - ) do |args| - - raise(Puppet::ParseError, "max(): Wrong number of arguments " + - "need at least one") if args.size == 0 - - # Sometimes we get numbers as numerics and sometimes as strings. - # We try to compare them as numbers when possible - return args.max do |a,b| - if a.to_s =~ /\A-?\d+(.\d+)?\z/ and b.to_s =~ /\A-?\d+(.\d+)?\z/ then - a.to_f <=> b.to_f - else - a.to_s <=> b.to_s - end - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/member.rb b/modules/stdlib/lib/puppet/parser/functions/member.rb deleted file mode 100644 index 43d76af..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/member.rb +++ /dev/null @@ -1,44 +0,0 @@ -# -# member.rb -# - -# TODO(Krzysztof Wilczynski): We need to add support for regular expression ... -# TODO(Krzysztof Wilczynski): Support for strings and hashes too ... - -module Puppet::Parser::Functions - newfunction(:member, :type => :rvalue, :doc => <<-EOS -This function determines if a variable is a member of an array. - -*Examples:* - - member(['a','b'], 'b') - -Would return: true - - member(['a','b'], 'c') - -Would return: false - EOS - ) do |arguments| - - raise(Puppet::ParseError, "member(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size < 2 - - array = arguments[0] - - unless array.is_a?(Array) - raise(Puppet::ParseError, 'member(): Requires array to work with') - end - - item = arguments[1] - - raise(Puppet::ParseError, 'member(): You must provide item ' + - 'to search for within array given') if item.empty? - - result = array.include?(item) - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/merge.rb b/modules/stdlib/lib/puppet/parser/functions/merge.rb deleted file mode 100644 index 1b39f20..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/merge.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:merge, :type => :rvalue, :doc => <<-'ENDHEREDOC') do |args| - Merges two or more hashes together and returns the resulting hash. - - For example: - - $hash1 = {'one' => 1, 'two', => 2} - $hash2 = {'two' => 'dos', 'three', => 'tres'} - $merged_hash = merge($hash1, $hash2) - # The resulting hash is equivalent to: - # $merged_hash = {'one' => 1, 'two' => 'dos', 'three' => 'tres'} - - When there is a duplicate key, the key in the rightmost hash will "win." - - ENDHEREDOC - - if args.length < 2 - raise Puppet::ParseError, ("merge(): wrong number of arguments (#{args.length}; must be at least 2)") - end - - # The hash we accumulate into - accumulator = Hash.new - # Merge into the accumulator hash - args.each do |arg| - next if arg.is_a? String and arg.empty? # empty string is synonym for puppet's undef - unless arg.is_a?(Hash) - raise Puppet::ParseError, "merge: unexpected argument type #{arg.class}, only expects hash arguments" - end - accumulator.merge!(arg) - end - # Return the fully merged hash - accumulator - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/min.rb b/modules/stdlib/lib/puppet/parser/functions/min.rb deleted file mode 100644 index 6bd6ebf..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/min.rb +++ /dev/null @@ -1,21 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:min, :type => :rvalue, :doc => <<-EOS - Returns the lowest value of all arguments. - Requires at least one argument. - EOS - ) do |args| - - raise(Puppet::ParseError, "min(): Wrong number of arguments " + - "need at least one") if args.size == 0 - - # Sometimes we get numbers as numerics and sometimes as strings. - # We try to compare them as numbers when possible - return args.min do |a,b| - if a.to_s =~ /\A^-?\d+(.\d+)?\z/ and b.to_s =~ /\A-?\d+(.\d+)?\z/ then - a.to_f <=> b.to_f - else - a.to_s <=> b.to_s - end - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/num2bool.rb b/modules/stdlib/lib/puppet/parser/functions/num2bool.rb deleted file mode 100644 index af0e6ed..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/num2bool.rb +++ /dev/null @@ -1,43 +0,0 @@ -# -# num2bool.rb -# - -module Puppet::Parser::Functions - newfunction(:num2bool, :type => :rvalue, :doc => <<-EOS -This function converts a number or a string representation of a number into a -true boolean. Zero or anything non-numeric becomes false. Numbers higher then 0 -become true. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "num2bool(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - number = arguments[0] - - case number - when Numeric - # Yay, it's a number - when String - begin - number = Float(number) - rescue ArgumentError => ex - raise(Puppet::ParseError, "num2bool(): '#{number}' does not look like a number: #{ex.message}") - end - else - begin - number = number.to_s - rescue NoMethodError => ex - raise(Puppet::ParseError, "num2bool(): Unable to parse argument: #{ex.message}") - end - end - - # Truncate Floats - number = number.to_i - - # Return true for any positive number and false otherwise - return number > 0 - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/parsejson.rb b/modules/stdlib/lib/puppet/parser/functions/parsejson.rb deleted file mode 100644 index a9a16a4..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/parsejson.rb +++ /dev/null @@ -1,24 +0,0 @@ -# -# parsejson.rb -# - -module Puppet::Parser::Functions - newfunction(:parsejson, :type => :rvalue, :doc => <<-EOS -This function accepts JSON as a string and converts into the correct Puppet -structure. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "parsejson(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - json = arguments[0] - - # PSON is natively available in puppet - PSON.load(json) - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb b/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb deleted file mode 100644 index 53d54fa..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb +++ /dev/null @@ -1,24 +0,0 @@ -# -# parseyaml.rb -# - -module Puppet::Parser::Functions - newfunction(:parseyaml, :type => :rvalue, :doc => <<-EOS -This function accepts YAML as a string and converts it into the correct -Puppet structure. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "parseyaml(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - require 'yaml' - - YAML::load(arguments[0]) - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/pick.rb b/modules/stdlib/lib/puppet/parser/functions/pick.rb deleted file mode 100644 index fdd0aef..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/pick.rb +++ /dev/null @@ -1,29 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:pick, :type => :rvalue, :doc => <<-EOS - -This function is similar to a coalesce function in SQL in that it will return -the first value in a list of values that is not undefined or an empty string -(two things in Puppet that will return a boolean false value). Typically, -this function is used to check for a value in the Puppet Dashboard/Enterprise -Console, and failover to a default value like the following: - - $real_jenkins_version = pick($::jenkins_version, '1.449') - -The value of $real_jenkins_version will first look for a top-scope variable -called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ -Enterprise Console are brought into Puppet as top-scope variables), and, -failing that, will use a default value of 1.449. - -EOS -) do |args| - args = args.compact - args.delete(:undef) - args.delete(:undefined) - args.delete("") - if args[0].to_s.empty? then - fail Puppet::ParseError, "pick(): must receive at least one non empty value" - else - return args[0] - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/pick_default.rb b/modules/stdlib/lib/puppet/parser/functions/pick_default.rb deleted file mode 100644 index 36e33ab..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/pick_default.rb +++ /dev/null @@ -1,35 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:pick_default, :type => :rvalue, :doc => <<-EOS - -This function is similar to a coalesce function in SQL in that it will return -the first value in a list of values that is not undefined or an empty string -(two things in Puppet that will return a boolean false value). If no value is -found, it will return the last argument. - -Typically, this function is used to check for a value in the Puppet -Dashboard/Enterprise Console, and failover to a default value like the -following: - - $real_jenkins_version = pick_default($::jenkins_version, '1.449') - -The value of $real_jenkins_version will first look for a top-scope variable -called 'jenkins_version' (note that parameters set in the Puppet Dashboard/ -Enterprise Console are brought into Puppet as top-scope variables), and, -failing that, will use a default value of 1.449. - -Note that, contrary to the pick() function, the pick_default does not fail if -all arguments are empty. This allows pick_default to use an empty value as -default. - -EOS -) do |args| - fail "Must receive at least one argument." if args.empty? - default = args.last - args = args[0..-2].compact - args.delete(:undef) - args.delete(:undefined) - args.delete("") - args << default - return args[0] - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/prefix.rb b/modules/stdlib/lib/puppet/parser/functions/prefix.rb deleted file mode 100644 index d02286a..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/prefix.rb +++ /dev/null @@ -1,45 +0,0 @@ -# -# prefix.rb -# - -module Puppet::Parser::Functions - newfunction(:prefix, :type => :rvalue, :doc => <<-EOS -This function applies a prefix to all elements in an array. - -*Examples:* - - prefix(['a','b','c'], 'p') - -Will return: ['pa','pb','pc'] - EOS - ) do |arguments| - - # Technically we support two arguments but only first is mandatory ... - raise(Puppet::ParseError, "prefix(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - array = arguments[0] - - unless array.is_a?(Array) - raise Puppet::ParseError, "prefix(): expected first argument to be an Array, got #{array.inspect}" - end - - prefix = arguments[1] if arguments[1] - - if prefix - unless prefix.is_a?(String) - raise Puppet::ParseError, "prefix(): expected second argument to be a String, got #{prefix.inspect}" - end - end - - # Turn everything into string same as join would do ... - result = array.collect do |i| - i = i.to_s - prefix ? prefix + i : i - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/range.rb b/modules/stdlib/lib/puppet/parser/functions/range.rb deleted file mode 100644 index ffbdf84..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/range.rb +++ /dev/null @@ -1,88 +0,0 @@ -# -# range.rb -# - -# TODO(Krzysztof Wilczynski): We probably need to approach numeric values differently ... - -module Puppet::Parser::Functions - newfunction(:range, :type => :rvalue, :doc => <<-EOS -When given range in the form of (start, stop) it will extrapolate a range as -an array. - -*Examples:* - - range("0", "9") - -Will return: [0,1,2,3,4,5,6,7,8,9] - - range("00", "09") - -Will return: [0,1,2,3,4,5,6,7,8,9] (Zero padded strings are converted to -integers automatically) - - range("a", "c") - -Will return: ["a","b","c"] - - range("host01", "host10") - -Will return: ["host01", "host02", ..., "host09", "host10"] - -Passing a third argument will cause the generated range to step by that -interval, e.g. - - range("0", "9", "2") - -Will return: [0,2,4,6,8] - EOS - ) do |arguments| - - # We support more than one argument but at least one is mandatory ... - raise(Puppet::ParseError, "range(): Wrong number of " + - "arguments given (#{arguments.size} for 1)") if arguments.size < 1 - - if arguments.size > 1 - start = arguments[0] - stop = arguments[1] - step = arguments[2].nil? ? 1 : arguments[2].to_i.abs - - type = '..' # We select simplest type for Range available in Ruby ... - - elsif arguments.size > 0 - value = arguments[0] - - if m = value.match(/^(\w+)(\.\.\.?|\-)(\w+)$/) - start = m[1] - stop = m[3] - - type = m[2] - - elsif value.match(/^.+$/) - raise(Puppet::ParseError, 'range(): Unable to compute range ' + - 'from the value given') - else - raise(Puppet::ParseError, 'range(): Unknown format of range given') - end - end - - # Check whether we have integer value if so then make it so ... - if start.match(/^\d+$/) - start = start.to_i - stop = stop.to_i - else - start = start.to_s - stop = stop.to_s - end - - range = case type - when /^(\.\.|\-)$/ then (start .. stop) - when /^(\.\.\.)$/ then (start ... stop) # Exclusive of last element ... - end - - result = range.step(step).collect { |i| i } # Get them all ... Pokemon ... - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/reject.rb b/modules/stdlib/lib/puppet/parser/functions/reject.rb deleted file mode 100644 index 1953ffc..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/reject.rb +++ /dev/null @@ -1,31 +0,0 @@ -# -# reject.rb -# - -module Puppet::Parser::Functions - newfunction(:reject, :type => :rvalue, :doc => <<-EOS) do |args| -This function searches through an array and rejects all elements that match -the provided regular expression. - -*Examples:* - - reject(['aaa','bbb','ccc','aaaddd'], 'aaa') - -Would return: - - ['bbb','ccc'] -EOS - - if (args.size != 2) - raise Puppet::ParseError, - "reject(): Wrong number of arguments given #{args.size} for 2" - end - - ary = args[0] - pattern = Regexp.new(args[1]) - - ary.reject { |e| e =~ pattern } - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/reverse.rb b/modules/stdlib/lib/puppet/parser/functions/reverse.rb deleted file mode 100644 index fe04869..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/reverse.rb +++ /dev/null @@ -1,28 +0,0 @@ -# -# reverse.rb -# - -module Puppet::Parser::Functions - newfunction(:reverse, :type => :rvalue, :doc => <<-EOS -Reverses the order of a string or array. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "reverse(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'reverse(): Requires either ' + - 'array or string to work with') - end - - result = value.reverse - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/rstrip.rb b/modules/stdlib/lib/puppet/parser/functions/rstrip.rb deleted file mode 100644 index 29b0998..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/rstrip.rb +++ /dev/null @@ -1,32 +0,0 @@ -# -# rstrip.rb -# - -module Puppet::Parser::Functions - newfunction(:rstrip, :type => :rvalue, :doc => <<-EOS -Strips leading spaces to the right of the string. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "rstrip(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'rstrip(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - result = value.collect { |i| i.is_a?(String) ? i.rstrip : i } - else - result = value.rstrip - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/shuffle.rb b/modules/stdlib/lib/puppet/parser/functions/shuffle.rb deleted file mode 100644 index 18134ab..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/shuffle.rb +++ /dev/null @@ -1,46 +0,0 @@ -# -# shuffle.rb -# - -module Puppet::Parser::Functions - newfunction(:shuffle, :type => :rvalue, :doc => <<-EOS -Randomizes the order of a string or array elements. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "shuffle(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'shuffle(): Requires either ' + - 'array or string to work with') - end - - result = value.clone - - string = value.is_a?(String) ? true : false - - # Check whether it makes sense to shuffle ... - return result if result.size <= 1 - - # We turn any string value into an array to be able to shuffle ... - result = string ? result.split('') : result - - elements = result.size - - # Simple implementation of Fisher–Yates in-place shuffle ... - elements.times do |i| - j = rand(elements - i) + i - result[j], result[i] = result[i], result[j] - end - - result = string ? result.join : result - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/size.rb b/modules/stdlib/lib/puppet/parser/functions/size.rb deleted file mode 100644 index cc207e3..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/size.rb +++ /dev/null @@ -1,48 +0,0 @@ -# -# size.rb -# - -# TODO(Krzysztof Wilczynski): Support for hashes would be nice too ... - -module Puppet::Parser::Functions - newfunction(:size, :type => :rvalue, :doc => <<-EOS -Returns the number of elements in a string or array. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "size(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - item = arguments[0] - - if item.is_a?(String) - - begin - # - # Check whether your item is a numeric value or not ... - # This will take care about positive and/or negative numbers - # for both integer and floating-point values ... - # - # Please note that Puppet has no notion of hexadecimal - # nor octal numbers for its DSL at this point in time ... - # - Float(item) - - raise(Puppet::ParseError, 'size(): Requires either ' + - 'string or array to work with') - - rescue ArgumentError - result = item.size - end - - elsif item.is_a?(Array) - result = item.size - else - raise(Puppet::ParseError, 'size(): Unknown type given') - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/sort.rb b/modules/stdlib/lib/puppet/parser/functions/sort.rb deleted file mode 100644 index cefbe54..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/sort.rb +++ /dev/null @@ -1,27 +0,0 @@ -# -# sort.rb -# - -module Puppet::Parser::Functions - newfunction(:sort, :type => :rvalue, :doc => <<-EOS -Sorts strings and arrays lexically. - EOS - ) do |arguments| - - if (arguments.size != 1) then - raise(Puppet::ParseError, "sort(): Wrong number of arguments "+ - "given #{arguments.size} for 1") - end - - value = arguments[0] - - if value.is_a?(Array) then - value.sort - elsif value.is_a?(String) then - value.split("").sort.join("") - end - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/squeeze.rb b/modules/stdlib/lib/puppet/parser/functions/squeeze.rb deleted file mode 100644 index 81fadfd..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/squeeze.rb +++ /dev/null @@ -1,36 +0,0 @@ -# -# squeeze.rb -# - -module Puppet::Parser::Functions - newfunction(:squeeze, :type => :rvalue, :doc => <<-EOS -Returns a new string where runs of the same character that occur in this set are replaced by a single character. - EOS - ) do |arguments| - - if ((arguments.size != 2) and (arguments.size != 1)) then - raise(Puppet::ParseError, "squeeze(): Wrong number of arguments "+ - "given #{arguments.size} for 2 or 1") - end - - item = arguments[0] - squeezeval = arguments[1] - - if item.is_a?(Array) then - if squeezeval then - item.collect { |i| i.squeeze(squeezeval) } - else - item.collect { |i| i.squeeze } - end - else - if squeezeval then - item.squeeze(squeezeval) - else - item.squeeze - end - end - - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/str2bool.rb b/modules/stdlib/lib/puppet/parser/functions/str2bool.rb deleted file mode 100644 index 446732e..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/str2bool.rb +++ /dev/null @@ -1,46 +0,0 @@ -# -# str2bool.rb -# - -module Puppet::Parser::Functions - newfunction(:str2bool, :type => :rvalue, :doc => <<-EOS -This converts a string to a boolean. This attempt to convert strings that -contain things like: y, 1, t, true to 'true' and strings that contain things -like: 0, f, n, false, no to 'false'. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "str2bool(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - string = arguments[0] - - # If string is already Boolean, return it - if !!string == string - return string - end - - unless string.is_a?(String) - raise(Puppet::ParseError, 'str2bool(): Requires either ' + - 'string to work with') - end - - # We consider all the yes, no, y, n and so on too ... - result = case string - # - # This is how undef looks like in Puppet ... - # We yield false in this case. - # - when /^$/, '' then false # Empty string will be false ... - when /^(1|t|y|true|yes)$/ then true - when /^(0|f|n|false|no)$/ then false - when /^(undef|undefined)$/ then false # This is not likely to happen ... - else - raise(Puppet::ParseError, 'str2bool(): Unknown type of boolean given') - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb b/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb deleted file mode 100644 index 7fe7b01..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb +++ /dev/null @@ -1,32 +0,0 @@ -# -# str2saltedsha512.rb -# - -module Puppet::Parser::Functions - newfunction(:str2saltedsha512, :type => :rvalue, :doc => <<-EOS -This converts a string to a salted-SHA512 password hash (which is used for -OS X versions >= 10.7). Given any simple string, you will get a hex version -of a salted-SHA512 password hash that can be inserted into your Puppet -manifests as a valid password attribute. - EOS - ) do |arguments| - require 'digest/sha2' - - raise(Puppet::ParseError, "str2saltedsha512(): Wrong number of arguments " + - "passed (#{arguments.size} but we require 1)") if arguments.size != 1 - - password = arguments[0] - - unless password.is_a?(String) - raise(Puppet::ParseError, 'str2saltedsha512(): Requires a ' + - "String argument, you passed: #{password.class}") - end - - seedint = rand(2**31 - 1) - seedstring = Array(seedint).pack("L") - saltedpass = Digest::SHA512.digest(seedstring + password) - (seedstring + saltedpass).unpack('H*')[0] - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/strftime.rb b/modules/stdlib/lib/puppet/parser/functions/strftime.rb deleted file mode 100644 index 0b52ade..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/strftime.rb +++ /dev/null @@ -1,107 +0,0 @@ -# -# strftime.rb -# - -module Puppet::Parser::Functions - newfunction(:strftime, :type => :rvalue, :doc => <<-EOS -This function returns formatted time. - -*Examples:* - -To return the time since epoch: - - strftime("%s") - -To return the date: - - strftime("%Y-%m-%d") - -*Format meaning:* - - %a - The abbreviated weekday name (``Sun'') - %A - The full weekday name (``Sunday'') - %b - The abbreviated month name (``Jan'') - %B - The full month name (``January'') - %c - The preferred local date and time representation - %C - Century (20 in 2009) - %d - Day of the month (01..31) - %D - Date (%m/%d/%y) - %e - Day of the month, blank-padded ( 1..31) - %F - Equivalent to %Y-%m-%d (the ISO 8601 date format) - %h - Equivalent to %b - %H - Hour of the day, 24-hour clock (00..23) - %I - Hour of the day, 12-hour clock (01..12) - %j - Day of the year (001..366) - %k - hour, 24-hour clock, blank-padded ( 0..23) - %l - hour, 12-hour clock, blank-padded ( 0..12) - %L - Millisecond of the second (000..999) - %m - Month of the year (01..12) - %M - Minute of the hour (00..59) - %n - Newline (\n) - %N - Fractional seconds digits, default is 9 digits (nanosecond) - %3N millisecond (3 digits) - %6N microsecond (6 digits) - %9N nanosecond (9 digits) - %p - Meridian indicator (``AM'' or ``PM'') - %P - Meridian indicator (``am'' or ``pm'') - %r - time, 12-hour (same as %I:%M:%S %p) - %R - time, 24-hour (%H:%M) - %s - Number of seconds since 1970-01-01 00:00:00 UTC. - %S - Second of the minute (00..60) - %t - Tab character (\t) - %T - time, 24-hour (%H:%M:%S) - %u - Day of the week as a decimal, Monday being 1. (1..7) - %U - Week number of the current year, - starting with the first Sunday as the first - day of the first week (00..53) - %v - VMS date (%e-%b-%Y) - %V - Week number of year according to ISO 8601 (01..53) - %W - Week number of the current year, - starting with the first Monday as the first - day of the first week (00..53) - %w - Day of the week (Sunday is 0, 0..6) - %x - Preferred representation for the date alone, no time - %X - Preferred representation for the time alone, no date - %y - Year without a century (00..99) - %Y - Year with century - %z - Time zone as hour offset from UTC (e.g. +0900) - %Z - Time zone name - %% - Literal ``%'' character - EOS - ) do |arguments| - - # Technically we support two arguments but only first is mandatory ... - raise(Puppet::ParseError, "strftime(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - format = arguments[0] - - raise(Puppet::ParseError, 'strftime(): You must provide ' + - 'format for evaluation') if format.empty? - - # The Time Zone argument is optional ... - time_zone = arguments[1] if arguments[1] - - time = Time.new - - # There is probably a better way to handle Time Zone ... - if time_zone and not time_zone.empty? - original_zone = ENV['TZ'] - - local_time = time.clone - local_time = local_time.utc - - ENV['TZ'] = time_zone - - time = local_time.localtime - - ENV['TZ'] = original_zone - end - - result = time.strftime(format) - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/strip.rb b/modules/stdlib/lib/puppet/parser/functions/strip.rb deleted file mode 100644 index 5f4630d..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/strip.rb +++ /dev/null @@ -1,39 +0,0 @@ -# -# strip.rb -# - -module Puppet::Parser::Functions - newfunction(:strip, :type => :rvalue, :doc => <<-EOS -This function removes leading and trailing whitespace from a string or from -every string inside an array. - -*Examples:* - - strip(" aaa ") - -Would result in: "aaa" - EOS - ) do |arguments| - - raise(Puppet::ParseError, "strip(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'strip(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - result = value.collect { |i| i.is_a?(String) ? i.strip : i } - else - result = value.strip - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/suffix.rb b/modules/stdlib/lib/puppet/parser/functions/suffix.rb deleted file mode 100644 index f7792d6..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/suffix.rb +++ /dev/null @@ -1,45 +0,0 @@ -# -# suffix.rb -# - -module Puppet::Parser::Functions - newfunction(:suffix, :type => :rvalue, :doc => <<-EOS -This function applies a suffix to all elements in an array. - -*Examples:* - - suffix(['a','b','c'], 'p') - -Will return: ['ap','bp','cp'] - EOS - ) do |arguments| - - # Technically we support two arguments but only first is mandatory ... - raise(Puppet::ParseError, "suffix(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - array = arguments[0] - - unless array.is_a?(Array) - raise Puppet::ParseError, "suffix(): expected first argument to be an Array, got #{array.inspect}" - end - - suffix = arguments[1] if arguments[1] - - if suffix - unless suffix.is_a? String - raise Puppet::ParseError, "suffix(): expected second argument to be a String, got #{suffix.inspect}" - end - end - - # Turn everything into string same as join would do ... - result = array.collect do |i| - i = i.to_s - suffix ? i + suffix : i - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/swapcase.rb b/modules/stdlib/lib/puppet/parser/functions/swapcase.rb deleted file mode 100644 index b9e6632..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/swapcase.rb +++ /dev/null @@ -1,39 +0,0 @@ -# -# swapcase.rb -# - -module Puppet::Parser::Functions - newfunction(:swapcase, :type => :rvalue, :doc => <<-EOS -This function will swap the existing case of a string. - -*Examples:* - - swapcase("aBcD") - -Would result in: "AbCd" - EOS - ) do |arguments| - - raise(Puppet::ParseError, "swapcase(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'swapcase(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.swapcase : i } - else - result = value.swapcase - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/time.rb b/modules/stdlib/lib/puppet/parser/functions/time.rb deleted file mode 100644 index 0cddaf8..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/time.rb +++ /dev/null @@ -1,49 +0,0 @@ -# -# time.rb -# - -module Puppet::Parser::Functions - newfunction(:time, :type => :rvalue, :doc => <<-EOS -This function will return the current time since epoch as an integer. - -*Examples:* - - time() - -Will return something like: 1311972653 - EOS - ) do |arguments| - - # The Time Zone argument is optional ... - time_zone = arguments[0] if arguments[0] - - if (arguments.size != 0) and (arguments.size != 1) then - 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 and not time_zone.empty? - original_zone = ENV['TZ'] - - local_time = time.clone - local_time = local_time.utc - - ENV['TZ'] = time_zone - - time = local_time.localtime - - ENV['TZ'] = original_zone - end - - # Calling Time#to_i on a receiver changes it. Trust me I am the Doctor. - result = time.strftime('%s') - result = result.to_i - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb b/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb deleted file mode 100644 index 8ff73d1..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb +++ /dev/null @@ -1,28 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:to_bytes, :type => :rvalue, :doc => <<-EOS - Converts the argument into bytes, for example 4 kB becomes 4096. - Takes a single string value as an argument. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "to_bytes(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size != 1 - - arg = arguments[0] - - return arg if arg.is_a? Numeric - - value,prefix = */([0-9.e+-]*)\s*([^bB]?)/.match(arg)[1,2] - - value = value.to_f - case prefix - when '' then return value.to_i - when 'k' then return (value*(1<<10)).to_i - when 'M' then return (value*(1<<20)).to_i - when 'G' then return (value*(1<<30)).to_i - when 'T' then return (value*(1<<40)).to_i - when 'E' then return (value*(1<<50)).to_i - else raise Puppet::ParseError, "to_bytes(): Unknown prefix #{prefix}" - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/type.rb b/modules/stdlib/lib/puppet/parser/functions/type.rb deleted file mode 100644 index 8d85f11..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/type.rb +++ /dev/null @@ -1,50 +0,0 @@ -# -# type.rb -# - -module Puppet::Parser::Functions - newfunction(:type, :type => :rvalue, :doc => <<-EOS -Returns the type when passed a variable. Type can be one of: - -* string -* array -* hash -* float -* integer -* boolean - EOS - ) do |arguments| - - raise(Puppet::ParseError, "type(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - - klass = value.class - - if not [TrueClass, FalseClass, Array, Bignum, Fixnum, Float, Hash, String].include?(klass) - raise(Puppet::ParseError, 'type(): Unknown type') - end - - klass = klass.to_s # Ugly ... - - # We note that Integer is the parent to Bignum and Fixnum ... - result = case klass - when /^(?:Big|Fix)num$/ then 'integer' - when /^(?:True|False)Class$/ then 'boolean' - else klass - end - - if result == "String" then - if value == value.to_i.to_s then - result = "Integer" - elsif value == value.to_f.to_s then - result = "Float" - end - end - - return result.downcase - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/union.rb b/modules/stdlib/lib/puppet/parser/functions/union.rb deleted file mode 100644 index c91bb80..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/union.rb +++ /dev/null @@ -1,34 +0,0 @@ -# -# union.rb -# - -module Puppet::Parser::Functions - newfunction(:union, :type => :rvalue, :doc => <<-EOS -This function returns a union of two arrays. - -*Examples:* - - union(["a","b","c"],["b","c","d"]) - -Would return: ["a","b","c","d"] - EOS - ) do |arguments| - - # Two arguments are required - raise(Puppet::ParseError, "union(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size != 2 - - first = arguments[0] - second = arguments[1] - - unless first.is_a?(Array) && second.is_a?(Array) - raise(Puppet::ParseError, 'union(): Requires 2 arrays') - end - - result = first | second - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/unique.rb b/modules/stdlib/lib/puppet/parser/functions/unique.rb deleted file mode 100644 index 8844a74..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/unique.rb +++ /dev/null @@ -1,51 +0,0 @@ -# -# unique.rb -# - -module Puppet::Parser::Functions - newfunction(:unique, :type => :rvalue, :doc => <<-EOS -This function will remove duplicates from strings and arrays. - -*Examples:* - - unique("aabbcc") - -Will return: - - abc - -You can also use this with arrays: - - unique(["a","a","b","b","c","c"]) - -This returns: - - ["a","b","c"] - EOS - ) do |arguments| - - raise(Puppet::ParseError, "unique(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'unique(): Requires either ' + - 'array or string to work with') - end - - result = value.clone - - string = value.is_a?(String) ? true : false - - # We turn any string value into an array to be able to shuffle ... - result = string ? result.split('') : result - result = result.uniq # Remove duplicates ... - result = string ? result.join : result - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/upcase.rb b/modules/stdlib/lib/puppet/parser/functions/upcase.rb deleted file mode 100644 index fe6cadc..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/upcase.rb +++ /dev/null @@ -1,41 +0,0 @@ -# -# upcase.rb -# - -module Puppet::Parser::Functions - newfunction(:upcase, :type => :rvalue, :doc => <<-EOS -Converts a string or an array of strings to uppercase. - -*Examples:* - - upcase("abcd") - -Will return: - - ASDF - EOS - ) do |arguments| - - raise(Puppet::ParseError, "upcase(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'upcase(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? i.upcase : i } - else - result = value.upcase - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/uriescape.rb b/modules/stdlib/lib/puppet/parser/functions/uriescape.rb deleted file mode 100644 index 0d81de5..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/uriescape.rb +++ /dev/null @@ -1,35 +0,0 @@ -# -# uriescape.rb -# -require 'uri' - -module Puppet::Parser::Functions - newfunction(:uriescape, :type => :rvalue, :doc => <<-EOS - Urlencodes a string or array of strings. - Requires either a single string or an array as an input. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "uriescape(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - value = arguments[0] - klass = value.class - - unless [Array, String].include?(klass) - raise(Puppet::ParseError, 'uriescape(): Requires either ' + - 'array or string to work with') - end - - if value.is_a?(Array) - # Numbers in Puppet are often string-encoded which is troublesome ... - result = value.collect { |i| i.is_a?(String) ? URI.escape(i,unsafe) : i } - else - result = URI.escape(value) - end - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb b/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb deleted file mode 100644 index fe27974..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb +++ /dev/null @@ -1,56 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:validate_absolute_path, :doc => <<-'ENDHEREDOC') do |args| - Validate the string represents an absolute path in the filesystem. This function works - for windows and unix style paths. - - The following values will pass: - - $my_path = "C:/Program Files (x86)/Puppet Labs/Puppet" - validate_absolute_path($my_path) - $my_path2 = "/var/lib/puppet" - validate_absolute_path($my_path2) - - - The following values will fail, causing compilation to abort: - - validate_absolute_path(true) - validate_absolute_path([ 'var/lib/puppet', '/var/foo' ]) - validate_absolute_path([ '/var/lib/puppet', 'var/foo' ]) - $undefined = undef - validate_absolute_path($undefined) - - ENDHEREDOC - - require 'puppet/util' - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_absolute_path(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - # This logic was borrowed from - # [lib/puppet/file_serving/base.rb](https://github.com/puppetlabs/puppet/blob/master/lib/puppet/file_serving/base.rb) - - # Puppet 2.7 and beyond will have Puppet::Util.absolute_path? Fall back to a back-ported implementation otherwise. - if Puppet::Util.respond_to?(:absolute_path?) then - unless Puppet::Util.absolute_path?(arg, :posix) or Puppet::Util.absolute_path?(arg, :windows) - raise Puppet::ParseError, ("#{arg.inspect} is not an absolute path.") - end - else - # This code back-ported from 2.7.x's lib/puppet/util.rb Puppet::Util.absolute_path? - # Determine in a platform-specific way whether a path is absolute. This - # defaults to the local platform if none is specified. - # Escape once for the string literal, and once for the regex. - slash = '[\\\\/]' - name = '[^\\\\/]+' - regexes = { - :windows => %r!^(([A-Z]:#{slash})|(#{slash}#{slash}#{name}#{slash}#{name})|(#{slash}#{slash}\?#{slash}#{name}))!i, - :posix => %r!^/!, - } - - rval = (!!(arg =~ regexes[:posix])) || (!!(arg =~ regexes[:windows])) - rval or raise Puppet::ParseError, ("#{arg.inspect} is not an absolute path.") - end - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_array.rb b/modules/stdlib/lib/puppet/parser/functions/validate_array.rb deleted file mode 100644 index 34b5118..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_array.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_array, :doc => <<-'ENDHEREDOC') do |args| - Validate that all passed values are array data structures. Abort catalog - compilation if any value fails this check. - - The following values will pass: - - $my_array = [ 'one', 'two' ] - validate_array($my_array) - - The following values will fail, causing compilation to abort: - - validate_array(true) - validate_array('some_string') - $undefined = undef - validate_array($undefined) - - ENDHEREDOC - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_array(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - unless arg.is_a?(Array) - raise Puppet::ParseError, ("#{arg.inspect} is not an Array. It looks to be a #{arg.class}") - end - end - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_augeas.rb b/modules/stdlib/lib/puppet/parser/functions/validate_augeas.rb deleted file mode 100644 index 154d660..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_augeas.rb +++ /dev/null @@ -1,81 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:validate_augeas, :doc => <<-'ENDHEREDOC') do |args| - Perform validation of a string using an Augeas lens - The first argument of this function should be a string to - test, and the second argument should be the name of the Augeas lens to use. - If Augeas fails to parse the string with the lens, the compilation will - abort with a parse error. - - A third argument can be specified, listing paths which should - not be found in the file. The `$file` variable points to the location - of the temporary file being tested in the Augeas tree. - - For example, if you want to make sure your passwd content never contains - a user `foo`, you could write: - - validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo']) - - Or if you wanted to ensure that no users used the '/bin/barsh' shell, - you could use: - - validate_augeas($passwdcontent, 'Passwd.lns', ['$file/*[shell="/bin/barsh"]'] - - If a fourth argument is specified, this will be the error message raised and - seen by the user. - - A helpful error message can be returned like this: - - validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas') - - ENDHEREDOC - unless Puppet.features.augeas? - raise Puppet::ParseError, ("validate_augeas(): this function requires the augeas feature. See http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Augeas#Pre-requisites for how to activate it.") - end - - if (args.length < 2) or (args.length > 4) then - raise Puppet::ParseError, ("validate_augeas(): wrong number of arguments (#{args.length}; must be 2, 3, or 4)") - end - - msg = args[3] || "validate_augeas(): Failed to validate content against #{args[1].inspect}" - - require 'augeas' - aug = Augeas::open(nil, nil, Augeas::NO_MODL_AUTOLOAD) - begin - content = args[0] - - # Test content in a temporary file - tmpfile = Tempfile.new("validate_augeas") - begin - tmpfile.write(content) - ensure - tmpfile.close - end - - # Check for syntax - lens = args[1] - aug.transform( - :lens => lens, - :name => 'Validate_augeas', - :incl => tmpfile.path - ) - aug.load! - - unless aug.match("/augeas/files#{tmpfile.path}//error").empty? - error = aug.get("/augeas/files#{tmpfile.path}//error/message") - msg += " with error: #{error}" - raise Puppet::ParseError, (msg) - end - - # Launch unit tests - tests = args[2] || [] - aug.defvar('file', "/files#{tmpfile.path}") - tests.each do |t| - msg += " testing path #{t}" - raise Puppet::ParseError, (msg) unless aug.match(t).empty? - end - ensure - aug.close - tmpfile.unlink - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb b/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb deleted file mode 100644 index 59a0805..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb +++ /dev/null @@ -1,34 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_bool, :doc => <<-'ENDHEREDOC') do |args| - Validate that all passed values are either true or false. Abort catalog - compilation if any value fails this check. - - The following values will pass: - - $iamtrue = true - validate_bool(true) - validate_bool(true, true, false, $iamtrue) - - The following values will fail, causing compilation to abort: - - $some_array = [ true ] - validate_bool("false") - validate_bool("true") - validate_bool($some_array) - - ENDHEREDOC - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_bool(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - unless function_is_bool([arg]) - raise Puppet::ParseError, ("#{arg.inspect} is not a boolean. It looks to be a #{arg.class}") - end - end - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_cmd.rb b/modules/stdlib/lib/puppet/parser/functions/validate_cmd.rb deleted file mode 100644 index 2ebe91c..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_cmd.rb +++ /dev/null @@ -1,48 +0,0 @@ -require 'puppet/util/execution' - -module Puppet::Parser::Functions - newfunction(:validate_cmd, :doc => <<-'ENDHEREDOC') do |args| - Perform validation of a string with an external command. - The first argument of this function should be a string to - test, and the second argument should be a path to a test command - taking a file as last argument. If the command, launched against - a tempfile containing the passed string, returns a non-null value, - compilation will abort with a parse error. - - If a third argument is specified, this will be the error message raised and - seen by the user. - - A helpful error message can be returned like this: - - Example: - - validate_cmd($sudoerscontent, '/usr/sbin/visudo -c -f', 'Visudo failed to validate sudoers content') - - ENDHEREDOC - if (args.length < 2) or (args.length > 3) then - raise Puppet::ParseError, ("validate_cmd(): wrong number of arguments (#{args.length}; must be 2 or 3)") - end - - msg = args[2] || "validate_cmd(): failed to validate content with command #{args[1].inspect}" - - content = args[0] - checkscript = args[1] - - # Test content in a temporary file - tmpfile = Tempfile.new("validate_cmd") - begin - tmpfile.write(content) - tmpfile.close - if Puppet::Util::Execution.respond_to?('execute') - Puppet::Util::Execution.execute("#{checkscript} #{tmpfile.path}") - else - Puppet::Util.execute("#{checkscript} #{tmpfile.path}") - end - rescue Puppet::ExecutionFailure => detail - msg += "\n#{detail}" - raise Puppet::ParseError, msg - ensure - tmpfile.unlink - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb b/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb deleted file mode 100644 index 9bdd543..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_hash, :doc => <<-'ENDHEREDOC') do |args| - Validate that all passed values are hash data structures. Abort catalog - compilation if any value fails this check. - - The following values will pass: - - $my_hash = { 'one' => 'two' } - validate_hash($my_hash) - - The following values will fail, causing compilation to abort: - - validate_hash(true) - validate_hash('some_string') - $undefined = undef - validate_hash($undefined) - - ENDHEREDOC - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_hash(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - unless arg.is_a?(Hash) - raise Puppet::ParseError, ("#{arg.inspect} is not a Hash. It looks to be a #{arg.class}") - end - end - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_ipv4_address.rb b/modules/stdlib/lib/puppet/parser/functions/validate_ipv4_address.rb deleted file mode 100644 index fc02748..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_ipv4_address.rb +++ /dev/null @@ -1,48 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_ipv4_address, :doc => <<-ENDHEREDOC - Validate that all values passed are valid IPv4 addresses. - Fail compilation if any value fails this check. - - The following values will pass: - - $my_ip = "1.2.3.4" - validate_ipv4_address($my_ip) - validate_bool("8.8.8.8", "172.16.0.1", $my_ip) - - The following values will fail, causing compilation to abort: - - $some_array = [ 1, true, false, "garbage string", "3ffe:505:2" ] - validate_ipv4_address($some_array) - - ENDHEREDOC - ) do |args| - - require "ipaddr" - rescuable_exceptions = [ ArgumentError ] - - if defined?(IPAddr::InvalidAddressError) - rescuable_exceptions << IPAddr::InvalidAddressError - end - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_ipv4_address(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - unless arg.is_a?(String) - raise Puppet::ParseError, "#{arg.inspect} is not a string." - end - - begin - unless IPAddr.new(arg).ipv4? - raise Puppet::ParseError, "#{arg.inspect} is not a valid IPv4 address." - end - rescue *rescuable_exceptions - raise Puppet::ParseError, "#{arg.inspect} is not a valid IPv4 address." - end - end - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_ipv6_address.rb b/modules/stdlib/lib/puppet/parser/functions/validate_ipv6_address.rb deleted file mode 100644 index b0f2558..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_ipv6_address.rb +++ /dev/null @@ -1,49 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_ipv6_address, :doc => <<-ENDHEREDOC - Validate that all values passed are valid IPv6 addresses. - Fail compilation if any value fails this check. - - The following values will pass: - - $my_ip = "3ffe:505:2" - validate_ipv6_address(1) - validate_ipv6_address($my_ip) - validate_bool("fe80::baf6:b1ff:fe19:7507", $my_ip) - - The following values will fail, causing compilation to abort: - - $some_array = [ true, false, "garbage string", "1.2.3.4" ] - validate_ipv6_address($some_array) - - ENDHEREDOC - ) do |args| - - require "ipaddr" - rescuable_exceptions = [ ArgumentError ] - - if defined?(IPAddr::InvalidAddressError) - rescuable_exceptions << IPAddr::InvalidAddressError - end - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_ipv6_address(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - unless arg.is_a?(String) - raise Puppet::ParseError, "#{arg.inspect} is not a string." - end - - begin - unless IPAddr.new(arg).ipv6? - raise Puppet::ParseError, "#{arg.inspect} is not a valid IPv6 address." - end - rescue *rescuable_exceptions - raise Puppet::ParseError, "#{arg.inspect} is not a valid IPv6 address." - end - end - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_re.rb b/modules/stdlib/lib/puppet/parser/functions/validate_re.rb deleted file mode 100644 index ca25a70..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_re.rb +++ /dev/null @@ -1,40 +0,0 @@ -module Puppet::Parser::Functions - newfunction(:validate_re, :doc => <<-'ENDHEREDOC') do |args| - Perform simple validation of a string against one or more regular - expressions. The first argument of this function should be a string to - test, and the second argument should be a stringified regular expression - (without the // delimiters) or an array of regular expressions. If none - of the regular expressions match the string passed in, compilation will - abort with a parse error. - - If a third argument is specified, this will be the error message raised and - seen by the user. - - The following strings will validate against the regular expressions: - - validate_re('one', '^one$') - validate_re('one', [ '^one', '^two' ]) - - The following strings will fail to validate, causing compilation to abort: - - validate_re('one', [ '^two', '^three' ]) - - A helpful error message can be returned like this: - - validate_re($::puppetversion, '^2.7', 'The $puppetversion fact value does not match 2.7') - - ENDHEREDOC - if (args.length < 2) or (args.length > 3) then - raise Puppet::ParseError, ("validate_re(): wrong number of arguments (#{args.length}; must be 2 or 3)") - end - - msg = args[2] || "validate_re(): #{args[0].inspect} does not match #{args[1].inspect}" - - # We're using a flattened array here because we can't call String#any? in - # Ruby 1.9 like we can in Ruby 1.8 - raise Puppet::ParseError, (msg) unless [args[1]].flatten.any? do |re_str| - args[0] =~ Regexp.compile(re_str) - end - - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb b/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb deleted file mode 100644 index 7d534f3..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb +++ /dev/null @@ -1,71 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_slength, :doc => <<-'ENDHEREDOC') do |args| - Validate that the first argument is a string (or an array of strings), and - less/equal to than the length of the second argument. An optional third - parameter can be given a the minimum length. It fails if the first - argument is not a string or array of strings, and if arg 2 and arg 3 are - not convertable to a number. - - The following values will pass: - - validate_slength("discombobulate",17) - validate_slength(["discombobulate","moo"],17) - validate_slength(["discombobulate","moo"],17,3) - - The following valueis will not: - - validate_slength("discombobulate",1) - validate_slength(["discombobulate","thermometer"],5) - validate_slength(["discombobulate","moo"],17,10) - - ENDHEREDOC - - raise Puppet::ParseError, "validate_slength(): Wrong number of arguments (#{args.length}; must be 2 or 3)" unless args.length == 2 or args.length == 3 - - input, max_length, min_length = *args - - begin - max_length = Integer(max_length) - raise ArgumentError if max_length <= 0 - rescue ArgumentError, TypeError - raise Puppet::ParseError, "validate_slength(): Expected second argument to be a positive Numeric, got #{max_length}:#{max_length.class}" - end - - if min_length - begin - min_length = Integer(min_length) - raise ArgumentError if min_length < 0 - rescue ArgumentError, TypeError - raise Puppet::ParseError, "validate_slength(): Expected third argument to be unset or a positive Numeric, got #{min_length}:#{min_length.class}" - end - else - min_length = 0 - end - - if min_length > max_length - raise Puppet::ParseError, "validate_slength(): Expected second argument to be larger than third argument" - end - - validator = lambda do |str| - unless str.length <= max_length and str.length >= min_length - raise Puppet::ParseError, "validate_slength(): Expected length of #{input.inspect} to be between #{min_length} and #{max_length}, was #{input.length}" - end - end - - case input - when String - validator.call(input) - when Array - input.each_with_index do |arg, pos| - if arg.is_a? String - validator.call(arg) - else - raise Puppet::ParseError, "validate_slength(): Expected element at array position #{pos} to be a String, got #{arg.class}" - end - end - else - raise Puppet::ParseError, "validate_slength(): Expected first argument to be a String or Array, got #{input.class}" - end - end -end diff --git a/modules/stdlib/lib/puppet/parser/functions/validate_string.rb b/modules/stdlib/lib/puppet/parser/functions/validate_string.rb deleted file mode 100644 index e667794..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/validate_string.rb +++ /dev/null @@ -1,33 +0,0 @@ -module Puppet::Parser::Functions - - newfunction(:validate_string, :doc => <<-'ENDHEREDOC') do |args| - Validate that all passed values are string data structures. Abort catalog - compilation if any value fails this check. - - The following values will pass: - - $my_string = "one two" - validate_string($my_string, 'three') - - The following values will fail, causing compilation to abort: - - validate_string(true) - validate_string([ 'some', 'array' ]) - $undefined = undef - validate_string($undefined) - - ENDHEREDOC - - unless args.length > 0 then - raise Puppet::ParseError, ("validate_string(): wrong number of arguments (#{args.length}; must be > 0)") - end - - args.each do |arg| - unless arg.is_a?(String) - raise Puppet::ParseError, ("#{arg.inspect} is not a string. It looks to be a #{arg.class}") - end - end - - end - -end diff --git a/modules/stdlib/lib/puppet/parser/functions/values.rb b/modules/stdlib/lib/puppet/parser/functions/values.rb deleted file mode 100644 index 1606756..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/values.rb +++ /dev/null @@ -1,39 +0,0 @@ -# -# values.rb -# - -module Puppet::Parser::Functions - newfunction(:values, :type => :rvalue, :doc => <<-EOS -When given a hash this function will return the values of that hash. - -*Examples:* - - $hash = { - 'a' => 1, - 'b' => 2, - 'c' => 3, - } - values($hash) - -This example would return: - - [1,2,3] - EOS - ) do |arguments| - - raise(Puppet::ParseError, "values(): Wrong number of arguments " + - "given (#{arguments.size} for 1)") if arguments.size < 1 - - hash = arguments[0] - - unless hash.is_a?(Hash) - raise(Puppet::ParseError, 'values(): Requires hash to work with') - end - - result = hash.values - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/values_at.rb b/modules/stdlib/lib/puppet/parser/functions/values_at.rb deleted file mode 100644 index d3e69d9..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/values_at.rb +++ /dev/null @@ -1,98 +0,0 @@ -# -# values_at.rb -# - -module Puppet::Parser::Functions - newfunction(:values_at, :type => :rvalue, :doc => <<-EOS -Finds value inside an array based on location. - -The first argument is the array you want to analyze, and the second element can -be a combination of: - -* A single numeric index -* A range in the form of 'start-stop' (eg. 4-9) -* An array combining the above - -*Examples*: - - values_at(['a','b','c'], 2) - -Would return ['c']. - - values_at(['a','b','c'], ["0-1"]) - -Would return ['a','b']. - - values_at(['a','b','c','d','e'], [0, "2-3"]) - -Would return ['a','c','d']. - EOS - ) do |arguments| - - raise(Puppet::ParseError, "values_at(): Wrong number of " + - "arguments given (#{arguments.size} for 2)") if arguments.size < 2 - - array = arguments.shift - - unless array.is_a?(Array) - raise(Puppet::ParseError, 'values_at(): Requires array to work with') - end - - indices = [arguments.shift].flatten() # Get them all ... Pokemon ... - - if not indices or indices.empty? - raise(Puppet::ParseError, 'values_at(): You must provide ' + - 'at least one positive index to collect') - end - - result = [] - indices_list = [] - - indices.each do |i| - if m = i.match(/^(\d+)(\.\.\.?|\-)(\d+)$/) - start = m[1].to_i - stop = m[3].to_i - - type = m[2] - - if start > stop - raise(Puppet::ParseError, 'values_at(): Stop index in ' + - 'given indices range is smaller than the start index') - elsif stop > array.size - 1 # First element is at index 0 is it not? - raise(Puppet::ParseError, 'values_at(): Stop index in ' + - 'given indices range exceeds array size') - end - - range = case type - when /^(\.\.|\-)$/ then (start .. stop) - when /^(\.\.\.)$/ then (start ... stop) # Exclusive of last element ... - end - - range.each { |i| indices_list << i.to_i } - else - # Only positive numbers allowed in this case ... - if not i.match(/^\d+$/) - raise(Puppet::ParseError, 'values_at(): Unknown format ' + - 'of given index') - end - - # In Puppet numbers are often string-encoded ... - i = i.to_i - - if i > array.size - 1 # Same story. First element is at index 0 ... - raise(Puppet::ParseError, 'values_at(): Given index ' + - 'exceeds array size') - end - - indices_list << i - end - end - - # We remove nil values as they make no sense in Puppet DSL ... - result = indices_list.collect { |i| array[i] }.compact - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/parser/functions/zip.rb b/modules/stdlib/lib/puppet/parser/functions/zip.rb deleted file mode 100644 index 2b56e9c..0000000 --- a/modules/stdlib/lib/puppet/parser/functions/zip.rb +++ /dev/null @@ -1,65 +0,0 @@ -# -# zip.rb -# - -module Puppet::Parser::Functions - newfunction(:zip, :type => :rvalue, :doc => <<-EOS -Takes one element from first array and merges corresponding elements from second array. This generates a sequence of n-element arrays, where n is one more than the count of arguments. - -*Example:* - - zip(['1','2','3'],['4','5','6']) - -Would result in: - - ["1", "4"], ["2", "5"], ["3", "6"] - EOS - ) do |arguments| - - # Technically we support three arguments but only first is mandatory ... - raise(Puppet::ParseError, "zip(): Wrong number of arguments " + - "given (#{arguments.size} for 2)") if arguments.size < 2 - - a = arguments[0] - b = arguments[1] - - unless a.is_a?(Array) and b.is_a?(Array) - raise(Puppet::ParseError, 'zip(): Requires array to work with') - end - - flatten = arguments[2] if arguments[2] - - if flatten - klass = flatten.class - - # We can have either true or false, or string which resembles boolean ... - unless [FalseClass, TrueClass, String].include?(klass) - raise(Puppet::ParseError, 'zip(): Requires either ' + - 'boolean or string to work with') - end - - if flatten.is_a?(String) - # We consider all the yes, no, y, n and so on too ... - flatten = case flatten - # - # This is how undef looks like in Puppet ... - # We yield false in this case. - # - when /^$/, '' then false # Empty string will be false ... - when /^(1|t|y|true|yes)$/ then true - when /^(0|f|n|false|no)$/ then false - when /^(undef|undefined)$/ then false # This is not likely to happen ... - else - raise(Puppet::ParseError, 'zip(): Unknown type of boolean given') - end - end - end - - result = a.zip(b) - result = flatten ? result.flatten : result - - return result - end -end - -# vim: set ts=2 sw=2 et : diff --git a/modules/stdlib/lib/puppet/provider/file_line/ruby.rb b/modules/stdlib/lib/puppet/provider/file_line/ruby.rb deleted file mode 100644 index 94e7fac..0000000 --- a/modules/stdlib/lib/puppet/provider/file_line/ruby.rb +++ /dev/null @@ -1,83 +0,0 @@ -Puppet::Type.type(:file_line).provide(:ruby) do - def exists? - lines.find do |line| - line.chomp == resource[:line].chomp - end - end - - def create - if resource[:match] - handle_create_with_match - elsif resource[:after] - handle_create_with_after - else - append_line - end - end - - def destroy - local_lines = lines - File.open(resource[:path],'w') do |fh| - fh.write(local_lines.reject{|l| l.chomp == resource[:line] }.join('')) - end - end - - private - def lines - # If this type is ever used with very large files, we should - # write this in a different way, using a temp - # file; for now assuming that this type is only used on - # small-ish config files that can fit into memory without - # too much trouble. - @lines ||= File.readlines(resource[:path]) - end - - def handle_create_with_match() - regex = resource[:match] ? Regexp.new(resource[:match]) : nil - match_count = lines.select { |l| regex.match(l) }.size - if match_count > 1 && resource[:multiple].to_s != 'true' - raise Puppet::Error, "More than one line in file '#{resource[:path]}' matches pattern '#{resource[:match]}'" - end - File.open(resource[:path], 'w') do |fh| - lines.each do |l| - fh.puts(regex.match(l) ? resource[:line] : l) - end - - if (match_count == 0) - fh.puts(resource[:line]) - end - end - end - - def handle_create_with_after - regex = Regexp.new(resource[:after]) - - count = lines.count {|l| l.match(regex)} - - case count - when 1 # find the line to put our line after - File.open(resource[:path], 'w') do |fh| - lines.each do |l| - fh.puts(l) - if regex.match(l) then - fh.puts(resource[:line]) - end - end - end - when 0 # append the line to the end of the file - append_line - else - raise Puppet::Error, "#{count} lines match pattern '#{resource[:after]}' in file '#{resource[:path]}'. One or no line must match the pattern." - end - end - - ## - # append the line to the file. - # - # @api private - def append_line - File.open(resource[:path], 'a') do |fh| - fh.puts resource[:line] - end - end -end diff --git a/modules/stdlib/lib/puppet/type/anchor.rb b/modules/stdlib/lib/puppet/type/anchor.rb deleted file mode 100644 index fe1e5aa..0000000 --- a/modules/stdlib/lib/puppet/type/anchor.rb +++ /dev/null @@ -1,46 +0,0 @@ -Puppet::Type.newtype(:anchor) do - desc <<-'ENDOFDESC' - A simple resource type intended to be used as an anchor in a composite class. - - In Puppet 2.6, when a class declares another class, the resources in the - interior class are not contained by the exterior class. This interacts badly - with the pattern of composing complex modules from smaller classes, as it - makes it impossible for end users to specify order relationships between the - exterior class and other modules. - - The anchor type lets you work around this. By sandwiching any interior - classes between two no-op resources that _are_ contained by the exterior - class, you can ensure that all resources in the module are contained. - - class ntp { - # These classes will have the correct order relationship with each - # other. However, without anchors, they won't have any order - # relationship to Class['ntp']. - class { 'ntp::package': } - -> class { 'ntp::config': } - -> class { 'ntp::service': } - - # These two resources "anchor" the composed classes within the ntp - # class. - anchor { 'ntp::begin': } -> Class['ntp::package'] - Class['ntp::service'] -> anchor { 'ntp::end': } - } - - This allows the end user of the ntp module to establish require and before - relationships with Class['ntp']: - - class { 'ntp': } -> class { 'mcollective': } - class { 'mcollective': } -> class { 'ntp': } - - ENDOFDESC - - newparam :name do - desc "The name of the anchor resource." - end - - def refresh - # We don't do anything with them, but we need this to - # show that we are "refresh aware" and not break the - # chain of propagation. - end -end diff --git a/modules/stdlib/lib/puppet/type/file_line.rb b/modules/stdlib/lib/puppet/type/file_line.rb deleted file mode 100644 index 323fc4c..0000000 --- a/modules/stdlib/lib/puppet/type/file_line.rb +++ /dev/null @@ -1,79 +0,0 @@ -Puppet::Type.newtype(:file_line) do - - desc <<-EOT - Ensures that a given line is contained within a file. The implementation - matches the full line, including whitespace at the beginning and end. If - the line is not contained in the given file, Puppet will add the line to - ensure the desired state. Multiple resources may be declared to manage - multiple lines in the same file. - - Example: - - file_line { 'sudo_rule': - path => '/etc/sudoers', - line => '%sudo ALL=(ALL) ALL', - } - file_line { 'sudo_rule_nopw': - path => '/etc/sudoers', - line => '%sudonopw ALL=(ALL) NOPASSWD: ALL', - } - - In this example, Puppet will ensure both of the specified lines are - contained in the file /etc/sudoers. - - EOT - - ensurable do - defaultvalues - defaultto :present - end - - newparam(:name, :namevar => true) do - desc 'An arbitrary name used as the identity of the resource.' - end - - newparam(:match) do - desc 'An optional regular expression to run against existing lines in the file;\n' + - 'if a match is found, we replace that line rather than adding a new line.' - end - - newparam(:multiple) do - desc 'An optional value to determine if match can change multiple lines.' - newvalues(true, false) - end - - newparam(:after) do - desc 'An optional value used to specify the line after which we will add any new lines. (Existing lines are added in place)' - end - - newparam(:line) do - desc 'The line to be appended to the file located by the path parameter.' - end - - newparam(:path) do - desc 'The file Puppet will ensure contains the line specified by the line parameter.' - validate do |value| - unless (Puppet.features.posix? and value =~ /^\//) or (Puppet.features.microsoft_windows? and (value =~ /^.:\// or value =~ /^\/\/[^\/]+\/[^\/]+/)) - raise(Puppet::Error, "File paths must be fully qualified, not '#{value}'") - end - end - end - - # Autorequire the file resource if it's being managed - autorequire(:file) do - self[:path] - end - - validate do - unless self[:line] and self[:path] - raise(Puppet::Error, "Both line and path are required attributes") - end - - if (self[:match]) - unless Regexp.new(self[:match]).match(self[:line]) - raise(Puppet::Error, "When providing a 'match' parameter, the value must be a regex that matches against the value of your 'line' parameter") - end - end - - end -end diff --git a/modules/stdlib/manifests/init.pp b/modules/stdlib/manifests/init.pp deleted file mode 100644 index 500ad77..0000000 --- a/modules/stdlib/manifests/init.pp +++ /dev/null @@ -1,20 +0,0 @@ -# Class: stdlib -# -# This module manages stdlib. Most of stdlib's features are automatically -# loaded by Puppet, but this class should be declared in order to use the -# standardized run stages. -# -# Parameters: none -# -# Actions: -# -# Declares all other classes in the stdlib module. Currently, this consists -# of stdlib::stages. -# -# Requires: nothing -# -class stdlib { - - class { 'stdlib::stages': } - -} diff --git a/modules/stdlib/manifests/stages.pp b/modules/stdlib/manifests/stages.pp deleted file mode 100644 index eb15fd6..0000000 --- a/modules/stdlib/manifests/stages.pp +++ /dev/null @@ -1,43 +0,0 @@ -# Class: stdlib::stages -# -# This class manages a standard set of run stages for Puppet. It is managed by -# the stdlib class, and should not be declared independently. -# -# The high level stages are (in order): -# -# * setup -# * main -# * runtime -# * setup_infra -# * deploy_infra -# * setup_app -# * deploy_app -# * deploy -# -# Parameters: none -# -# Actions: -# -# Declares various run-stages for deploying infrastructure, -# language runtimes, and application layers. -# -# Requires: nothing -# -# Sample Usage: -# -# node default { -# include stdlib -# class { java: stage => 'runtime' } -# } -# -class stdlib::stages { - - stage { 'setup': before => Stage['main'] } - stage { 'runtime': require => Stage['main'] } - -> stage { 'setup_infra': } - -> stage { 'deploy_infra': } - -> stage { 'setup_app': } - -> stage { 'deploy_app': } - -> stage { 'deploy': } - -} diff --git a/modules/stdlib/metadata.json b/modules/stdlib/metadata.json deleted file mode 100644 index 1476071..0000000 --- a/modules/stdlib/metadata.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "name": "puppetlabs-stdlib", - "version": "4.2.2", - "author": "puppetlabs", - "summary": "Puppet Module Standard Library", - "license": "Apache 2.0", - "source": "git://github.com/puppetlabs/puppetlabs-stdlib.git", - "project_page": "https://github.com/puppetlabs/puppetlabs-stdlib", - "issues_url": "https://github.com/puppetlabs/puppetlabs-stdlib/issues", - "operatingsystem_support": [ - { - "operatingsystem": "RedHat", - "operatingsystemrelease": [ - "4", - "5", - "6", - "7" - ] - }, - { - "operatingsystem": "CentOS", - "operatingsystemrelease": [ - "4", - "5", - "6", - "7" - ] - }, - { - "operatingsystem": "OracleLinux", - "operatingsystemrelease": [ - "4", - "5", - "6", - "7" - ] - }, - { - "operatingsystem": "Scientific", - "operatingsystemrelease": [ - "4", - "5", - "6", - "7" - ] - }, - { - "operatingsystem": "SLES", - "operatingsystemrelease": [ - "11 SP1" - ] - }, - { - "operatingsystem": "Debian", - "operatingsystemrelease": [ - "6", - "7" - ] - }, - { - "operatingsystem": "Ubuntu", - "operatingsystemrelease": [ - "10.04", - "12.04", - "14.04" - ] - }, - { - "operatingsystem": "Solaris", - "operatingsystemrelease": [ - "10", - "11" - ] - }, - { - "operatingsystem": "Windows", - "operatingsystemrelease": [ - "Server 2003", - "Server 2003 R2", - "Server 2008", - "Server 2008 R2", - "Server 2012", - "Server 2012 R2", - "7", - "8" - ] - }, - { - "operatingsystem": "AIX", - "operatingsystemrelease": [ - "5.3", - "6.1", - "7.1" - ] - } - ], - "requirements": [ - { - "name": "pe", - "version_requirement": ">= 3.2.0 < 3.4.0" - }, - { - "name": "puppet", - "version_requirement": ">=2.7.20 <4.0.0" - } - ], - "description": "Standard Library for Puppet Modules", - "dependencies": [ - - ] -} diff --git a/modules/stdlib/spec/acceptance/abs_spec.rb b/modules/stdlib/spec/acceptance/abs_spec.rb deleted file mode 100755 index 8e05642..0000000 --- a/modules/stdlib/spec/acceptance/abs_spec.rb +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'abs function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should accept a string' do - pp = <<-EOS - $input = '-34.56' - $output = abs($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: 34.56/) - end - end - - it 'should accept a float' do - pp = <<-EOS - $input = -34.56 - $output = abs($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: 34.56/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/any2array_spec.rb b/modules/stdlib/spec/acceptance/any2array_spec.rb deleted file mode 100755 index 467d6af..0000000 --- a/modules/stdlib/spec/acceptance/any2array_spec.rb +++ /dev/null @@ -1,49 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'any2array function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should create an empty array' do - pp = <<-EOS - $input = '' - $output = any2array($input) - validate_array($output) - notify { "Output: ${output}": } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: Output: /) - end - end - - it 'should leave arrays modified' do - pp = <<-EOS - $input = ['test', 'array'] - $output = any2array($input) - validate_array($output) - notify { "Output: ${output}": } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: Output: testarray/) - end - end - - it 'should turn a hash into an array' do - pp = <<-EOS - $input = {'test' => 'array'} - $output = any2array($input) - - validate_array($output) - # Check each element of the array is a plain string. - validate_string($output[0]) - validate_string($output[1]) - notify { "Output: ${output}": } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: Output: testarray/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/base64_spec.rb b/modules/stdlib/spec/acceptance/base64_spec.rb deleted file mode 100755 index 97e1738..0000000 --- a/modules/stdlib/spec/acceptance/base64_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'base64 function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should encode then decode a string' do - pp = <<-EOS - $encodestring = base64('encode', 'thestring') - $decodestring = base64('decode', $encodestring) - notify { $decodestring: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/thestring/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/bool2num_spec.rb b/modules/stdlib/spec/acceptance/bool2num_spec.rb deleted file mode 100755 index 7a70311..0000000 --- a/modules/stdlib/spec/acceptance/bool2num_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'bool2num function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - ['false', 'f', '0', 'n', 'no'].each do |bool| - it 'should convert a given boolean, #{bool}, to 0' do - pp = <<-EOS - $input = #{bool} - $output = bool2num($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: 0/) - end - end - end - - ['true', 't', '1', 'y', 'yes'].each do |bool| - it 'should convert a given boolean, #{bool}, to 1' do - pp = <<-EOS - $input = #{bool} - $output = bool2num($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: 1/) - end - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/build_csv.rb b/modules/stdlib/spec/acceptance/build_csv.rb deleted file mode 100755 index 62ecbf1..0000000 --- a/modules/stdlib/spec/acceptance/build_csv.rb +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env ruby -# vim: set sw=2 sts=2 et tw=80 : -require 'rspec' - -#XXX Super ugly hack to keep from starting beaker nodes -module Kernel - # make an alias of the original require - alias_method :original_require, :require - # rewrite require - def require name - original_require name if name != 'spec_helper_acceptance' - end -end -UNSUPPORTED_PLATFORMS = [] -def fact(*args) [] end -#XXX End hax - -# Get a list of functions for test coverage -function_list = Dir[File.join(File.dirname(__FILE__),"..","..","lib","puppet","parser","functions","*.rb")].collect do |function_rb| - File.basename(function_rb,".rb") -end - -## Configure rspec to parse tests -options = RSpec::Core::ConfigurationOptions.new(['spec/acceptance']) -configuration = RSpec::configuration -world = RSpec::world -options.parse_options -options.configure(configuration) -configuration.load_spec_files - -## Collect up tests and example groups into a hash -def get_tests(children) - children.inject({}) do |memo,c| - memo[c.description] = Hash.new - memo[c.description]["groups"] = get_tests(c.children) unless c.children.empty? - memo[c.description]["tests"] = c.examples.collect { |e| - e.description unless e.pending? - }.compact unless c.examples.empty? - memo[c.description]["pending_tests"] = c.examples.collect { |e| - e.description if e.pending? - }.compact unless c.examples.empty? - memo - end -end - -def count_test_types_in(type,group) - return 0 if group.nil? - group.inject(0) do |m,(k,v)| - m += v.length if k == type - m += count_tests_in(v) if v.is_a?(Hash) - m - end -end -def count_tests_in(group) - count_test_types_in('tests',group) -end -def count_pending_tests_in(group) - count_test_types_in('pending_tests',group) -end - -# Convert tests hash to csv format -def to_csv(function_list,tests) - function_list.collect do |function_name| - if v = tests["#{function_name} function"] - positive_tests = count_tests_in(v["groups"]["success"]) - negative_tests = count_tests_in(v["groups"]["failure"]) - pending_tests = - count_pending_tests_in(v["groups"]["failure"]) + - count_pending_tests_in(v["groups"]["failure"]) - else - positive_tests = 0 - negative_tests = 0 - pending_tests = 0 - end - sprintf("%-25s, %-9d, %-9d, %-9d", function_name,positive_tests,negative_tests,pending_tests) - end.compact -end - -tests = get_tests(world.example_groups) -csv = to_csv(function_list,tests) -percentage_tested = "#{tests.count*100/function_list.count}%" -printf("%-25s, %-9s, %-9s, %-9s\n","#{percentage_tested} have tests.","Positive","Negative","Pending") -puts csv diff --git a/modules/stdlib/spec/acceptance/capitalize_spec.rb b/modules/stdlib/spec/acceptance/capitalize_spec.rb deleted file mode 100755 index e5e7b7b..0000000 --- a/modules/stdlib/spec/acceptance/capitalize_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'capitalize function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should capitalize the first letter of a string' do - pp = <<-EOS - $input = 'this is a string' - $output = capitalize($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: This is a string/) - end - end - - it 'should capitalize the first letter of an array of strings' do - pp = <<-EOS - $input = ['this', 'is', 'a', 'string'] - $output = capitalize($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: This/) - expect(r.stdout).to match(/Notice: Is/) - expect(r.stdout).to match(/Notice: A/) - expect(r.stdout).to match(/Notice: String/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/chomp_spec.rb b/modules/stdlib/spec/acceptance/chomp_spec.rb deleted file mode 100755 index f6c1595..0000000 --- a/modules/stdlib/spec/acceptance/chomp_spec.rb +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'chomp function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should eat the newline' do - pp = <<-EOS - $input = "test\n" - if size($input) != 5 { - fail("Size of ${input} is not 5.") - } - $output = chomp($input) - if size($output) != 4 { - fail("Size of ${input} is not 4.") - } - EOS - - apply_manifest(pp, :catch_failures => true) - end - end -end diff --git a/modules/stdlib/spec/acceptance/chop_spec.rb b/modules/stdlib/spec/acceptance/chop_spec.rb deleted file mode 100755 index dbc28da..0000000 --- a/modules/stdlib/spec/acceptance/chop_spec.rb +++ /dev/null @@ -1,45 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'chop function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should eat the last character' do - pp = <<-EOS - $input = "test" - if size($input) != 4 { - fail("Size of ${input} is not 4.") - } - $output = chop($input) - if size($output) != 3 { - fail("Size of ${input} is not 3.") - } - EOS - - apply_manifest(pp, :catch_failures => true) - end - - it 'should eat the last two characters of \r\n' do - pp = <<-EOS - $input = "test\r\n" - if size($input) != 6 { - fail("Size of ${input} is not 6.") - } - $output = chop($input) - if size($output) != 4 { - fail("Size of ${input} is not 4.") - } - EOS - - apply_manifest(pp, :catch_failures => true) - end - - it 'should not fail on empty strings' do - pp = <<-EOS - $input = "" - $output = chop($input) - EOS - - apply_manifest(pp, :catch_failures => true) - end - end -end diff --git a/modules/stdlib/spec/acceptance/concat_spec.rb b/modules/stdlib/spec/acceptance/concat_spec.rb deleted file mode 100755 index 7bda365..0000000 --- a/modules/stdlib/spec/acceptance/concat_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'concat function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should concat one array to another' do - pp = <<-EOS - $output = concat(['1','2','3'],['4','5','6']) - validate_array($output) - if size($output) != 6 { - fail("${output} should have 6 elements.") - } - EOS - - apply_manifest(pp, :catch_failures => true) - end - end -end diff --git a/modules/stdlib/spec/acceptance/count_spec.rb b/modules/stdlib/spec/acceptance/count_spec.rb deleted file mode 100755 index 51a40ba..0000000 --- a/modules/stdlib/spec/acceptance/count_spec.rb +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'count function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should count elements in an array' do - pp = <<-EOS - $input = [1,2,3,4] - $output = count($input) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: 4/) - end - end - - it 'should count elements in an array that match a second argument' do - pp = <<-EOS - $input = [1,1,1,2] - $output = count($input, 1) - notify { $output: } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: 3/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/deep_merge_spec.rb b/modules/stdlib/spec/acceptance/deep_merge_spec.rb deleted file mode 100755 index c0f9b12..0000000 --- a/modules/stdlib/spec/acceptance/deep_merge_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'deep_merge function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should deep merge two hashes' do - pp = <<-EOS - $hash1 = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } } - $hash2 = {'two' => 'dos', 'three' => { 'five' => 5 } } - $merged_hash = deep_merge($hash1, $hash2) - - if $merged_hash != { 'one' => 1, 'two' => 'dos', 'three' => { 'four' => 4, 'five' => 5 } } { - fail("Hash was incorrectly merged.") - } - EOS - - apply_manifest(pp, :catch_failures => true) - end - end -end diff --git a/modules/stdlib/spec/acceptance/defined_with_params_spec.rb b/modules/stdlib/spec/acceptance/defined_with_params_spec.rb deleted file mode 100755 index fc54450..0000000 --- a/modules/stdlib/spec/acceptance/defined_with_params_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'defined_with_params function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should successfully notify' do - pp = <<-EOS - user { 'dan': - ensure => present, - } - - if defined_with_params(User[dan], {'ensure' => 'present' }) { - notify { 'User defined with ensure=>present': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: User defined with ensure=>present/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/delete_at_spec.rb b/modules/stdlib/spec/acceptance/delete_at_spec.rb deleted file mode 100755 index db0c01f..0000000 --- a/modules/stdlib/spec/acceptance/delete_at_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'delete_at function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should delete elements of the array' do - pp = <<-EOS - $output = delete_at(['a','b','c','b'], 1) - if $output == ['a','c','b'] { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/delete_spec.rb b/modules/stdlib/spec/acceptance/delete_spec.rb deleted file mode 100755 index a28604c..0000000 --- a/modules/stdlib/spec/acceptance/delete_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'delete function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should delete elements of the array' do - pp = <<-EOS - $output = delete(['a','b','c','b'], 'b') - if $output == ['a','c'] { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/delete_undef_values_spec.rb b/modules/stdlib/spec/acceptance/delete_undef_values_spec.rb deleted file mode 100755 index b7eda19..0000000 --- a/modules/stdlib/spec/acceptance/delete_undef_values_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'delete_undef_values function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should delete elements of the array' do - pp = <<-EOS - $output = delete_undef_values({a=>'A', b=>'', c=>undef, d => false}) - if $output == { a => 'A', b => '', d => false } { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/delete_values_spec.rb b/modules/stdlib/spec/acceptance/delete_values_spec.rb deleted file mode 100755 index 6d2369c..0000000 --- a/modules/stdlib/spec/acceptance/delete_values_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'delete_values function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should delete elements of the hash' do - pp = <<-EOS - $a = { 'a' => 'A', 'b' => 'B', 'B' => 'C', 'd' => 'B' } - $b = { 'a' => 'A', 'B' => 'C' } - $o = delete_values($a, 'B') - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles non-hash arguments' - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/difference_spec.rb b/modules/stdlib/spec/acceptance/difference_spec.rb deleted file mode 100755 index 2fae5c4..0000000 --- a/modules/stdlib/spec/acceptance/difference_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'difference function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'returns non-duplicates in the first array' do - pp = <<-EOS - $a = ['a','b','c'] - $b = ['b','c','d'] - $c = ['a'] - $o = difference($a, $b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles non-array arguments' - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/dirname_spec.rb b/modules/stdlib/spec/acceptance/dirname_spec.rb deleted file mode 100755 index 97913dd..0000000 --- a/modules/stdlib/spec/acceptance/dirname_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'dirname function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - context 'absolute path' do - it 'returns the dirname' do - pp = <<-EOS - $a = '/path/to/a/file.txt' - $b = '/path/to/a' - $o = dirname($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - context 'relative path' do - it 'returns the dirname' do - pp = <<-EOS - $a = 'path/to/a/file.txt' - $b = 'path/to/a' - $o = dirname($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/downcase_spec.rb b/modules/stdlib/spec/acceptance/downcase_spec.rb deleted file mode 100755 index bc4e706..0000000 --- a/modules/stdlib/spec/acceptance/downcase_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'downcase function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'returns the downcase' do - pp = <<-EOS - $a = 'AOEU' - $b = 'aoeu' - $o = downcase($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'doesn\'t affect lowercase words' do - pp = <<-EOS - $a = 'aoeu aoeu' - $b = 'aoeu aoeu' - $o = downcase($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-strings' - end -end diff --git a/modules/stdlib/spec/acceptance/empty_spec.rb b/modules/stdlib/spec/acceptance/empty_spec.rb deleted file mode 100755 index 8b46aac..0000000 --- a/modules/stdlib/spec/acceptance/empty_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'empty function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'recognizes empty strings' do - pp = <<-EOS - $a = '' - $b = true - $o = empty($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'recognizes non-empty strings' do - pp = <<-EOS - $a = 'aoeu' - $b = false - $o = empty($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-strings' - end -end diff --git a/modules/stdlib/spec/acceptance/ensure_packages_spec.rb b/modules/stdlib/spec/acceptance/ensure_packages_spec.rb deleted file mode 100755 index aa7b14c..0000000 --- a/modules/stdlib/spec/acceptance/ensure_packages_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'ensure_packages function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'ensure_packages a package' do - apply_manifest('package { "zsh": ensure => absent, }') - pp = <<-EOS - $a = "zsh" - ensure_packages($a) - EOS - - apply_manifest(pp, :expect_changes => true) do |r| - expect(r.stdout).to match(/Package\[zsh\]\/ensure: (created|ensure changed 'purged' to 'present')/) - end - end - it 'ensures a package already declared' - it 'takes defaults arguments' - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/ensure_resource_spec.rb b/modules/stdlib/spec/acceptance/ensure_resource_spec.rb deleted file mode 100755 index c4d8887..0000000 --- a/modules/stdlib/spec/acceptance/ensure_resource_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'ensure_resource function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'ensure_resource a package' do - apply_manifest('package { "zsh": ensure => absent, }') - pp = <<-EOS - $a = "zsh" - ensure_resource('package', $a) - EOS - - apply_manifest(pp, :expect_changes => true) do |r| - expect(r.stdout).to match(/Package\[zsh\]\/ensure: created/) - end - end - it 'ensures a resource already declared' - it 'takes defaults arguments' - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/flatten_spec.rb b/modules/stdlib/spec/acceptance/flatten_spec.rb deleted file mode 100755 index c4d66e0..0000000 --- a/modules/stdlib/spec/acceptance/flatten_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'flatten function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'flattens arrays' do - pp = <<-EOS - $a = ["a","b",["c",["d","e"],"f","g"]] - $b = ["a","b","c","d","e","f","g"] - $o = flatten($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'does not affect flat arrays' do - pp = <<-EOS - $a = ["a","b","c","d","e","f","g"] - $b = ["a","b","c","d","e","f","g"] - $o = flatten($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-strings' - end -end diff --git a/modules/stdlib/spec/acceptance/floor_spec.rb b/modules/stdlib/spec/acceptance/floor_spec.rb deleted file mode 100755 index 0dcdad9..0000000 --- a/modules/stdlib/spec/acceptance/floor_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'floor function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'floors floats' do - pp = <<-EOS - $a = 12.8 - $b = 12 - $o = floor($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'floors integers' do - pp = <<-EOS - $a = 7 - $b = 7 - $o = floor($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-numbers' - end -end diff --git a/modules/stdlib/spec/acceptance/fqdn_rotate_spec.rb b/modules/stdlib/spec/acceptance/fqdn_rotate_spec.rb deleted file mode 100755 index fc8bea2..0000000 --- a/modules/stdlib/spec/acceptance/fqdn_rotate_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'fqdn_rotate function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - let(:facts_d) do - if fact('is_pe') == "true" - '/etc/puppetlabs/facter/facts.d' - else - '/etc/facter/facts.d' - end - end - after :each do - shell("if [ -f #{facts_d}/fqdn.txt ] ; then rm #{facts_d}/fqdn.txt ; fi") - end - it 'fqdn_rotates floats' do - shell("mkdir -p #{facts_d}") - shell("echo 'fqdn=fakehost.localdomain' > #{facts_d}/fqdn.txt") - pp = <<-EOS - $a = ['a','b','c','d'] - $o = fqdn_rotate($a) - notice(inline_template('fqdn_rotate is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/fqdn_rotate is \["c", "d", "a", "b"\]/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-numbers' - end -end diff --git a/modules/stdlib/spec/acceptance/get_module_path_spec.rb b/modules/stdlib/spec/acceptance/get_module_path_spec.rb deleted file mode 100755 index 34d91fa..0000000 --- a/modules/stdlib/spec/acceptance/get_module_path_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'get_module_path function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'get_module_paths stdlib' do - pp = <<-EOS - $a = $::is_pe ? { - 'true' => '/opt/puppet/share/puppet/modules/stdlib', - 'false' => '/etc/puppet/modules/stdlib', - } - $o = get_module_path('stdlib') - if $o == $a { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'get_module_paths dne' do - pp = <<-EOS - $a = $::is_pe ? { - 'true' => '/etc/puppetlabs/puppet/modules/dne', - 'false' => '/etc/puppet/modules/dne', - } - $o = get_module_path('dne') - if $o == $a { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :expect_failures => true) - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-numbers' - end -end diff --git a/modules/stdlib/spec/acceptance/getparam_spec.rb b/modules/stdlib/spec/acceptance/getparam_spec.rb deleted file mode 100755 index 91fc9a0..0000000 --- a/modules/stdlib/spec/acceptance/getparam_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'getparam function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'getparam a package' do - pp = <<-EOS - user { "rspec": - ensure => present, - managehome => true, - } - $o = getparam(User['rspec'], 'managehome') - notice(inline_template('getparam is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/getparam is true/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/getvar_spec.rb b/modules/stdlib/spec/acceptance/getvar_spec.rb deleted file mode 100755 index 333c467..0000000 --- a/modules/stdlib/spec/acceptance/getvar_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'getvar function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'getvars from classes' do - pp = <<-EOS - class a::data { $foo = 'aoeu' } - include a::data - $b = 'aoeu' - $o = getvar("a::data::foo") - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-numbers' - end -end diff --git a/modules/stdlib/spec/acceptance/grep_spec.rb b/modules/stdlib/spec/acceptance/grep_spec.rb deleted file mode 100755 index b39d48e..0000000 --- a/modules/stdlib/spec/acceptance/grep_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'grep function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'greps arrays' do - pp = <<-EOS - $a = ['aaabbb','bbbccc','dddeee'] - $b = 'bbb' - $c = ['aaabbb','bbbccc'] - $o = grep($a,$b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/has_interface_with_spec.rb b/modules/stdlib/spec/acceptance/has_interface_with_spec.rb deleted file mode 100755 index 41ae19f..0000000 --- a/modules/stdlib/spec/acceptance/has_interface_with_spec.rb +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'has_interface_with function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'has_interface_with existing ipaddress' do - pp = <<-EOS - $a = '127.0.0.1' - $o = has_interface_with('ipaddress', $a) - notice(inline_template('has_interface_with is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_interface_with is true/) - end - end - it 'has_interface_with absent ipaddress' do - pp = <<-EOS - $a = '128.0.0.1' - $o = has_interface_with('ipaddress', $a) - notice(inline_template('has_interface_with is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_interface_with is false/) - end - end - it 'has_interface_with existing interface' do - pp = <<-EOS - $a = 'lo' - $o = has_interface_with($a) - notice(inline_template('has_interface_with is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_interface_with is true/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/has_ip_address_spec.rb b/modules/stdlib/spec/acceptance/has_ip_address_spec.rb deleted file mode 100755 index 7d5fd87..0000000 --- a/modules/stdlib/spec/acceptance/has_ip_address_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'has_ip_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'has_ip_address existing ipaddress' do - pp = <<-EOS - $a = '127.0.0.1' - $o = has_ip_address($a) - notice(inline_template('has_ip_address is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_ip_address is true/) - end - end - it 'has_ip_address absent ipaddress' do - pp = <<-EOS - $a = '128.0.0.1' - $o = has_ip_address($a) - notice(inline_template('has_ip_address is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_ip_address is false/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/has_ip_network_spec.rb b/modules/stdlib/spec/acceptance/has_ip_network_spec.rb deleted file mode 100755 index 692eaf9..0000000 --- a/modules/stdlib/spec/acceptance/has_ip_network_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'has_ip_network function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'has_ip_network existing ipaddress' do - pp = <<-EOS - $a = '127.0.0.0' - $o = has_ip_network($a) - notice(inline_template('has_ip_network is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_ip_network is true/) - end - end - it 'has_ip_network absent ipaddress' do - pp = <<-EOS - $a = '128.0.0.0' - $o = has_ip_network($a) - notice(inline_template('has_ip_network is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/has_ip_network is false/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/has_key_spec.rb b/modules/stdlib/spec/acceptance/has_key_spec.rb deleted file mode 100755 index c8557cb..0000000 --- a/modules/stdlib/spec/acceptance/has_key_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'has_key function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'has_keys in hashes' do - pp = <<-EOS - $a = { 'aaa' => 'bbb','bbb' => 'ccc','ddd' => 'eee' } - $b = 'bbb' - $c = true - $o = has_key($a,$b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'has_keys not in hashes' do - pp = <<-EOS - $a = { 'aaa' => 'bbb','bbb' => 'ccc','ddd' => 'eee' } - $b = 'ccc' - $c = false - $o = has_key($a,$b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-hashes' - end -end diff --git a/modules/stdlib/spec/acceptance/hash_spec.rb b/modules/stdlib/spec/acceptance/hash_spec.rb deleted file mode 100755 index ed53834..0000000 --- a/modules/stdlib/spec/acceptance/hash_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'hash function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'hashs arrays' do - pp = <<-EOS - $a = ['aaa','bbb','bbb','ccc','ddd','eee'] - $b = { 'aaa' => 'bbb', 'bbb' => 'ccc', 'ddd' => 'eee' } - $o = hash($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'handles odd-length arrays' - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/intersection_spec.rb b/modules/stdlib/spec/acceptance/intersection_spec.rb deleted file mode 100755 index 66b8652..0000000 --- a/modules/stdlib/spec/acceptance/intersection_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'intersection function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'intersections arrays' do - pp = <<-EOS - $a = ['aaa','bbb','ccc'] - $b = ['bbb','ccc','ddd','eee'] - $c = ['bbb','ccc'] - $o = intersection($a,$b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'intersections empty arrays' - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_array_spec.rb b/modules/stdlib/spec/acceptance/is_array_spec.rb deleted file mode 100755 index 9c6bad7..0000000 --- a/modules/stdlib/spec/acceptance/is_array_spec.rb +++ /dev/null @@ -1,67 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_array function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_arrays arrays' do - pp = <<-EOS - $a = ['aaa','bbb','ccc'] - $b = true - $o = is_array($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_arrays empty arrays' do - pp = <<-EOS - $a = [] - $b = true - $o = is_array($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_arrays strings' do - pp = <<-EOS - $a = "aoeu" - $b = false - $o = is_array($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_arrays hashes' do - pp = <<-EOS - $a = {'aaa'=>'bbb'} - $b = false - $o = is_array($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_bool_spec.rb b/modules/stdlib/spec/acceptance/is_bool_spec.rb deleted file mode 100755 index 60079f9..0000000 --- a/modules/stdlib/spec/acceptance/is_bool_spec.rb +++ /dev/null @@ -1,81 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_bool function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_bools arrays' do - pp = <<-EOS - $a = ['aaa','bbb','ccc'] - $b = false - $o = is_bool($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_bools true' do - pp = <<-EOS - $a = true - $b = true - $o = is_bool($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_bools false' do - pp = <<-EOS - $a = false - $b = true - $o = is_bool($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_bools strings' do - pp = <<-EOS - $a = "true" - $b = false - $o = is_bool($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_bools hashes' do - pp = <<-EOS - $a = {'aaa'=>'bbb'} - $b = false - $o = is_bool($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_domain_name_spec.rb b/modules/stdlib/spec/acceptance/is_domain_name_spec.rb deleted file mode 100755 index e0f03fa..0000000 --- a/modules/stdlib/spec/acceptance/is_domain_name_spec.rb +++ /dev/null @@ -1,83 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_domain_name function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_domain_names arrays' do - pp = <<-EOS - $a = ['aaa.com','bbb','ccc'] - $o = is_domain_name($a) - notice(inline_template('is_domain_name is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_domain_name is false/) - end - end - it 'is_domain_names true' do - pp = <<-EOS - $a = true - $o = is_domain_name($a) - notice(inline_template('is_domain_name is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_domain_name is false/) - end - end - it 'is_domain_names false' do - pp = <<-EOS - $a = false - $o = is_domain_name($a) - notice(inline_template('is_domain_name is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_domain_name is false/) - end - end - it 'is_domain_names strings with hyphens' do - pp = <<-EOS - $a = "3foo-bar.2bar-fuzz.com" - $b = true - $o = is_domain_name($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_domain_names strings beginning with hyphens' do - pp = <<-EOS - $a = "-bar.2bar-fuzz.com" - $b = false - $o = is_domain_name($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_domain_names hashes' do - pp = <<-EOS - $a = {'aaa'=>'www.com'} - $o = is_domain_name($a) - notice(inline_template('is_domain_name is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_domain_name is false/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_float_spec.rb b/modules/stdlib/spec/acceptance/is_float_spec.rb deleted file mode 100755 index 338ba58..0000000 --- a/modules/stdlib/spec/acceptance/is_float_spec.rb +++ /dev/null @@ -1,86 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_float function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_floats arrays' do - pp = <<-EOS - $a = ['aaa.com','bbb','ccc'] - $o = is_float($a) - notice(inline_template('is_float is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_float is false/) - end - end - it 'is_floats true' do - pp = <<-EOS - $a = true - $o = is_float($a) - notice(inline_template('is_float is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_float is false/) - end - end - it 'is_floats strings' do - pp = <<-EOS - $a = "3.5" - $b = true - $o = is_float($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_floats floats' do - pp = <<-EOS - $a = 3.5 - $b = true - $o = is_float($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_floats integers' do - pp = <<-EOS - $a = 3 - $b = false - $o = is_float($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_floats hashes' do - pp = <<-EOS - $a = {'aaa'=>'www.com'} - $o = is_float($a) - notice(inline_template('is_float is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_float is false/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_function_available_spec.rb b/modules/stdlib/spec/acceptance/is_function_available_spec.rb deleted file mode 100755 index 2b5dd6d..0000000 --- a/modules/stdlib/spec/acceptance/is_function_available_spec.rb +++ /dev/null @@ -1,58 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_function_available function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_function_availables arrays' do - pp = <<-EOS - $a = ['fail','include','require'] - $o = is_function_available($a) - notice(inline_template('is_function_available is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_function_available is false/) - end - end - it 'is_function_availables true' do - pp = <<-EOS - $a = true - $o = is_function_available($a) - notice(inline_template('is_function_available is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_function_available is false/) - end - end - it 'is_function_availables strings' do - pp = <<-EOS - $a = "fail" - $b = true - $o = is_function_available($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_function_availables function_availables' do - pp = <<-EOS - $a = "is_function_available" - $o = is_function_available($a) - notice(inline_template('is_function_available is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_function_available is true/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_hash_spec.rb b/modules/stdlib/spec/acceptance/is_hash_spec.rb deleted file mode 100755 index 2ef310a..0000000 --- a/modules/stdlib/spec/acceptance/is_hash_spec.rb +++ /dev/null @@ -1,63 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_hash function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_hashs arrays' do - pp = <<-EOS - $a = ['aaa','bbb','ccc'] - $o = is_hash($a) - notice(inline_template('is_hash is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_hash is false/) - end - end - it 'is_hashs empty hashs' do - pp = <<-EOS - $a = {} - $b = true - $o = is_hash($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_hashs strings' do - pp = <<-EOS - $a = "aoeu" - $b = false - $o = is_hash($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_hashs hashes' do - pp = <<-EOS - $a = {'aaa'=>'bbb'} - $b = true - $o = is_hash($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/is_integer_spec.rb b/modules/stdlib/spec/acceptance/is_integer_spec.rb deleted file mode 100755 index bf6902b..0000000 --- a/modules/stdlib/spec/acceptance/is_integer_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_integer function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_integers arrays' do - pp = <<-EOS - $a = ['aaa.com','bbb','ccc'] - $b = false - $o = is_integer($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_integers true' do - pp = <<-EOS - $a = true - $b = false - $o = is_integer($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_integers strings' do - pp = <<-EOS - $a = "3" - $b = true - $o = is_integer($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_integers floats' do - pp = <<-EOS - $a = 3.5 - $b = false - $o = is_integer($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_integers integers' do - pp = <<-EOS - $a = 3 - $b = true - $o = is_integer($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_integers hashes' do - pp = <<-EOS - $a = {'aaa'=>'www.com'} - $b = false - $o = is_integer($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_ip_address_spec.rb b/modules/stdlib/spec/acceptance/is_ip_address_spec.rb deleted file mode 100755 index ed7a854..0000000 --- a/modules/stdlib/spec/acceptance/is_ip_address_spec.rb +++ /dev/null @@ -1,80 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_ip_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_ip_addresss ipv4' do - pp = <<-EOS - $a = '1.2.3.4' - $b = true - $o = is_ip_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_ip_addresss ipv6' do - pp = <<-EOS - $a = "fe80:0000:cd12:d123:e2f8:47ff:fe09:dd74" - $b = true - $o = is_ip_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_ip_addresss ipv6 compressed' do - pp = <<-EOS - $a = "fe00::1" - $b = true - $o = is_ip_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_ip_addresss strings' do - pp = <<-EOS - $a = "aoeu" - $b = false - $o = is_ip_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_ip_addresss ipv4 out of range' do - pp = <<-EOS - $a = '1.2.3.400' - $b = false - $o = is_ip_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/is_mac_address_spec.rb b/modules/stdlib/spec/acceptance/is_mac_address_spec.rb deleted file mode 100755 index a2c892f..0000000 --- a/modules/stdlib/spec/acceptance/is_mac_address_spec.rb +++ /dev/null @@ -1,38 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_mac_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_mac_addresss a mac' do - pp = <<-EOS - $a = '00:a0:1f:12:7f:a0' - $b = true - $o = is_mac_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_mac_addresss a mac out of range' do - pp = <<-EOS - $a = '00:a0:1f:12:7f:g0' - $b = false - $o = is_mac_address($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/is_numeric_spec.rb b/modules/stdlib/spec/acceptance/is_numeric_spec.rb deleted file mode 100755 index 21c8988..0000000 --- a/modules/stdlib/spec/acceptance/is_numeric_spec.rb +++ /dev/null @@ -1,95 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_numeric function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_numerics arrays' do - pp = <<-EOS - $a = ['aaa.com','bbb','ccc'] - $b = false - $o = is_numeric($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_numerics true' do - pp = <<-EOS - $a = true - $b = false - $o = is_numeric($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_numerics strings' do - pp = <<-EOS - $a = "3" - $b = true - $o = is_numeric($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_numerics floats' do - pp = <<-EOS - $a = 3.5 - $b = true - $o = is_numeric($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_numerics integers' do - pp = <<-EOS - $a = 3 - $b = true - $o = is_numeric($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_numerics hashes' do - pp = <<-EOS - $a = {'aaa'=>'www.com'} - $b = false - $o = is_numeric($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - it 'handles non-arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/is_string_spec.rb b/modules/stdlib/spec/acceptance/is_string_spec.rb deleted file mode 100755 index 94d8e96..0000000 --- a/modules/stdlib/spec/acceptance/is_string_spec.rb +++ /dev/null @@ -1,102 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'is_string function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'is_strings arrays' do - pp = <<-EOS - $a = ['aaa.com','bbb','ccc'] - $b = false - $o = is_string($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_strings true' do - pp = <<-EOS - $a = true - $b = false - $o = is_string($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_strings strings' do - pp = <<-EOS - $a = "aoeu" - $o = is_string($a) - notice(inline_template('is_string is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_string is true/) - end - end - it 'is_strings number strings' do - pp = <<-EOS - $a = "3" - $o = is_string($a) - notice(inline_template('is_string is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/is_string is false/) - end - end - it 'is_strings floats' do - pp = <<-EOS - $a = 3.5 - $b = false - $o = is_string($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_strings integers' do - pp = <<-EOS - $a = 3 - $b = false - $o = is_string($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'is_strings hashes' do - pp = <<-EOS - $a = {'aaa'=>'www.com'} - $b = false - $o = is_string($a) - if $o == $b { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/join_keys_to_values_spec.rb b/modules/stdlib/spec/acceptance/join_keys_to_values_spec.rb deleted file mode 100755 index 70493fd..0000000 --- a/modules/stdlib/spec/acceptance/join_keys_to_values_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'join_keys_to_values function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'join_keys_to_valuess hashes' do - pp = <<-EOS - $a = {'aaa'=>'bbb','ccc'=>'ddd'} - $b = ':' - $o = join_keys_to_values($a,$b) - notice(inline_template('join_keys_to_values is <%= @o.sort.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/join_keys_to_values is \["aaa:bbb", "ccc:ddd"\]/) - end - end - it 'handles non hashes' - it 'handles empty hashes' - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/join_spec.rb b/modules/stdlib/spec/acceptance/join_spec.rb deleted file mode 100755 index 5397ce2..0000000 --- a/modules/stdlib/spec/acceptance/join_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'join function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'joins arrays' do - pp = <<-EOS - $a = ['aaa','bbb','ccc'] - $b = ':' - $c = 'aaa:bbb:ccc' - $o = join($a,$b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'handles non arrays' - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/keys_spec.rb b/modules/stdlib/spec/acceptance/keys_spec.rb deleted file mode 100755 index 176918e..0000000 --- a/modules/stdlib/spec/acceptance/keys_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'keys function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'keyss hashes' do - pp = <<-EOS - $a = {'aaa'=>'bbb','ccc'=>'ddd'} - $o = keys($a) - notice(inline_template('keys is <%= @o.sort.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/keys is \["aaa", "ccc"\]/) - end - end - it 'handles non hashes' - it 'handles empty hashes' - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/loadyaml_spec.rb b/modules/stdlib/spec/acceptance/loadyaml_spec.rb deleted file mode 100644 index 944a727..0000000 --- a/modules/stdlib/spec/acceptance/loadyaml_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'loadyaml function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'loadyamls array of values' do - shell('echo "--- - aaa: 1 - bbb: 2 - ccc: 3 - ddd: 4" > /testyaml.yaml') - pp = <<-EOS - $o = loadyaml('/testyaml.yaml') - notice(inline_template('loadyaml[aaa] is <%= @o["aaa"].inspect %>')) - notice(inline_template('loadyaml[bbb] is <%= @o["bbb"].inspect %>')) - notice(inline_template('loadyaml[ccc] is <%= @o["ccc"].inspect %>')) - notice(inline_template('loadyaml[ddd] is <%= @o["ddd"].inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/loadyaml\[aaa\] is 1/) - expect(r.stdout).to match(/loadyaml\[bbb\] is 2/) - expect(r.stdout).to match(/loadyaml\[ccc\] is 3/) - expect(r.stdout).to match(/loadyaml\[ddd\] is 4/) - end - end - end - describe 'failure' do - it 'fails with no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/lstrip_spec.rb b/modules/stdlib/spec/acceptance/lstrip_spec.rb deleted file mode 100755 index 3dc952f..0000000 --- a/modules/stdlib/spec/acceptance/lstrip_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'lstrip function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'lstrips arrays' do - pp = <<-EOS - $a = [" the "," public "," art","galleries "] - # Anagram: Large picture halls, I bet - $o = lstrip($a) - notice(inline_template('lstrip is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/lstrip is \["the ", "public ", "art", "galleries "\]/) - end - end - it 'lstrips strings' do - pp = <<-EOS - $a = " blowzy night-frumps vex'd jack q " - $o = lstrip($a) - notice(inline_template('lstrip is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/lstrip is "blowzy night-frumps vex'd jack q "/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/max_spec.rb b/modules/stdlib/spec/acceptance/max_spec.rb deleted file mode 100755 index f04e3d2..0000000 --- a/modules/stdlib/spec/acceptance/max_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'max function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'maxs arrays' do - pp = <<-EOS - $o = max("the","public","art","galleries") - notice(inline_template('max is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/max is "the"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/member_spec.rb b/modules/stdlib/spec/acceptance/member_spec.rb deleted file mode 100755 index b467dbb..0000000 --- a/modules/stdlib/spec/acceptance/member_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'member function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'members arrays' do - pp = <<-EOS - $a = ['aaa','bbb','ccc'] - $b = 'ccc' - $c = true - $o = member($a,$b) - if $o == $c { - notify { 'output correct': } - } - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Notice: output correct/) - end - end - it 'members arrays without members' - end - describe 'failure' do - it 'handles improper argument counts' - end -end diff --git a/modules/stdlib/spec/acceptance/merge_spec.rb b/modules/stdlib/spec/acceptance/merge_spec.rb deleted file mode 100755 index a60e784..0000000 --- a/modules/stdlib/spec/acceptance/merge_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'merge function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'should merge two hashes' do - pp = <<-EOS - $a = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } } - $b = {'two' => 'dos', 'three' => { 'five' => 5 } } - $o = merge($a, $b) - notice(inline_template('merge[one] is <%= @o["one"].inspect %>')) - notice(inline_template('merge[two] is <%= @o["two"].inspect %>')) - notice(inline_template('merge[three] is <%= @o["three"].inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/merge\[one\] is "1"/) - expect(r.stdout).to match(/merge\[two\] is "dos"/) - expect(r.stdout).to match(/merge\[three\] is {"five"=>"5"}/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/min_spec.rb b/modules/stdlib/spec/acceptance/min_spec.rb deleted file mode 100755 index 509092d..0000000 --- a/modules/stdlib/spec/acceptance/min_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'min function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'mins arrays' do - pp = <<-EOS - $o = min("the","public","art","galleries") - notice(inline_template('min is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/min is "art"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/nodesets/centos-6-vcloud.yml b/modules/stdlib/spec/acceptance/nodesets/centos-6-vcloud.yml deleted file mode 100644 index ca9c1d3..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/centos-6-vcloud.yml +++ /dev/null @@ -1,15 +0,0 @@ -HOSTS: - 'centos-6-vcloud': - roles: - - master - platform: el-6-x86_64 - hypervisor: vcloud - template: centos-6-x86_64 -CONFIG: - type: foss - ssh: - keys: "~/.ssh/id_rsa-acceptance" - datastore: instance0 - folder: Delivery/Quality Assurance/Enterprise/Dynamic - resourcepool: delivery/Quality Assurance/Enterprise/Dynamic - pooling_api: http://vcloud.delivery.puppetlabs.net/ diff --git a/modules/stdlib/spec/acceptance/nodesets/centos-64-x64-pe.yml b/modules/stdlib/spec/acceptance/nodesets/centos-64-x64-pe.yml deleted file mode 100644 index 7d9242f..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/centos-64-x64-pe.yml +++ /dev/null @@ -1,12 +0,0 @@ -HOSTS: - centos-64-x64: - roles: - - master - - database - - dashboard - platform: el-6-x86_64 - box : centos-64-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: pe diff --git a/modules/stdlib/spec/acceptance/nodesets/centos-64-x64.yml b/modules/stdlib/spec/acceptance/nodesets/centos-64-x64.yml deleted file mode 100644 index 05540ed..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/centos-64-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - centos-64-x64: - roles: - - master - platform: el-6-x86_64 - box : centos-64-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/stdlib/spec/acceptance/nodesets/default.yml b/modules/stdlib/spec/acceptance/nodesets/default.yml deleted file mode 100644 index 4e2cb80..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/default.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - centos-65-x64: - roles: - - master - platform: el-6-x86_64 - box : centos-65-x64-vbox436-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-65-x64-virtualbox-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/stdlib/spec/acceptance/nodesets/fedora-18-x64.yml b/modules/stdlib/spec/acceptance/nodesets/fedora-18-x64.yml deleted file mode 100644 index 1361649..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/fedora-18-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - fedora-18-x64: - roles: - - master - platform: fedora-18-x86_64 - box : fedora-18-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/fedora-18-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/stdlib/spec/acceptance/nodesets/sles-11-x64.yml b/modules/stdlib/spec/acceptance/nodesets/sles-11-x64.yml deleted file mode 100644 index 41abe21..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/sles-11-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - sles-11-x64.local: - roles: - - master - platform: sles-11-x64 - box : sles-11sp1-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/sles-11sp1-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/stdlib/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml b/modules/stdlib/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml deleted file mode 100644 index 5ca1514..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - ubuntu-server-10044-x64: - roles: - - master - platform: ubuntu-10.04-amd64 - box : ubuntu-server-10044-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-10044-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/stdlib/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml b/modules/stdlib/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml deleted file mode 100644 index d065b30..0000000 --- a/modules/stdlib/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - ubuntu-server-12042-x64: - roles: - - master - platform: ubuntu-12.04-amd64 - box : ubuntu-server-12042-x64-vbox4210-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box - hypervisor : vagrant -CONFIG: - type: foss diff --git a/modules/stdlib/spec/acceptance/num2bool_spec.rb b/modules/stdlib/spec/acceptance/num2bool_spec.rb deleted file mode 100755 index 1d99ba0..0000000 --- a/modules/stdlib/spec/acceptance/num2bool_spec.rb +++ /dev/null @@ -1,76 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'num2bool function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'bools positive numbers and numeric strings as true' do - pp = <<-EOS - $a = 1 - $b = "1" - $c = "50" - $ao = num2bool($a) - $bo = num2bool($b) - $co = num2bool($c) - notice(inline_template('a is <%= @ao.inspect %>')) - notice(inline_template('b is <%= @bo.inspect %>')) - notice(inline_template('c is <%= @co.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/a is true/) - expect(r.stdout).to match(/b is true/) - expect(r.stdout).to match(/c is true/) - end - end - it 'bools negative numbers as false' do - pp = <<-EOS - $a = 0 - $b = -0.1 - $c = ["-50","1"] - $ao = num2bool($a) - $bo = num2bool($b) - $co = num2bool($c) - notice(inline_template('a is <%= @ao.inspect %>')) - notice(inline_template('b is <%= @bo.inspect %>')) - notice(inline_template('c is <%= @co.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/a is false/) - expect(r.stdout).to match(/b is false/) - expect(r.stdout).to match(/c is false/) - end - end - end - describe 'failure' do - it 'fails on words' do - pp = <<-EOS - $a = "a" - $ao = num2bool($a) - notice(inline_template('a is <%= @ao.inspect %>')) - EOS - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/not look like a number/) - end - - it 'fails on numberwords' do - pp = <<-EOS - $b = "1b" - $bo = num2bool($b) - notice(inline_template('b is <%= @bo.inspect %>')) - EOS - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/not look like a number/) - - end - - it 'fails on non-numeric/strings' do - pending "The function will call .to_s.to_i on anything not a Numeric or - String, and results in 0. Is this intended?" - pp = <<-EOS - $c = {"c" => "-50"} - $co = num2bool($c) - notice(inline_template('c is <%= @co.inspect %>')) - EOS - expect(apply_manifest(ppc :expect_failures => true).stderr).to match(/Unable to parse/) - end - end -end diff --git a/modules/stdlib/spec/acceptance/parsejson_spec.rb b/modules/stdlib/spec/acceptance/parsejson_spec.rb deleted file mode 100755 index 5097810..0000000 --- a/modules/stdlib/spec/acceptance/parsejson_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'parsejson function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'parses valid json' do - pp = <<-EOS - $a = '{"hunter": "washere", "tests": "passing"}' - $ao = parsejson($a) - $tests = $ao['tests'] - notice(inline_template('tests are <%= @tests.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/tests are "passing"/) - end - end - end - describe 'failure' do - it 'raises error on incorrect json' do - pp = <<-EOS - $a = '{"hunter": "washere", "tests": "passing",}' - $ao = parsejson($a) - notice(inline_template('a is <%= @ao.inspect %>')) - EOS - - apply_manifest(pp, :expect_failures => true) do |r| - expect(r.stderr).to match(/expected next name/) - end - end - - it 'raises error on incorrect number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/parseyaml_spec.rb b/modules/stdlib/spec/acceptance/parseyaml_spec.rb deleted file mode 100755 index 5819837..0000000 --- a/modules/stdlib/spec/acceptance/parseyaml_spec.rb +++ /dev/null @@ -1,35 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'parseyaml function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'parses valid yaml' do - pp = <<-EOS - $a = "---\nhunter: washere\ntests: passing\n" - $o = parseyaml($a) - $tests = $o['tests'] - notice(inline_template('tests are <%= @tests.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/tests are "passing"/) - end - end - end - describe 'failure' do - it 'raises error on incorrect yaml' do - pp = <<-EOS - $a = "---\nhunter: washere\ntests: passing\n:" - $o = parseyaml($a) - $tests = $o['tests'] - notice(inline_template('tests are <%= @tests.inspect %>')) - EOS - - apply_manifest(pp, :expect_failures => true) do |r| - expect(r.stderr).to match(/(syntax error|did not find expected key)/) - end - end - - it 'raises error on incorrect number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/pick_default_spec.rb b/modules/stdlib/spec/acceptance/pick_default_spec.rb deleted file mode 100755 index a663f54..0000000 --- a/modules/stdlib/spec/acceptance/pick_default_spec.rb +++ /dev/null @@ -1,54 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'pick_default function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'pick_defaults a default value' do - pp = <<-EOS - $a = undef - $o = pick_default($a, 'default') - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/picked is "default"/) - end - end - it 'pick_defaults with no value' do - pp = <<-EOS - $a = undef - $b = undef - $o = pick_default($a,$b) - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/picked is ""/) - end - end - it 'pick_defaults the first set value' do - pp = <<-EOS - $a = "something" - $b = "long" - $o = pick_default($a, $b, 'default') - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/picked is "something"/) - end - end - end - describe 'failure' do - it 'raises error with no values' do - pp = <<-EOS - $o = pick_default() - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :expect_failures => true) do |r| - expect(r.stderr).to match(/Must receive at least one argument/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/pick_spec.rb b/modules/stdlib/spec/acceptance/pick_spec.rb deleted file mode 100755 index 46cf63f..0000000 --- a/modules/stdlib/spec/acceptance/pick_spec.rb +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'pick function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'picks a default value' do - pp = <<-EOS - $a = undef - $o = pick($a, 'default') - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/picked is "default"/) - end - end - it 'picks the first set value' do - pp = <<-EOS - $a = "something" - $b = "long" - $o = pick($a, $b, 'default') - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/picked is "something"/) - end - end - end - describe 'failure' do - it 'raises error with all undef values' do - pp = <<-EOS - $a = undef - $b = undef - $o = pick($a, $b) - notice(inline_template('picked is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :expect_failures => true) do |r| - expect(r.stderr).to match(/must receive at least one non empty value/) - end - end - end -end diff --git a/modules/stdlib/spec/acceptance/prefix_spec.rb b/modules/stdlib/spec/acceptance/prefix_spec.rb deleted file mode 100755 index de55530..0000000 --- a/modules/stdlib/spec/acceptance/prefix_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'prefix function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'prefixes array of values' do - pp = <<-EOS - $o = prefix(['a','b','c'],'p') - notice(inline_template('prefix is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/prefix is \["pa", "pb", "pc"\]/) - end - end - it 'prefixs with empty array' do - pp = <<-EOS - $o = prefix([],'p') - notice(inline_template('prefix is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/prefix is \[\]/) - end - end - it 'prefixs array of values with undef' do - pp = <<-EOS - $o = prefix(['a','b','c'], undef) - notice(inline_template('prefix is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/prefix is \["a", "b", "c"\]/) - end - end - end - describe 'failure' do - it 'fails with no arguments' - it 'fails when first argument is not array' - it 'fails when second argument is not string' - end -end diff --git a/modules/stdlib/spec/acceptance/range_spec.rb b/modules/stdlib/spec/acceptance/range_spec.rb deleted file mode 100755 index a3ccd33..0000000 --- a/modules/stdlib/spec/acceptance/range_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'range function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'ranges letters' do - pp = <<-EOS - $o = range('a','d') - notice(inline_template('range is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/range is \["a", "b", "c", "d"\]/) - end - end - it 'ranges letters with a step' do - pp = <<-EOS - $o = range('a','d', '2') - notice(inline_template('range is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/range is \["a", "c"\]/) - end - end - it 'ranges letters with a negative step' - it 'ranges numbers' - it 'ranges numbers with a step' - it 'ranges numbers with a negative step' - it 'ranges numeric strings' - it 'ranges zero padded numbers' - end - describe 'failure' do - it 'fails with no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/reject_spec.rb b/modules/stdlib/spec/acceptance/reject_spec.rb deleted file mode 100755 index 7f16a00..0000000 --- a/modules/stdlib/spec/acceptance/reject_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'reject function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'rejects array of values' do - pp = <<-EOS - $o = reject(['aaa','bbb','ccc','aaaddd'], 'aaa') - notice(inline_template('reject is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/reject is \["bbb", "ccc"\]/) - end - end - it 'rejects with empty array' do - pp = <<-EOS - $o = reject([],'aaa') - notice(inline_template('reject is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/reject is \[\]/) - end - end - it 'rejects array of values with undef' do - pp = <<-EOS - $o = reject(['aaa','bbb','ccc','aaaddd'], undef) - notice(inline_template('reject is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/reject is \[\]/) - end - end - end - describe 'failure' do - it 'fails with no arguments' - it 'fails when first argument is not array' - it 'fails when second argument is not string' - end -end diff --git a/modules/stdlib/spec/acceptance/reverse_spec.rb b/modules/stdlib/spec/acceptance/reverse_spec.rb deleted file mode 100755 index c3f0156..0000000 --- a/modules/stdlib/spec/acceptance/reverse_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'reverse function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'reverses strings' do - pp = <<-EOS - $a = "the public art galleries" - # Anagram: Large picture halls, I bet - $o = reverse($a) - notice(inline_template('reverse is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/reverse is "seirellag tra cilbup eht"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/rstrip_spec.rb b/modules/stdlib/spec/acceptance/rstrip_spec.rb deleted file mode 100755 index b57a8b0..0000000 --- a/modules/stdlib/spec/acceptance/rstrip_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'rstrip function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'rstrips arrays' do - pp = <<-EOS - $a = [" the "," public "," art","galleries "] - # Anagram: Large picture halls, I bet - $o = rstrip($a) - notice(inline_template('rstrip is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/rstrip is \[" the", " public", " art", "galleries"\]/) - end - end - it 'rstrips strings' do - pp = <<-EOS - $a = " blowzy night-frumps vex'd jack q " - $o = rstrip($a) - notice(inline_template('rstrip is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/rstrip is " blowzy night-frumps vex'd jack q"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/shuffle_spec.rb b/modules/stdlib/spec/acceptance/shuffle_spec.rb deleted file mode 100755 index b840d1f..0000000 --- a/modules/stdlib/spec/acceptance/shuffle_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'shuffle function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'shuffles arrays' do - pp = <<-EOS - $a = ["1", "2", "3", "4", "5", "6", "7", "8", "the","public","art","galleries"] - # Anagram: Large picture halls, I bet - $o = shuffle($a) - notice(inline_template('shuffle is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to_not match(/shuffle is \["1", "2", "3", "4", "5", "6", "7", "8", "the", "public", "art", "galleries"\]/) - end - end - it 'shuffles strings' do - pp = <<-EOS - $a = "blowzy night-frumps vex'd jack q" - $o = shuffle($a) - notice(inline_template('shuffle is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to_not match(/shuffle is "blowzy night-frumps vex'd jack q"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/size_spec.rb b/modules/stdlib/spec/acceptance/size_spec.rb deleted file mode 100755 index a52b778..0000000 --- a/modules/stdlib/spec/acceptance/size_spec.rb +++ /dev/null @@ -1,55 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'size function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'single string size' do - pp = <<-EOS - $a = 'discombobulate' - $o = size($a) - notice(inline_template('size is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/size is 14/) - end - end - it 'with empty string' do - pp = <<-EOS - $a = '' - $o = size($a) - notice(inline_template('size is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/size is 0/) - end - end - it 'with undef' do - pp = <<-EOS - $a = undef - $o = size($a) - notice(inline_template('size is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/size is 0/) - end - end - it 'strings in array' do - pp = <<-EOS - $a = ['discombobulate', 'moo'] - $o = size($a) - notice(inline_template('size is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/size is 2/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/sort_spec.rb b/modules/stdlib/spec/acceptance/sort_spec.rb deleted file mode 100755 index c85bfab..0000000 --- a/modules/stdlib/spec/acceptance/sort_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'sort function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'sorts arrays' do - pp = <<-EOS - $a = ["the","public","art","galleries"] - # Anagram: Large picture halls, I bet - $o = sort($a) - notice(inline_template('sort is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/sort is \["art", "galleries", "public", "the"\]/) - end - end - it 'sorts strings' do - pp = <<-EOS - $a = "blowzy night-frumps vex'd jack q" - $o = sort($a) - notice(inline_template('sort is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/sort is " '-abcdefghijklmnopqrstuvwxyz"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/squeeze_spec.rb b/modules/stdlib/spec/acceptance/squeeze_spec.rb deleted file mode 100755 index 400a458..0000000 --- a/modules/stdlib/spec/acceptance/squeeze_spec.rb +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'squeeze function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'squeezes arrays' do - pp = <<-EOS - # Real words! - $a = ["wallless", "laparohysterosalpingooophorectomy", "brrr", "goddessship"] - $o = squeeze($a) - notice(inline_template('squeeze is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/squeeze is \["wales", "laparohysterosalpingophorectomy", "br", "godeship"\]/) - end - end - it 'squeezez arrays with an argument' - it 'squeezes strings' do - pp = <<-EOS - $a = "wallless laparohysterosalpingooophorectomy brrr goddessship" - $o = squeeze($a) - notice(inline_template('squeeze is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/squeeze is "wales laparohysterosalpingophorectomy br godeship"/) - end - end - - it 'squeezes strings with an argument' do - pp = <<-EOS - $a = "countessship duchessship governessship hostessship" - $o = squeeze($a, 's') - notice(inline_template('squeeze is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/squeeze is "counteship ducheship governeship hosteship"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/str2bool_spec.rb b/modules/stdlib/spec/acceptance/str2bool_spec.rb deleted file mode 100755 index cf549da..0000000 --- a/modules/stdlib/spec/acceptance/str2bool_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'str2bool function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'works with "y"' do - pp = <<-EOS - $o = str2bool('y') - notice(inline_template('str2bool is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/str2bool is true/) - end - end - it 'works with "Y"' - it 'works with "yes"' - it 'works with "1"' - it 'works with "true"' - it 'works with "n"' - it 'works with "N"' - it 'works with "no"' - it 'works with "0"' - it 'works with "false"' - it 'works with undef' - end - describe 'failure' do - it 'handles no arguments' - it 'handles non arrays or strings' - end -end diff --git a/modules/stdlib/spec/acceptance/str2saltedsha512_spec.rb b/modules/stdlib/spec/acceptance/str2saltedsha512_spec.rb deleted file mode 100755 index 993e63b..0000000 --- a/modules/stdlib/spec/acceptance/str2saltedsha512_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'str2saltedsha512 function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'works with "y"' do - pp = <<-EOS - $o = str2saltedsha512('password') - notice(inline_template('str2saltedsha512 is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/str2saltedsha512 is "[a-f0-9]{136}"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles more than one argument' - it 'handles non strings' - end -end diff --git a/modules/stdlib/spec/acceptance/strftime_spec.rb b/modules/stdlib/spec/acceptance/strftime_spec.rb deleted file mode 100755 index 53b7f90..0000000 --- a/modules/stdlib/spec/acceptance/strftime_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'strftime function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'gives the Century' do - pp = <<-EOS - $o = strftime('%C') - notice(inline_template('strftime is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/strftime is "20"/) - end - end - it 'takes a timezone argument' - end - describe 'failure' do - it 'handles no arguments' - it 'handles invalid format strings' - end -end diff --git a/modules/stdlib/spec/acceptance/strip_spec.rb b/modules/stdlib/spec/acceptance/strip_spec.rb deleted file mode 100755 index 906fd7a..0000000 --- a/modules/stdlib/spec/acceptance/strip_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'strip function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'strips arrays' do - pp = <<-EOS - $a = [" the "," public "," art","galleries "] - # Anagram: Large picture halls, I bet - $o = strip($a) - notice(inline_template('strip is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/strip is \["the", "public", "art", "galleries"\]/) - end - end - it 'strips strings' do - pp = <<-EOS - $a = " blowzy night-frumps vex'd jack q " - $o = strip($a) - notice(inline_template('strip is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/strip is "blowzy night-frumps vex'd jack q"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/suffix_spec.rb b/modules/stdlib/spec/acceptance/suffix_spec.rb deleted file mode 100755 index 630f866..0000000 --- a/modules/stdlib/spec/acceptance/suffix_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'suffix function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'suffixes array of values' do - pp = <<-EOS - $o = suffix(['a','b','c'],'p') - notice(inline_template('suffix is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/suffix is \["ap", "bp", "cp"\]/) - end - end - it 'suffixs with empty array' do - pp = <<-EOS - $o = suffix([],'p') - notice(inline_template('suffix is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/suffix is \[\]/) - end - end - it 'suffixs array of values with undef' do - pp = <<-EOS - $o = suffix(['a','b','c'], undef) - notice(inline_template('suffix is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/suffix is \["a", "b", "c"\]/) - end - end - end - describe 'failure' do - it 'fails with no arguments' - it 'fails when first argument is not array' - it 'fails when second argument is not string' - end -end diff --git a/modules/stdlib/spec/acceptance/swapcase_spec.rb b/modules/stdlib/spec/acceptance/swapcase_spec.rb deleted file mode 100755 index b7894fb..0000000 --- a/modules/stdlib/spec/acceptance/swapcase_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'swapcase function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'works with strings' do - pp = <<-EOS - $o = swapcase('aBcD') - notice(inline_template('swapcase is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/swapcase is "AbCd"/) - end - end - it 'works with arrays' - end - describe 'failure' do - it 'handles no arguments' - it 'handles non arrays or strings' - end -end diff --git a/modules/stdlib/spec/acceptance/time_spec.rb b/modules/stdlib/spec/acceptance/time_spec.rb deleted file mode 100755 index cdb2960..0000000 --- a/modules/stdlib/spec/acceptance/time_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'time function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'gives the time' do - pp = <<-EOS - $o = time() - notice(inline_template('time is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - m = r.stdout.match(/time is (\d+)\D/) - - # When I wrote this test - expect(Integer(m[1])).to be > 1398894170 - end - end - it 'takes a timezone argument' do - pp = <<-EOS - $o = time('UTC') - notice(inline_template('time is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - m = r.stdout.match(/time is (\d+)\D/) - - expect(Integer(m[1])).to be > 1398894170 - end - end - end - describe 'failure' do - it 'handles more arguments' - it 'handles invalid timezones' - end -end diff --git a/modules/stdlib/spec/acceptance/to_bytes_spec.rb b/modules/stdlib/spec/acceptance/to_bytes_spec.rb deleted file mode 100755 index 2b4c61f..0000000 --- a/modules/stdlib/spec/acceptance/to_bytes_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'to_bytes function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'converts kB to B' do - pp = <<-EOS - $o = to_bytes('4 kB') - notice(inline_template('to_bytes is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - m = r.stdout.match(/to_bytes is (\d+)\D/) - expect(m[1]).to eq("4096") - end - end - it 'works without the B in unit' - it 'works without a space before unit' - it 'works without a unit' - it 'converts fractions' - end - describe 'failure' do - it 'handles no arguments' - it 'handles non integer arguments' - it 'handles unknown units like uB' - end -end diff --git a/modules/stdlib/spec/acceptance/type_spec.rb b/modules/stdlib/spec/acceptance/type_spec.rb deleted file mode 100755 index 0043aad..0000000 --- a/modules/stdlib/spec/acceptance/type_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'type function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'types arrays' do - pp = <<-EOS - $a = ["the","public","art","galleries"] - # Anagram: Large picture halls, I bet - $o = type($a) - notice(inline_template('type is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/type is "array"/) - end - end - it 'types strings' do - pp = <<-EOS - $a = "blowzy night-frumps vex'd jack q" - $o = type($a) - notice(inline_template('type is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/type is "string"/) - end - end - it 'types hashes' - it 'types integers' - it 'types floats' - it 'types booleans' - end - describe 'failure' do - it 'handles no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/union_spec.rb b/modules/stdlib/spec/acceptance/union_spec.rb deleted file mode 100755 index 6db8d0c..0000000 --- a/modules/stdlib/spec/acceptance/union_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'union function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'unions arrays' do - pp = <<-EOS - $a = ["the","public"] - $b = ["art","galleries"] - # Anagram: Large picture halls, I bet - $o = union($a,$b) - notice(inline_template('union is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/union is \["the", "public", "art", "galleries"\]/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/unique_spec.rb b/modules/stdlib/spec/acceptance/unique_spec.rb deleted file mode 100755 index bfadad1..0000000 --- a/modules/stdlib/spec/acceptance/unique_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'unique function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'uniques arrays' do - pp = <<-EOS - $a = ["wallless", "wallless", "brrr", "goddessship"] - $o = unique($a) - notice(inline_template('unique is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/unique is \["wallless", "brrr", "goddessship"\]/) - end - end - it 'uniques strings' do - pp = <<-EOS - $a = "wallless laparohysterosalpingooophorectomy brrr goddessship" - $o = unique($a) - notice(inline_template('unique is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/unique is "wales prohytingcmbd"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/unsupported_spec.rb b/modules/stdlib/spec/acceptance/unsupported_spec.rb deleted file mode 100755 index 1c559f6..0000000 --- a/modules/stdlib/spec/acceptance/unsupported_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'unsupported distributions and OSes', :if => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - it 'should fail' do - pp = <<-EOS - class { 'mysql::server': } - EOS - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/unsupported osfamily/i) - end -end diff --git a/modules/stdlib/spec/acceptance/upcase_spec.rb b/modules/stdlib/spec/acceptance/upcase_spec.rb deleted file mode 100755 index 3d2906d..0000000 --- a/modules/stdlib/spec/acceptance/upcase_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'upcase function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'upcases arrays' do - pp = <<-EOS - $a = ["wallless", "laparohysterosalpingooophorectomy", "brrr", "goddessship"] - $o = upcase($a) - notice(inline_template('upcase is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/upcase is \["WALLLESS", "LAPAROHYSTEROSALPINGOOOPHORECTOMY", "BRRR", "GODDESSSHIP"\]/) - end - end - it 'upcases strings' do - pp = <<-EOS - $a = "wallless laparohysterosalpingooophorectomy brrr goddessship" - $o = upcase($a) - notice(inline_template('upcase is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/upcase is "WALLLESS LAPAROHYSTEROSALPINGOOOPHORECTOMY BRRR GODDESSSHIP"/) - end - end - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/uriescape_spec.rb b/modules/stdlib/spec/acceptance/uriescape_spec.rb deleted file mode 100755 index 7e30205..0000000 --- a/modules/stdlib/spec/acceptance/uriescape_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'uriescape function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'uriescape strings' do - pp = <<-EOS - $a = ":/?#[]@!$&'()*+,;= \\\"{}" - $o = uriescape($a) - notice(inline_template('uriescape is <%= @o.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/uriescape is ":\/\?%23\[\]@!\$&'\(\)\*\+,;=%20%22%7B%7D"/) - end - end - it 'does nothing if a string is already safe' - end - describe 'failure' do - it 'handles no arguments' - it 'handles non strings or arrays' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_absolute_path_spec.rb b/modules/stdlib/spec/acceptance/validate_absolute_path_spec.rb deleted file mode 100755 index 7082e84..0000000 --- a/modules/stdlib/spec/acceptance/validate_absolute_path_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_absolute_path function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - %w{ - C:/ - C:\\\\ - C:\\\\WINDOWS\\\\System32 - C:/windows/system32 - X:/foo/bar - X:\\\\foo\\\\bar - /var/tmp - /var/lib/puppet - /var/opt/../lib/puppet - }.each do |path| - it "validates a single argument #{path}" do - pp = <<-EOS - $one = '#{path}' - validate_absolute_path($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - end - end - describe 'failure' do - it 'handles improper number of arguments' - it 'handles relative paths' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_array_spec.rb b/modules/stdlib/spec/acceptance/validate_array_spec.rb deleted file mode 100755 index b53e98c..0000000 --- a/modules/stdlib/spec/acceptance/validate_array_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_array function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = ['a', 'b'] - validate_array($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = ['a', 'b'] - $two = [['c'], 'd'] - validate_array($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a non-array' do - { - %{validate_array({'a' => 'hash' })} => "Hash", - %{validate_array('string')} => "String", - %{validate_array(false)} => "FalseClass", - %{validate_array(undef)} => "String" - }.each do |pp,type| - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/) - end - end - end - describe 'failure' do - it 'handles improper number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_augeas_spec.rb b/modules/stdlib/spec/acceptance/validate_augeas_spec.rb deleted file mode 100755 index aeec67a..0000000 --- a/modules/stdlib/spec/acceptance/validate_augeas_spec.rb +++ /dev/null @@ -1,63 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_augeas function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'prep' do - it 'installs augeas for tests' - end - describe 'success' do - context 'valid inputs with no 3rd argument' do - { - 'root:x:0:0:root:/root:/bin/bash\n' => 'Passwd.lns', - 'proc /proc proc nodev,noexec,nosuid 0 0\n' => 'Fstab.lns' - }.each do |line,lens| - it "validates a single argument for #{lens}" do - pp = <<-EOS - $line = "#{line}" - $lens = "#{lens}" - validate_augeas($line, $lens) - EOS - - apply_manifest(pp, :catch_failures => true) - end - end - end - context 'valid inputs with 3rd and 4th arguments' do - it "validates a restricted value" do - line = 'root:x:0:0:root:/root:/bin/barsh\n' - lens = 'Passwd.lns' - restriction = '$file/*[shell="/bin/barsh"]' - pp = <<-EOS - $line = "#{line}" - $lens = "#{lens}" - $restriction = ['#{restriction}'] - validate_augeas($line, $lens, $restriction, "my custom failure message") - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/my custom failure message/) - end - end - context 'invalid inputs' do - { - 'root:x:0:0:root' => 'Passwd.lns', - '127.0.1.1' => 'Hosts.lns' - }.each do |line,lens| - it "validates a single argument for #{lens}" do - pp = <<-EOS - $line = "#{line}" - $lens = "#{lens}" - validate_augeas($line, $lens) - EOS - - apply_manifest(pp, :expect_failures => true) - end - end - end - context 'garbage inputs' do - it 'raises an error on invalid inputs' - end - end - describe 'failure' do - it 'handles improper number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_bool_spec.rb b/modules/stdlib/spec/acceptance/validate_bool_spec.rb deleted file mode 100755 index c837f08..0000000 --- a/modules/stdlib/spec/acceptance/validate_bool_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_bool function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = true - validate_bool($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = true - $two = false - validate_bool($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a non-bool' do - { - %{validate_bool('true')} => "String", - %{validate_bool('false')} => "String", - %{validate_bool([true])} => "Array", - %{validate_bool(undef)} => "String", - }.each do |pp,type| - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/) - end - end - end - describe 'failure' do - it 'handles improper number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_cmd_spec.rb b/modules/stdlib/spec/acceptance/validate_cmd_spec.rb deleted file mode 100755 index 385676d..0000000 --- a/modules/stdlib/spec/acceptance/validate_cmd_spec.rb +++ /dev/null @@ -1,50 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_cmd function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a true command' do - pp = <<-EOS - $one = 'foo' - if $::osfamily == 'windows' { - $two = 'echo' #shell built-in - } else { - $two = '/bin/echo' - } - validate_cmd($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a fail command' do - pp = <<-EOS - $one = 'foo' - if $::osfamily == 'windows' { - $two = 'C:/aoeu' - } else { - $two = '/bin/aoeu' - } - validate_cmd($one,$two) - EOS - - apply_manifest(pp, :expect_failures => true) - end - it 'validates a fail command with a custom error message' do - pp = <<-EOS - $one = 'foo' - if $::osfamily == 'windows' { - $two = 'C:/aoeu' - } else { - $two = '/bin/aoeu' - } - validate_cmd($one,$two,"aoeu is dvorak) - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/aoeu is dvorak/) - end - end - describe 'failure' do - it 'handles improper number of arguments' - it 'handles improper argument types' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_hash_spec.rb b/modules/stdlib/spec/acceptance/validate_hash_spec.rb deleted file mode 100755 index 52fb615..0000000 --- a/modules/stdlib/spec/acceptance/validate_hash_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_hash function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = { 'a' => 1 } - validate_hash($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = { 'a' => 1 } - $two = { 'b' => 2 } - validate_hash($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a non-hash' do - { - %{validate_hash('{ "not" => "hash" }')} => "String", - %{validate_hash('string')} => "String", - %{validate_hash(["array"])} => "Array", - %{validate_hash(undef)} => "String", - }.each do |pp,type| - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/) - end - end - end - describe 'failure' do - it 'handles improper number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_ipv4_address_spec.rb b/modules/stdlib/spec/acceptance/validate_ipv4_address_spec.rb deleted file mode 100755 index 64841c3..0000000 --- a/modules/stdlib/spec/acceptance/validate_ipv4_address_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_ipv4_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = '1.2.3.4' - validate_ipv4_address($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = '1.2.3.4' - $two = '5.6.7.8' - validate_ipv4_address($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - end - describe 'failure' do - it 'handles improper number of arguments' - it 'handles ipv6 addresses' - it 'handles non-ipv4 strings' - it 'handles numbers' - it 'handles no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_ipv6_address_spec.rb b/modules/stdlib/spec/acceptance/validate_ipv6_address_spec.rb deleted file mode 100755 index 6426d1a..0000000 --- a/modules/stdlib/spec/acceptance/validate_ipv6_address_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_ipv6_address function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = '3ffe:0505:0002::' - validate_ipv6_address($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = '3ffe:0505:0002::' - $two = '3ffe:0505:0001::' - validate_ipv6_address($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - end - describe 'failure' do - it 'handles improper number of arguments' - it 'handles ipv6 addresses' - it 'handles non-ipv6 strings' - it 'handles numbers' - it 'handles no arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_re_spec.rb b/modules/stdlib/spec/acceptance/validate_re_spec.rb deleted file mode 100755 index 22f6d47..0000000 --- a/modules/stdlib/spec/acceptance/validate_re_spec.rb +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_re function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a string' do - pp = <<-EOS - $one = 'one' - $two = '^one$' - validate_re($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an array' do - pp = <<-EOS - $one = 'one' - $two = ['^one$', '^two'] - validate_re($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a failed array' do - pp = <<-EOS - $one = 'one' - $two = ['^two$', '^three'] - validate_re($one,$two) - EOS - - apply_manifest(pp, :expect_failures => true) - end - it 'validates a failed array with a custom error message' do - pp = <<-EOS - $one = '3.4.3' - $two = '^2.7' - validate_re($one,$two,"The $puppetversion fact does not match 2.7") - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/does not match/) - end - end - describe 'failure' do - it 'handles improper number of arguments' - it 'handles improper argument types' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_slength_spec.rb b/modules/stdlib/spec/acceptance/validate_slength_spec.rb deleted file mode 100755 index 1ab2bb9..0000000 --- a/modules/stdlib/spec/acceptance/validate_slength_spec.rb +++ /dev/null @@ -1,72 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_slength function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single string max' do - pp = <<-EOS - $one = 'discombobulate' - $two = 17 - validate_slength($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates multiple string maxes' do - pp = <<-EOS - $one = ['discombobulate', 'moo'] - $two = 17 - validate_slength($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates min/max of strings in array' do - pp = <<-EOS - $one = ['discombobulate', 'moo'] - $two = 17 - $three = 3 - validate_slength($one,$two,$three) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a single string max of incorrect length' do - pp = <<-EOS - $one = 'discombobulate' - $two = 1 - validate_slength($one,$two) - EOS - - apply_manifest(pp, :expect_failures => true) - end - it 'validates multiple string maxes of incorrect length' do - pp = <<-EOS - $one = ['discombobulate', 'moo'] - $two = 3 - validate_slength($one,$two) - EOS - - apply_manifest(pp, :expect_failures => true) - end - it 'validates multiple strings min/maxes of incorrect length' do - pp = <<-EOS - $one = ['discombobulate', 'moo'] - $two = 17 - $three = 10 - validate_slength($one,$two,$three) - EOS - - apply_manifest(pp, :expect_failures => true) - end - end - describe 'failure' do - it 'handles improper number of arguments' - it 'handles improper first argument type' - it 'handles non-strings in array of first argument' - it 'handles improper second argument type' - it 'handles improper third argument type' - it 'handles negative ranges' - it 'handles improper ranges' - end -end diff --git a/modules/stdlib/spec/acceptance/validate_string_spec.rb b/modules/stdlib/spec/acceptance/validate_string_spec.rb deleted file mode 100755 index 8956f48..0000000 --- a/modules/stdlib/spec/acceptance/validate_string_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'validate_string function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'validates a single argument' do - pp = <<-EOS - $one = 'string' - validate_string($one) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates an multiple arguments' do - pp = <<-EOS - $one = 'string' - $two = 'also string' - validate_string($one,$two) - EOS - - apply_manifest(pp, :catch_failures => true) - end - it 'validates a non-string' do - { - %{validate_string({ 'a' => 'hash' })} => "Hash", - %{validate_string(['array'])} => "Array", - %{validate_string(false)} => "FalseClass", - }.each do |pp,type| - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/) - end - end - end - describe 'failure' do - it 'handles improper number of arguments' - end -end diff --git a/modules/stdlib/spec/acceptance/values_at_spec.rb b/modules/stdlib/spec/acceptance/values_at_spec.rb deleted file mode 100755 index da63cf3..0000000 --- a/modules/stdlib/spec/acceptance/values_at_spec.rb +++ /dev/null @@ -1,73 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'values_at function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'returns a specific value' do - pp = <<-EOS - $one = ['a','b','c','d','e'] - $two = 1 - $output = values_at($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["b"\]/) - end - it 'returns a specific negative index value' do - pending("negative numbers don't work") - pp = <<-EOS - $one = ['a','b','c','d','e'] - $two = -1 - $output = values_at($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["e"\]/) - end - it 'returns a range of values' do - pp = <<-EOS - $one = ['a','b','c','d','e'] - $two = "1-3" - $output = values_at($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["b", "c", "d"\]/) - end - it 'returns a negative specific value and range of values' do - pp = <<-EOS - $one = ['a','b','c','d','e'] - $two = ["1-3",0] - $output = values_at($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["b", "c", "d", "a"\]/) - end - end - describe 'failure' do - it 'handles improper number of arguments' do - pp = <<-EOS - $one = ['a','b','c','d','e'] - $output = values_at($one) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/Wrong number of arguments/) - end - it 'handles non-indicies arguments' do - pp = <<-EOS - $one = ['a','b','c','d','e'] - $two = [] - $output = values_at($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/at least one positive index/) - end - - it 'detects index ranges smaller than the start range' - it 'handles index ranges larger than array' - it 'handles non-integer indicies' - end -end diff --git a/modules/stdlib/spec/acceptance/values_spec.rb b/modules/stdlib/spec/acceptance/values_spec.rb deleted file mode 100755 index 7ef956e..0000000 --- a/modules/stdlib/spec/acceptance/values_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' - -describe 'values function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'returns an array of values' do - pp = <<-EOS - $arg = { - 'a' => 1, - 'b' => 2, - 'c' => 3, - } - $output = values($arg) - notice(inline_template('<%= @output.sort.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["1", "2", "3"\]/) - end - end - describe 'failure' do - it 'handles non-hash arguments' do - pp = <<-EOS - $arg = "foo" - $output = values($arg) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/Requires hash/) - end - end -end diff --git a/modules/stdlib/spec/acceptance/zip_spec.rb b/modules/stdlib/spec/acceptance/zip_spec.rb deleted file mode 100755 index 0e924e8..0000000 --- a/modules/stdlib/spec/acceptance/zip_spec.rb +++ /dev/null @@ -1,74 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper_acceptance' -require 'puppet' - -describe 'zip function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do - describe 'success' do - it 'zips two arrays of numbers together' do - pp = <<-EOS - $one = [1,2,3,4] - $two = [5,6,7,8] - $output = zip($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\[\["1", "5"\], \["2", "6"\], \["3", "7"\], \["4", "8"\]\]/) - end - it 'zips two arrays of numbers & bools together' do - pp = <<-EOS - $one = [1,2,"three",4] - $two = [true,true,false,false] - $output = zip($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\[\["1", true\], \["2", true\], \["three", false\], \["4", false\]\]/) - end - it 'zips two arrays of numbers together and flattens them' do - # XXX This only tests the argument `true`, even though the following are valid: - # 1 t y true yes - # 0 f n false no - # undef undefined - pp = <<-EOS - $one = [1,2,3,4] - $two = [5,6,7,8] - $output = zip($one,$two,true) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\["1", "5", "2", "6", "3", "7", "4", "8"\]/) - end - it 'handles unmatched length' do - # XXX Is this expected behavior? - pp = <<-EOS - $one = [1,2] - $two = [5,6,7,8] - $output = zip($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :catch_failures => true).stdout).to match(/\[\["1", "5"\], \["2", "6"\]\]/) - end - end - describe 'failure' do - it 'handles improper number of arguments' do - pp = <<-EOS - $one = [1,2] - $output = zip($one) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/Wrong number of arguments/) - end - it 'handles improper argument types' do - pp = <<-EOS - $one = "a string" - $two = [5,6,7,8] - $output = zip($one,$two) - notice(inline_template('<%= @output.inspect %>')) - EOS - - expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/Requires array/) - end - end -end diff --git a/modules/stdlib/spec/classes/anchor_spec.rb b/modules/stdlib/spec/classes/anchor_spec.rb deleted file mode 100755 index 2d4455e..0000000 --- a/modules/stdlib/spec/classes/anchor_spec.rb +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'puppet_spec/compiler' - -describe "anchorrefresh" do - include PuppetSpec::Compiler - - let :transaction do - apply_compiled_manifest(<<-ANCHORCLASS) - class anchored { - anchor { 'anchored::begin': } - ~> anchor { 'anchored::end': } - } - - class anchorrefresh { - notify { 'first': } - ~> class { 'anchored': } - ~> anchor { 'final': } - } - - include anchorrefresh - ANCHORCLASS - end - - it 'propagates events through the anchored class' do - resource = transaction.resource_status('Anchor[final]') - - expect(resource.restarted).to eq(true) - end -end diff --git a/modules/stdlib/spec/fixtures/dscacheutil/root b/modules/stdlib/spec/fixtures/dscacheutil/root deleted file mode 100644 index 1e34519..0000000 --- a/modules/stdlib/spec/fixtures/dscacheutil/root +++ /dev/null @@ -1,8 +0,0 @@ -name: root -password: * -uid: 0 -gid: 0 -dir: /var/root -shell: /bin/bash -gecos: rawr Root - diff --git a/modules/stdlib/spec/fixtures/manifests/site.pp b/modules/stdlib/spec/fixtures/manifests/site.pp deleted file mode 100644 index e69de29..0000000 diff --git a/modules/stdlib/spec/functions/abs_spec.rb b/modules/stdlib/spec/functions/abs_spec.rb deleted file mode 100755 index c0b4297..0000000 --- a/modules/stdlib/spec/functions/abs_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the abs function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("abs").should == "function_abs" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_abs([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert a negative number into a positive" do - result = scope.function_abs(["-34"]) - result.should(eq(34)) - end - - it "should do nothing with a positive number" do - result = scope.function_abs(["5678"]) - result.should(eq(5678)) - end -end diff --git a/modules/stdlib/spec/functions/any2array_spec.rb b/modules/stdlib/spec/functions/any2array_spec.rb deleted file mode 100755 index b266e84..0000000 --- a/modules/stdlib/spec/functions/any2array_spec.rb +++ /dev/null @@ -1,55 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the any2array function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("any2array").should == "function_any2array" - end - - it "should return an empty array if there is less than 1 argument" do - result = scope.function_any2array([]) - result.should(eq([])) - end - - it "should convert boolean true to [ true ] " do - result = scope.function_any2array([true]) - result.should(eq([true])) - end - - it "should convert one object to [object]" do - result = scope.function_any2array(['one']) - result.should(eq(['one'])) - end - - it "should convert multiple objects to [objects]" do - result = scope.function_any2array(['one', 'two']) - result.should(eq(['one', 'two'])) - end - - it "should return empty array it was called with" do - result = scope.function_any2array([[]]) - result.should(eq([])) - end - - it "should return one-member array it was called with" do - result = scope.function_any2array([['string']]) - result.should(eq(['string'])) - end - - it "should return multi-member array it was called with" do - result = scope.function_any2array([['one', 'two']]) - result.should(eq(['one', 'two'])) - end - - it "should return members of a hash it was called with" do - result = scope.function_any2array([{ 'key' => 'value' }]) - result.should(eq(['key', 'value'])) - end - - it "should return an empty array if it was called with an empty hash" do - result = scope.function_any2array([{ }]) - result.should(eq([])) - end -end diff --git a/modules/stdlib/spec/functions/base64_spec.rb b/modules/stdlib/spec/functions/base64_spec.rb deleted file mode 100755 index 5faa5e6..0000000 --- a/modules/stdlib/spec/functions/base64_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the base64 function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("base64").should == "function_base64" - end - - it "should raise a ParseError if there are other than 2 arguments" do - expect { scope.function_base64([]) }.to(raise_error(Puppet::ParseError)) - expect { scope.function_base64(["asdf"]) }.to(raise_error(Puppet::ParseError)) - expect { scope.function_base64(["asdf","moo","cow"]) }.to(raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if argument 1 isn't 'encode' or 'decode'" do - expect { scope.function_base64(["bees","astring"]) }.to(raise_error(Puppet::ParseError, /first argument must be one of/)) - end - - it "should raise a ParseError if argument 2 isn't a string" do - expect { scope.function_base64(["encode",["2"]]) }.to(raise_error(Puppet::ParseError, /second argument must be a string/)) - end - - it "should encode a encoded string" do - result = scope.function_base64(["encode",'thestring']) - result.should =~ /\AdGhlc3RyaW5n\n\Z/ - end - it "should decode a base64 encoded string" do - result = scope.function_base64(["decode",'dGhlc3RyaW5n']) - result.should == 'thestring' - end -end diff --git a/modules/stdlib/spec/functions/bool2num_spec.rb b/modules/stdlib/spec/functions/bool2num_spec.rb deleted file mode 100755 index 518ac85..0000000 --- a/modules/stdlib/spec/functions/bool2num_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the bool2num function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("bool2num").should == "function_bool2num" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_bool2num([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert true to 1" do - result = scope.function_bool2num([true]) - result.should(eq(1)) - end - - it "should convert false to 0" do - result = scope.function_bool2num([false]) - result.should(eq(0)) - end -end diff --git a/modules/stdlib/spec/functions/capitalize_spec.rb b/modules/stdlib/spec/functions/capitalize_spec.rb deleted file mode 100755 index 69c9758..0000000 --- a/modules/stdlib/spec/functions/capitalize_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the capitalize function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("capitalize").should == "function_capitalize" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_capitalize([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should capitalize the beginning of a string" do - result = scope.function_capitalize(["abc"]) - result.should(eq("Abc")) - end -end diff --git a/modules/stdlib/spec/functions/chomp_spec.rb b/modules/stdlib/spec/functions/chomp_spec.rb deleted file mode 100755 index e425365..0000000 --- a/modules/stdlib/spec/functions/chomp_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the chomp function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("chomp").should == "function_chomp" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_chomp([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should chomp the end of a string" do - result = scope.function_chomp(["abc\n"]) - result.should(eq("abc")) - end -end diff --git a/modules/stdlib/spec/functions/chop_spec.rb b/modules/stdlib/spec/functions/chop_spec.rb deleted file mode 100755 index 9e466de..0000000 --- a/modules/stdlib/spec/functions/chop_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the chop function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("chop").should == "function_chop" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_chop([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should chop the end of a string" do - result = scope.function_chop(["asdf\n"]) - result.should(eq("asdf")) - end -end diff --git a/modules/stdlib/spec/functions/concat_spec.rb b/modules/stdlib/spec/functions/concat_spec.rb deleted file mode 100755 index 6e67620..0000000 --- a/modules/stdlib/spec/functions/concat_spec.rb +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the concat function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should raise a ParseError if the client does not provide two arguments" do - lambda { scope.function_concat([]) }.should(raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if the first parameter is not an array" do - lambda { scope.function_concat([1, []])}.should(raise_error(Puppet::ParseError)) - end - - it "should be able to concat an array" do - result = scope.function_concat([['1','2','3'],['4','5','6']]) - result.should(eq(['1','2','3','4','5','6'])) - end - - it "should be able to concat a primitive to an array" do - result = scope.function_concat([['1','2','3'],'4']) - result.should(eq(['1','2','3','4'])) - end - - it "should not accidentally flatten nested arrays" do - result = scope.function_concat([['1','2','3'],[['4','5'],'6']]) - result.should(eq(['1','2','3',['4','5'],'6'])) - end - -end diff --git a/modules/stdlib/spec/functions/count_spec.rb b/modules/stdlib/spec/functions/count_spec.rb deleted file mode 100755 index 2453815..0000000 --- a/modules/stdlib/spec/functions/count_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the count function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("count").should == "function_count" - end - - it "should raise a ArgumentError if there is more than 2 arguments" do - lambda { scope.function_count(['foo', 'bar', 'baz']) }.should( raise_error(ArgumentError)) - end - - it "should be able to count arrays" do - scope.function_count([["1","2","3"]]).should(eq(3)) - end - - it "should be able to count matching elements in arrays" do - scope.function_count([["1", "2", "2"], "2"]).should(eq(2)) - end - - it "should not count nil or empty strings" do - scope.function_count([["foo","bar",nil,""]]).should(eq(2)) - end - - it 'does not count an undefined hash key or an out of bound array index (which are both :undef)' do - expect(scope.function_count([["foo",:undef,:undef]])).to eq(1) - end -end diff --git a/modules/stdlib/spec/functions/deep_merge_spec.rb b/modules/stdlib/spec/functions/deep_merge_spec.rb deleted file mode 100755 index f134701..0000000 --- a/modules/stdlib/spec/functions/deep_merge_spec.rb +++ /dev/null @@ -1,105 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:deep_merge) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe 'when calling deep_merge from puppet' do - it "should not compile when no arguments are passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = '$x = deep_merge()' - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should not compile when 1 argument is passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = "$my_hash={'one' => 1}\n$x = deep_merge($my_hash)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - end - - describe 'when calling deep_merge on the scope instance' do - it 'should require all parameters are hashes' do - expect { new_hash = scope.function_deep_merge([{}, '2'])}.to raise_error(Puppet::ParseError, /unexpected argument type String/) - expect { new_hash = scope.function_deep_merge([{}, 2])}.to raise_error(Puppet::ParseError, /unexpected argument type Fixnum/) - end - - it 'should accept empty strings as puppet undef' do - expect { new_hash = scope.function_deep_merge([{}, ''])}.not_to raise_error - end - - it 'should be able to deep_merge two hashes' do - new_hash = scope.function_deep_merge([{'one' => '1', 'two' => '1'}, {'two' => '2', 'three' => '2'}]) - new_hash['one'].should == '1' - new_hash['two'].should == '2' - new_hash['three'].should == '2' - end - - it 'should deep_merge multiple hashes' do - hash = scope.function_deep_merge([{'one' => 1}, {'one' => '2'}, {'one' => '3'}]) - hash['one'].should == '3' - end - - it 'should accept empty hashes' do - scope.function_deep_merge([{},{},{}]).should == {} - end - - it 'should deep_merge subhashes' do - hash = scope.function_deep_merge([{'one' => 1}, {'two' => 2, 'three' => { 'four' => 4 } }]) - hash['one'].should == 1 - hash['two'].should == 2 - hash['three'].should == { 'four' => 4 } - end - - it 'should append to subhashes' do - hash = scope.function_deep_merge([{'one' => { 'two' => 2 } }, { 'one' => { 'three' => 3 } }]) - hash['one'].should == { 'two' => 2, 'three' => 3 } - end - - it 'should append to subhashes 2' do - hash = scope.function_deep_merge([{'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } }, {'two' => 'dos', 'three' => { 'five' => 5 } }]) - hash['one'].should == 1 - hash['two'].should == 'dos' - hash['three'].should == { 'four' => 4, 'five' => 5 } - end - - it 'should append to subhashes 3' do - hash = scope.function_deep_merge([{ 'key1' => { 'a' => 1, 'b' => 2 }, 'key2' => { 'c' => 3 } }, { 'key1' => { 'b' => 99 } }]) - hash['key1'].should == { 'a' => 1, 'b' => 99 } - hash['key2'].should == { 'c' => 3 } - end - - it 'should not change the original hashes' do - hash1 = {'one' => { 'two' => 2 } } - hash2 = { 'one' => { 'three' => 3 } } - hash = scope.function_deep_merge([hash1, hash2]) - hash1.should == {'one' => { 'two' => 2 } } - hash2.should == { 'one' => { 'three' => 3 } } - hash['one'].should == { 'two' => 2, 'three' => 3 } - end - - it 'should not change the original hashes 2' do - hash1 = {'one' => { 'two' => [1,2] } } - hash2 = { 'one' => { 'three' => 3 } } - hash = scope.function_deep_merge([hash1, hash2]) - hash1.should == {'one' => { 'two' => [1,2] } } - hash2.should == { 'one' => { 'three' => 3 } } - hash['one'].should == { 'two' => [1,2], 'three' => 3 } - end - - it 'should not change the original hashes 3' do - hash1 = {'one' => { 'two' => [1,2, {'two' => 2} ] } } - hash2 = { 'one' => { 'three' => 3 } } - hash = scope.function_deep_merge([hash1, hash2]) - hash1.should == {'one' => { 'two' => [1,2, {'two' => 2}] } } - hash2.should == { 'one' => { 'three' => 3 } } - hash['one'].should == { 'two' => [1,2, {'two' => 2} ], 'three' => 3 } - hash['one']['two'].should == [1,2, {'two' => 2}] - end - end -end diff --git a/modules/stdlib/spec/functions/defined_with_params_spec.rb b/modules/stdlib/spec/functions/defined_with_params_spec.rb deleted file mode 100755 index 28dbab3..0000000 --- a/modules/stdlib/spec/functions/defined_with_params_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -require 'rspec-puppet' -describe 'defined_with_params' do - describe 'when a resource is not specified' do - it { should run.with_params().and_raise_error(ArgumentError) } - end - describe 'when compared against a resource with no attributes' do - let :pre_condition do - 'user { "dan": }' - end - it do - should run.with_params('User[dan]', {}).and_return(true) - should run.with_params('User[bob]', {}).and_return(false) - should run.with_params('User[dan]', {'foo' => 'bar'}).and_return(false) - end - end - - describe 'when compared against a resource with attributes' do - let :pre_condition do - 'user { "dan": ensure => present, shell => "/bin/csh", managehome => false}' - end - it do - should run.with_params('User[dan]', {}).and_return(true) - should run.with_params('User[dan]', '').and_return(true) - should run.with_params('User[dan]', {'ensure' => 'present'} - ).and_return(true) - should run.with_params('User[dan]', - {'ensure' => 'present', 'managehome' => false} - ).and_return(true) - should run.with_params('User[dan]', - {'ensure' => 'absent', 'managehome' => false} - ).and_return(false) - end - end -end diff --git a/modules/stdlib/spec/functions/delete_at_spec.rb b/modules/stdlib/spec/functions/delete_at_spec.rb deleted file mode 100755 index 593cf45..0000000 --- a/modules/stdlib/spec/functions/delete_at_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the delete_at function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("delete_at").should == "function_delete_at" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_delete_at([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should delete an item at specified location from an array" do - result = scope.function_delete_at([['a','b','c'],1]) - result.should(eq(['a','c'])) - end - - it "should not change origin array passed as argument" do - origin_array = ['a','b','c','d'] - result = scope.function_delete_at([origin_array, 1]) - origin_array.should(eq(['a','b','c','d'])) - end -end diff --git a/modules/stdlib/spec/functions/delete_spec.rb b/modules/stdlib/spec/functions/delete_spec.rb deleted file mode 100755 index 1508a63..0000000 --- a/modules/stdlib/spec/functions/delete_spec.rb +++ /dev/null @@ -1,56 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the delete function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("delete").should == "function_delete" - end - - it "should raise a ParseError if there are fewer than 2 arguments" do - lambda { scope.function_delete([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if there are greater than 2 arguments" do - lambda { scope.function_delete([[], 'foo', 'bar']) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a TypeError if a number is passed as the first argument" do - lambda { scope.function_delete([1, 'bar']) }.should( raise_error(TypeError)) - end - - it "should delete all instances of an element from an array" do - result = scope.function_delete([['a','b','c','b'],'b']) - result.should(eq(['a','c'])) - end - - it "should delete all instances of a substring from a string" do - result = scope.function_delete(['foobarbabarz','bar']) - result.should(eq('foobaz')) - end - - it "should delete a key from a hash" do - result = scope.function_delete([{ 'a' => 1, 'b' => 2, 'c' => 3 },'b']) - result.should(eq({ 'a' => 1, 'c' => 3 })) - end - - it "should not change origin array passed as argument" do - origin_array = ['a','b','c','d'] - result = scope.function_delete([origin_array, 'b']) - origin_array.should(eq(['a','b','c','d'])) - end - - it "should not change the origin string passed as argument" do - origin_string = 'foobarbabarz' - result = scope.function_delete([origin_string,'bar']) - origin_string.should(eq('foobarbabarz')) - end - - it "should not change origin hash passed as argument" do - origin_hash = { 'a' => 1, 'b' => 2, 'c' => 3 } - result = scope.function_delete([origin_hash, 'b']) - origin_hash.should(eq({ 'a' => 1, 'b' => 2, 'c' => 3 })) - end - -end diff --git a/modules/stdlib/spec/functions/delete_undef_values_spec.rb b/modules/stdlib/spec/functions/delete_undef_values_spec.rb deleted file mode 100755 index b341d88..0000000 --- a/modules/stdlib/spec/functions/delete_undef_values_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the delete_undef_values function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("delete_undef_values").should == "function_delete_undef_values" - end - - it "should raise a ParseError if there is less than 1 argument" do - lambda { scope.function_delete_undef_values([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if the argument is not Array nor Hash" do - lambda { scope.function_delete_undef_values(['']) }.should( raise_error(Puppet::ParseError)) - lambda { scope.function_delete_undef_values([nil]) }.should( raise_error(Puppet::ParseError)) - end - - it "should delete all undef items from Array and only these" do - result = scope.function_delete_undef_values([['a',:undef,'c','undef']]) - result.should(eq(['a','c','undef'])) - end - - it "should delete all undef items from Hash and only these" do - result = scope.function_delete_undef_values([{'a'=>'A','b'=>:undef,'c'=>'C','d'=>'undef'}]) - result.should(eq({'a'=>'A','c'=>'C','d'=>'undef'})) - end - - it "should not change origin array passed as argument" do - origin_array = ['a',:undef,'c','undef'] - result = scope.function_delete_undef_values([origin_array]) - origin_array.should(eq(['a',:undef,'c','undef'])) - end - - it "should not change origin hash passed as argument" do - origin_hash = { 'a' => 1, 'b' => :undef, 'c' => 'undef' } - result = scope.function_delete_undef_values([origin_hash]) - origin_hash.should(eq({ 'a' => 1, 'b' => :undef, 'c' => 'undef' })) - end -end diff --git a/modules/stdlib/spec/functions/delete_values_spec.rb b/modules/stdlib/spec/functions/delete_values_spec.rb deleted file mode 100755 index 8d7f231..0000000 --- a/modules/stdlib/spec/functions/delete_values_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the delete_values function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("delete_values").should == "function_delete_values" - end - - it "should raise a ParseError if there are fewer than 2 arguments" do - lambda { scope.function_delete_values([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if there are greater than 2 arguments" do - lambda { scope.function_delete_values([[], 'foo', 'bar']) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a TypeError if the argument is not a hash" do - lambda { scope.function_delete_values([1,'bar']) }.should( raise_error(TypeError)) - lambda { scope.function_delete_values(['foo','bar']) }.should( raise_error(TypeError)) - lambda { scope.function_delete_values([[],'bar']) }.should( raise_error(TypeError)) - end - - it "should delete all instances of a value from a hash" do - result = scope.function_delete_values([{ 'a'=>'A', 'b'=>'B', 'B'=>'C', 'd'=>'B' },'B']) - result.should(eq({ 'a'=>'A', 'B'=>'C' })) - end - - it "should not change origin hash passed as argument" do - origin_hash = { 'a' => 1, 'b' => 2, 'c' => 3 } - result = scope.function_delete_values([origin_hash, 2]) - origin_hash.should(eq({ 'a' => 1, 'b' => 2, 'c' => 3 })) - end - -end diff --git a/modules/stdlib/spec/functions/difference_spec.rb b/modules/stdlib/spec/functions/difference_spec.rb deleted file mode 100755 index 9feff09..0000000 --- a/modules/stdlib/spec/functions/difference_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the difference function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("difference").should == "function_difference" - end - - it "should raise a ParseError if there are fewer than 2 arguments" do - lambda { scope.function_difference([]) }.should( raise_error(Puppet::ParseError) ) - end - - it "should return the difference between two arrays" do - result = scope.function_difference([["a","b","c"],["b","c","d"]]) - result.should(eq(["a"])) - end -end diff --git a/modules/stdlib/spec/functions/dirname_spec.rb b/modules/stdlib/spec/functions/dirname_spec.rb deleted file mode 100755 index fb3b4fe..0000000 --- a/modules/stdlib/spec/functions/dirname_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the dirname function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("dirname").should == "function_dirname" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_dirname([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return dirname for an absolute path" do - result = scope.function_dirname(['/path/to/a/file.ext']) - result.should(eq('/path/to/a')) - end - - it "should return dirname for a relative path" do - result = scope.function_dirname(['path/to/a/file.ext']) - result.should(eq('path/to/a')) - end -end diff --git a/modules/stdlib/spec/functions/downcase_spec.rb b/modules/stdlib/spec/functions/downcase_spec.rb deleted file mode 100755 index acef1f0..0000000 --- a/modules/stdlib/spec/functions/downcase_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the downcase function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("downcase").should == "function_downcase" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_downcase([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should downcase a string" do - result = scope.function_downcase(["ASFD"]) - result.should(eq("asfd")) - end - - it "should do nothing to a string that is already downcase" do - result = scope.function_downcase(["asdf asdf"]) - result.should(eq("asdf asdf")) - end -end diff --git a/modules/stdlib/spec/functions/empty_spec.rb b/modules/stdlib/spec/functions/empty_spec.rb deleted file mode 100755 index 7745875..0000000 --- a/modules/stdlib/spec/functions/empty_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the empty function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - it "should exist" do - Puppet::Parser::Functions.function("empty").should == "function_empty" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_empty([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return a true for an empty string" do - result = scope.function_empty(['']) - result.should(eq(true)) - end - - it "should return a false for a non-empty string" do - result = scope.function_empty(['asdf']) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/ensure_packages_spec.rb b/modules/stdlib/spec/functions/ensure_packages_spec.rb deleted file mode 100755 index 436be10..0000000 --- a/modules/stdlib/spec/functions/ensure_packages_spec.rb +++ /dev/null @@ -1,81 +0,0 @@ -#! /usr/bin/env ruby - -require 'spec_helper' -require 'rspec-puppet' -require 'puppet_spec/compiler' - -describe 'ensure_packages' do - include PuppetSpec::Compiler - - before :each do - Puppet::Parser::Functions.autoloader.loadall - Puppet::Parser::Functions.function(:ensure_packages) - Puppet::Parser::Functions.function(:ensure_resource) - Puppet::Parser::Functions.function(:defined_with_params) - Puppet::Parser::Functions.function(:create_resources) - end - - let :node do Puppet::Node.new('localhost') end - let :compiler do Puppet::Parser::Compiler.new(node) end - let :scope do - if Puppet.version.to_f >= 3.0 - Puppet::Parser::Scope.new(compiler) - else - newscope = Puppet::Parser::Scope.new - newscope.compiler = compiler - newscope.source = Puppet::Resource::Type.new(:node, :localhost) - newscope - end - end - - describe 'argument handling' do - it 'fails with no arguments' do - expect { - scope.function_ensure_packages([]) - }.to raise_error(Puppet::ParseError, /0 for 1 or 2/) - end - - it 'accepts an array of values' do - scope.function_ensure_packages([['foo']]) - end - - it 'accepts a single package name as a string' do - scope.function_ensure_packages(['foo']) - end - end - - context 'given a catalog with puppet package => absent' do - let :catalog do - compile_to_catalog(<<-EOS - ensure_packages(['facter']) - package { puppet: ensure => absent } - EOS - ) - end - - it 'has no effect on Package[puppet]' do - expect(catalog.resource(:package, 'puppet')['ensure']).to eq('absent') - end - end - - context 'given a clean catalog' do - let :catalog do - compile_to_catalog('ensure_packages(["facter"])') - end - - it 'declares package resources with ensure => present' do - expect(catalog.resource(:package, 'facter')['ensure']).to eq('present') - end - end - - context 'given a clean catalog and specified defaults' do - let :catalog do - compile_to_catalog('ensure_packages(["facter"], {"provider" => "gem"})') - end - - it 'declares package resources with ensure => present' do - expect(catalog.resource(:package, 'facter')['ensure']).to eq('present') - expect(catalog.resource(:package, 'facter')['provider']).to eq('gem') - end - end -end diff --git a/modules/stdlib/spec/functions/ensure_resource_spec.rb b/modules/stdlib/spec/functions/ensure_resource_spec.rb deleted file mode 100755 index 33bcac0..0000000 --- a/modules/stdlib/spec/functions/ensure_resource_spec.rb +++ /dev/null @@ -1,113 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'rspec-puppet' -require 'puppet_spec/compiler' - -describe 'ensure_resource' do - include PuppetSpec::Compiler - - before :all do - Puppet::Parser::Functions.autoloader.loadall - Puppet::Parser::Functions.function(:ensure_packages) - end - - let :node do Puppet::Node.new('localhost') end - let :compiler do Puppet::Parser::Compiler.new(node) end - let :scope do Puppet::Parser::Scope.new(compiler) end - - describe 'when a type or title is not specified' do - it { expect { scope.function_ensure_resource([]) }.to raise_error } - it { expect { scope.function_ensure_resource(['type']) }.to raise_error } - end - - describe 'when compared against a resource with no attributes' do - let :catalog do - compile_to_catalog(<<-EOS - user { "dan": } - ensure_resource('user', 'dan', {}) - EOS - ) - end - - it 'should contain the the ensured resources' do - expect(catalog.resource(:user, 'dan').to_s).to eq('User[dan]') - end - end - - describe 'works when compared against a resource with non-conflicting attributes' do - [ - "ensure_resource('User', 'dan', {})", - "ensure_resource('User', 'dan', '')", - "ensure_resource('User', 'dan', {'ensure' => 'present'})", - "ensure_resource('User', 'dan', {'ensure' => 'present', 'managehome' => false})" - ].each do |ensure_resource| - pp = <<-EOS - user { "dan": ensure => present, shell => "/bin/csh", managehome => false} - #{ensure_resource} - EOS - - it { expect { compile_to_catalog(pp) }.to_not raise_error } - end - end - - describe 'fails when compared against a resource with conflicting attributes' do - pp = <<-EOS - user { "dan": ensure => present, shell => "/bin/csh", managehome => false} - ensure_resource('User', 'dan', {'ensure' => 'absent', 'managehome' => false}) - EOS - - it { expect { compile_to_catalog(pp) }.to raise_error } - end - - describe 'when an array of new resources are passed in' do - let :catalog do - compile_to_catalog("ensure_resource('User', ['dan', 'alex'], {})") - end - - it 'should contain the ensured resources' do - expect(catalog.resource('User[dan]').to_s).to eq('User[dan]') - expect(catalog.resource('User[alex]').to_s).to eq('User[alex]') - end - end - - describe 'when an array of existing resources is compared against existing resources' do - pp = <<-EOS - user { 'dan': ensure => present; 'alex': ensure => present } - ensure_resource('User', ['dan', 'alex'], {}) - EOS - - let :catalog do - compile_to_catalog(pp) - end - - it 'should return the existing resources' do - expect(catalog.resource('User[dan]').to_s).to eq('User[dan]') - expect(catalog.resource('User[alex]').to_s).to eq('User[alex]') - end - end - - describe 'works when compared against existing resources with attributes' do - [ - "ensure_resource('User', ['dan', 'alex'], {})", - "ensure_resource('User', ['dan', 'alex'], '')", - "ensure_resource('User', ['dan', 'alex'], {'ensure' => 'present'})", - ].each do |ensure_resource| - pp = <<-EOS - user { 'dan': ensure => present; 'alex': ensure => present } - #{ensure_resource} - EOS - - it { expect { compile_to_catalog(pp) }.to_not raise_error } - end - end - - describe 'fails when compared against existing resources with conflicting attributes' do - pp = <<-EOS - user { 'dan': ensure => present; 'alex': ensure => present } - ensure_resource('User', ['dan', 'alex'], {'ensure' => 'absent'}) - EOS - - it { expect { compile_to_catalog(pp) }.to raise_error } - end - -end diff --git a/modules/stdlib/spec/functions/flatten_spec.rb b/modules/stdlib/spec/functions/flatten_spec.rb deleted file mode 100755 index dba7a6b..0000000 --- a/modules/stdlib/spec/functions/flatten_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the flatten function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - it "should exist" do - Puppet::Parser::Functions.function("flatten").should == "function_flatten" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_flatten([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if there is more than 1 argument" do - lambda { scope.function_flatten([[], []]) }.should( raise_error(Puppet::ParseError)) - end - - it "should flatten a complex data structure" do - result = scope.function_flatten([["a","b",["c",["d","e"],"f","g"]]]) - result.should(eq(["a","b","c","d","e","f","g"])) - end - - it "should do nothing to a structure that is already flat" do - result = scope.function_flatten([["a","b","c","d"]]) - result.should(eq(["a","b","c","d"])) - end -end diff --git a/modules/stdlib/spec/functions/floor_spec.rb b/modules/stdlib/spec/functions/floor_spec.rb deleted file mode 100755 index dbc8c77..0000000 --- a/modules/stdlib/spec/functions/floor_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the floor function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("floor").should == "function_floor" - end - - it "should raise a ParseError if there is less than 1 argument" do - lambda { scope.function_floor([]) }.should( raise_error(Puppet::ParseError, /Wrong number of arguments/)) - end - - it "should should raise a ParseError if input isn't numeric (eg. String)" do - lambda { scope.function_floor(["foo"]) }.should( raise_error(Puppet::ParseError, /Wrong argument type/)) - end - - it "should should raise a ParseError if input isn't numeric (eg. Boolean)" do - lambda { scope.function_floor([true]) }.should( raise_error(Puppet::ParseError, /Wrong argument type/)) - end - - it "should return an integer when a numeric type is passed" do - result = scope.function_floor([12.4]) - result.is_a?(Integer).should(eq(true)) - end - - it "should return the input when an integer is passed" do - result = scope.function_floor([7]) - result.should(eq(7)) - end - - it "should return the largest integer less than or equal to the input" do - result = scope.function_floor([3.8]) - result.should(eq(3)) - end -end - diff --git a/modules/stdlib/spec/functions/fqdn_rotate_spec.rb b/modules/stdlib/spec/functions/fqdn_rotate_spec.rb deleted file mode 100755 index 2577723..0000000 --- a/modules/stdlib/spec/functions/fqdn_rotate_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the fqdn_rotate function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("fqdn_rotate").should == "function_fqdn_rotate" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_fqdn_rotate([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should rotate a string and the result should be the same size" do - scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1") - result = scope.function_fqdn_rotate(["asdf"]) - result.size.should(eq(4)) - end - - it "should rotate a string to give the same results for one host" do - scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1").twice - scope.function_fqdn_rotate(["abcdefg"]).should eql(scope.function_fqdn_rotate(["abcdefg"])) - end - - it "should rotate a string to give different values on different hosts" do - scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.1") - val1 = scope.function_fqdn_rotate(["abcdefghijklmnopqrstuvwxyz01234567890987654321"]) - scope.expects(:lookupvar).with("::fqdn").returns("127.0.0.2") - val2 = scope.function_fqdn_rotate(["abcdefghijklmnopqrstuvwxyz01234567890987654321"]) - val1.should_not eql(val2) - end -end diff --git a/modules/stdlib/spec/functions/get_module_path_spec.rb b/modules/stdlib/spec/functions/get_module_path_spec.rb deleted file mode 100755 index 486bef6..0000000 --- a/modules/stdlib/spec/functions/get_module_path_spec.rb +++ /dev/null @@ -1,46 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:get_module_path) do - Internals = PuppetlabsSpec::PuppetInternals - class StubModule - attr_reader :path - def initialize(path) - @path = path - end - end - - def scope(environment = "production") - Internals.scope(:compiler => Internals.compiler(:node => Internals.node(:environment => environment))) - end - - it 'should only allow one argument' do - expect { scope.function_get_module_path([]) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) - expect { scope.function_get_module_path(['1','2','3']) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) - end - it 'should raise an exception when the module cannot be found' do - expect { scope.function_get_module_path(['foo']) }.to raise_error(Puppet::ParseError, /Could not find module/) - end - describe 'when locating a module' do - let(:modulepath) { "/tmp/does_not_exist" } - let(:path_of_module_foo) { StubModule.new("/tmp/does_not_exist/foo") } - - before(:each) { Puppet[:modulepath] = modulepath } - - it 'should be able to find module paths from the modulepath setting' do - Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo) - scope.function_get_module_path(['foo']).should == path_of_module_foo.path - end - it 'should be able to find module paths when the modulepath is a list' do - Puppet[:modulepath] = modulepath + ":/tmp" - Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo) - scope.function_get_module_path(['foo']).should == path_of_module_foo.path - end - it 'should respect the environment' do - pending("Disabled on Puppet 2.6.x") if Puppet.version =~ /^2\.6\b/ - Puppet.settings[:environment] = 'danstestenv' - Puppet::Module.expects(:find).with('foo', 'danstestenv').returns(path_of_module_foo) - scope('danstestenv').function_get_module_path(['foo']).should == path_of_module_foo.path - end - end -end diff --git a/modules/stdlib/spec/functions/getparam_spec.rb b/modules/stdlib/spec/functions/getparam_spec.rb deleted file mode 100755 index bf024af..0000000 --- a/modules/stdlib/spec/functions/getparam_spec.rb +++ /dev/null @@ -1,76 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'rspec-puppet' -require 'puppet_spec/compiler' - -describe 'getparam' do - include PuppetSpec::Compiler - - before :each do - Puppet::Parser::Functions.autoloader.loadall - Puppet::Parser::Functions.function(:getparam) - end - - let :node do Puppet::Node.new('localhost') end - let :compiler do Puppet::Parser::Compiler.new(node) end - if Puppet.version.to_f >= 3.0 - let :scope do Puppet::Parser::Scope.new(compiler) end - else - let :scope do - newscope = Puppet::Parser::Scope.new - newscope.compiler = compiler - newscope.source = Puppet::Resource::Type.new(:node, :localhost) - newscope - end - end - - it "should exist" do - Puppet::Parser::Functions.function("getparam").should == "function_getparam" - end - - describe 'when a resource is not specified' do - it { expect { scope.function_getparam([]) }.to raise_error } - it { expect { scope.function_getparam(['User[dan]']) }.to raise_error } - it { expect { scope.function_getparam(['User[dan]']) }.to raise_error } - it { expect { scope.function_getparam(['User[dan]', {}]) }.to raise_error } - # This seems to be OK because we just check for a string. - it { expect { scope.function_getparam(['User[dan]', '']) }.to_not raise_error } - end - - describe 'when compared against a resource with no params' do - let :catalog do - compile_to_catalog(<<-EOS - user { "dan": } - EOS - ) - end - - it do - expect(scope.function_getparam(['User[dan]', 'shell'])).to eq('') - end - end - - describe 'when compared against a resource with params' do - let :catalog do - compile_to_catalog(<<-EOS - user { 'dan': ensure => present, shell => '/bin/sh', managehome => false} - $test = getparam(User[dan], 'shell') - EOS - ) - end - - it do - resource = Puppet::Parser::Resource.new(:user, 'dan', {:scope => scope}) - resource.set_parameter('ensure', 'present') - resource.set_parameter('shell', '/bin/sh') - resource.set_parameter('managehome', false) - compiler.add_resource(scope, resource) - - expect(scope.function_getparam(['User[dan]', 'shell'])).to eq('/bin/sh') - expect(scope.function_getparam(['User[dan]', ''])).to eq('') - expect(scope.function_getparam(['User[dan]', 'ensure'])).to eq('present') - # TODO: Expected this to be false, figure out why we're getting '' back. - expect(scope.function_getparam(['User[dan]', 'managehome'])).to eq('') - end - end -end diff --git a/modules/stdlib/spec/functions/getvar_spec.rb b/modules/stdlib/spec/functions/getvar_spec.rb deleted file mode 100755 index 5ff834e..0000000 --- a/modules/stdlib/spec/functions/getvar_spec.rb +++ /dev/null @@ -1,37 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:getvar) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - describe 'when calling getvar from puppet' do - - it "should not compile when no arguments are passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = '$foo = getvar()' - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should not compile when too many arguments are passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = '$foo = getvar("foo::bar", "baz")' - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should lookup variables in other namespaces" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = <<-'ENDofPUPPETcode' - class site::data { $foo = 'baz' } - include site::data - $foo = getvar("site::data::foo") - if $foo != 'baz' { - fail('getvar did not return what we expect') - } - ENDofPUPPETcode - scope.compiler.compile - end - end -end diff --git a/modules/stdlib/spec/functions/grep_spec.rb b/modules/stdlib/spec/functions/grep_spec.rb deleted file mode 100755 index a93b842..0000000 --- a/modules/stdlib/spec/functions/grep_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the grep function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("grep").should == "function_grep" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_grep([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should grep contents from an array" do - result = scope.function_grep([["aaabbb","bbbccc","dddeee"], "bbb"]) - result.should(eq(["aaabbb","bbbccc"])) - end -end diff --git a/modules/stdlib/spec/functions/has_interface_with_spec.rb b/modules/stdlib/spec/functions/has_interface_with_spec.rb deleted file mode 100755 index c5264e4..0000000 --- a/modules/stdlib/spec/functions/has_interface_with_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:has_interface_with) do - - let(:scope) do - PuppetlabsSpec::PuppetInternals.scope - end - - # The subject of these examples is the method itself. - subject do - function_name = Puppet::Parser::Functions.function(:has_interface_with) - scope.method(function_name) - end - - # We need to mock out the Facts so we can specify how we expect this function - # to behave on different platforms. - context "On Mac OS X Systems" do - before :each do - scope.stubs(:lookupvar).with("interfaces").returns('lo0,gif0,stf0,en1,p2p0,fw0,en0,vmnet1,vmnet8,utun0') - end - it 'should have loopback (lo0)' do - subject.call(['lo0']).should be_true - end - it 'should not have loopback (lo)' do - subject.call(['lo']).should be_false - end - end - context "On Linux Systems" do - before :each do - scope.stubs(:lookupvar).with("interfaces").returns('eth0,lo') - scope.stubs(:lookupvar).with("ipaddress").returns('10.0.0.1') - scope.stubs(:lookupvar).with("ipaddress_lo").returns('127.0.0.1') - scope.stubs(:lookupvar).with("ipaddress_eth0").returns('10.0.0.1') - scope.stubs(:lookupvar).with('muppet').returns('kermit') - scope.stubs(:lookupvar).with('muppet_lo').returns('mspiggy') - scope.stubs(:lookupvar).with('muppet_eth0').returns('kermit') - end - it 'should have loopback (lo)' do - subject.call(['lo']).should be_true - end - it 'should not have loopback (lo0)' do - subject.call(['lo0']).should be_false - end - it 'should have ipaddress with 127.0.0.1' do - subject.call(['ipaddress', '127.0.0.1']).should be_true - end - it 'should have ipaddress with 10.0.0.1' do - subject.call(['ipaddress', '10.0.0.1']).should be_true - end - it 'should not have ipaddress with 10.0.0.2' do - subject.call(['ipaddress', '10.0.0.2']).should be_false - end - it 'should have muppet named kermit' do - subject.call(['muppet', 'kermit']).should be_true - end - it 'should have muppet named mspiggy' do - subject.call(['muppet', 'mspiggy']).should be_true - end - it 'should not have muppet named bigbird' do - subject.call(['muppet', 'bigbird']).should be_false - end - end -end diff --git a/modules/stdlib/spec/functions/has_ip_address_spec.rb b/modules/stdlib/spec/functions/has_ip_address_spec.rb deleted file mode 100755 index 5a68460..0000000 --- a/modules/stdlib/spec/functions/has_ip_address_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:has_ip_address) do - - let(:scope) do - PuppetlabsSpec::PuppetInternals.scope - end - - subject do - function_name = Puppet::Parser::Functions.function(:has_ip_address) - scope.method(function_name) - end - - context "On Linux Systems" do - before :each do - scope.stubs(:lookupvar).with('interfaces').returns('eth0,lo') - scope.stubs(:lookupvar).with('ipaddress').returns('10.0.2.15') - scope.stubs(:lookupvar).with('ipaddress_eth0').returns('10.0.2.15') - scope.stubs(:lookupvar).with('ipaddress_lo').returns('127.0.0.1') - end - - it 'should have primary address (10.0.2.15)' do - subject.call(['10.0.2.15']).should be_true - end - - it 'should have lookupback address (127.0.0.1)' do - subject.call(['127.0.0.1']).should be_true - end - - it 'should not have other address' do - subject.call(['192.1681.1.1']).should be_false - end - - it 'should not have "mspiggy" on an interface' do - subject.call(['mspiggy']).should be_false - end - end -end diff --git a/modules/stdlib/spec/functions/has_ip_network_spec.rb b/modules/stdlib/spec/functions/has_ip_network_spec.rb deleted file mode 100755 index c3a289e..0000000 --- a/modules/stdlib/spec/functions/has_ip_network_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:has_ip_network) do - - let(:scope) do - PuppetlabsSpec::PuppetInternals.scope - end - - subject do - function_name = Puppet::Parser::Functions.function(:has_ip_network) - scope.method(function_name) - end - - context "On Linux Systems" do - before :each do - scope.stubs(:lookupvar).with('interfaces').returns('eth0,lo') - scope.stubs(:lookupvar).with('network').returns(:undefined) - scope.stubs(:lookupvar).with('network_eth0').returns('10.0.2.0') - scope.stubs(:lookupvar).with('network_lo').returns('127.0.0.1') - end - - it 'should have primary network (10.0.2.0)' do - subject.call(['10.0.2.0']).should be_true - end - - it 'should have loopback network (127.0.0.0)' do - subject.call(['127.0.0.1']).should be_true - end - - it 'should not have other network' do - subject.call(['192.168.1.0']).should be_false - end - end -end - diff --git a/modules/stdlib/spec/functions/has_key_spec.rb b/modules/stdlib/spec/functions/has_key_spec.rb deleted file mode 100755 index 490daea..0000000 --- a/modules/stdlib/spec/functions/has_key_spec.rb +++ /dev/null @@ -1,42 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:has_key) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe 'when calling has_key from puppet' do - it "should not compile when no arguments are passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = '$x = has_key()' - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should not compile when 1 argument is passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = "$x = has_key('foo')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should require the first value to be a Hash" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = "$x = has_key('foo', 'bar')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /expects the first argument to be a hash/) - end - end - - describe 'when calling the function has_key from a scope instance' do - it 'should detect existing keys' do - scope.function_has_key([{'one' => 1}, 'one']).should be_true - end - - it 'should detect existing keys' do - scope.function_has_key([{'one' => 1}, 'two']).should be_false - end - end -end diff --git a/modules/stdlib/spec/functions/hash_spec.rb b/modules/stdlib/spec/functions/hash_spec.rb deleted file mode 100755 index 7c91be9..0000000 --- a/modules/stdlib/spec/functions/hash_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the hash function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("hash").should == "function_hash" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_hash([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert an array to a hash" do - result = scope.function_hash([['a',1,'b',2,'c',3]]) - result.should(eq({'a'=>1,'b'=>2,'c'=>3})) - end -end diff --git a/modules/stdlib/spec/functions/intersection_spec.rb b/modules/stdlib/spec/functions/intersection_spec.rb deleted file mode 100755 index fd44f7f..0000000 --- a/modules/stdlib/spec/functions/intersection_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the intersection function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("intersection").should == "function_intersection" - end - - it "should raise a ParseError if there are fewer than 2 arguments" do - lambda { scope.function_intersection([]) }.should( raise_error(Puppet::ParseError) ) - end - - it "should return the intersection of two arrays" do - result = scope.function_intersection([["a","b","c"],["b","c","d"]]) - result.should(eq(["b","c"])) - end -end diff --git a/modules/stdlib/spec/functions/is_array_spec.rb b/modules/stdlib/spec/functions/is_array_spec.rb deleted file mode 100755 index e7f4bcd..0000000 --- a/modules/stdlib/spec/functions/is_array_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_array function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_array").should == "function_is_array" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_array([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if passed an array" do - result = scope.function_is_array([[1,2,3]]) - result.should(eq(true)) - end - - it "should return false if passed a hash" do - result = scope.function_is_array([{'a'=>1}]) - result.should(eq(false)) - end - - it "should return false if passed a string" do - result = scope.function_is_array(["asdf"]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/is_bool_spec.rb b/modules/stdlib/spec/functions/is_bool_spec.rb deleted file mode 100755 index c94e83a..0000000 --- a/modules/stdlib/spec/functions/is_bool_spec.rb +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_bool function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_bool").should == "function_is_bool" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_bool([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if passed a TrueClass" do - result = scope.function_is_bool([true]) - result.should(eq(true)) - end - - it "should return true if passed a FalseClass" do - result = scope.function_is_bool([false]) - result.should(eq(true)) - end - - it "should return false if passed the string 'true'" do - result = scope.function_is_bool(['true']) - result.should(eq(false)) - end - - it "should return false if passed the string 'false'" do - result = scope.function_is_bool(['false']) - result.should(eq(false)) - end - - it "should return false if passed an array" do - result = scope.function_is_bool([["a","b"]]) - result.should(eq(false)) - end - - it "should return false if passed a hash" do - result = scope.function_is_bool([{"a" => "b"}]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/is_domain_name_spec.rb b/modules/stdlib/spec/functions/is_domain_name_spec.rb deleted file mode 100755 index f2ea76d..0000000 --- a/modules/stdlib/spec/functions/is_domain_name_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_domain_name function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_domain_name").should == "function_is_domain_name" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_domain_name([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if a valid short domain name" do - result = scope.function_is_domain_name(["x.com"]) - result.should(be_true) - end - - it "should return true if the domain is ." do - result = scope.function_is_domain_name(["."]) - result.should(be_true) - end - - it "should return true if the domain is x.com." do - result = scope.function_is_domain_name(["x.com."]) - result.should(be_true) - end - - it "should return true if a valid domain name" do - result = scope.function_is_domain_name(["foo.bar.com"]) - result.should(be_true) - end - - it "should allow domain parts to start with numbers" do - result = scope.function_is_domain_name(["3foo.2bar.com"]) - result.should(be_true) - end - - it "should allow domain to end with a dot" do - result = scope.function_is_domain_name(["3foo.2bar.com."]) - result.should(be_true) - end - - it "should allow a single part domain" do - result = scope.function_is_domain_name(["orange"]) - result.should(be_true) - end - - it "should return false if domain parts start with hyphens" do - result = scope.function_is_domain_name(["-3foo.2bar.com"]) - result.should(be_false) - end - - it "should return true if domain contains hyphens" do - result = scope.function_is_domain_name(["3foo-bar.2bar-fuzz.com"]) - result.should(be_true) - end - - it "should return false if domain name contains spaces" do - result = scope.function_is_domain_name(["not valid"]) - result.should(be_false) - end -end diff --git a/modules/stdlib/spec/functions/is_float_spec.rb b/modules/stdlib/spec/functions/is_float_spec.rb deleted file mode 100755 index b7d73b0..0000000 --- a/modules/stdlib/spec/functions/is_float_spec.rb +++ /dev/null @@ -1,33 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_float function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_float").should == "function_is_float" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_float([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if a float" do - result = scope.function_is_float(["0.12"]) - result.should(eq(true)) - end - - it "should return false if a string" do - result = scope.function_is_float(["asdf"]) - result.should(eq(false)) - end - - it "should return false if an integer" do - result = scope.function_is_float(["3"]) - result.should(eq(false)) - end - it "should return true if a float is created from an arithmetical operation" do - result = scope.function_is_float([3.2*2]) - result.should(eq(true)) - end -end diff --git a/modules/stdlib/spec/functions/is_function_available.rb b/modules/stdlib/spec/functions/is_function_available.rb deleted file mode 100755 index d5669a7..0000000 --- a/modules/stdlib/spec/functions/is_function_available.rb +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_function_available function" do - before :all do - Puppet::Parser::Functions.autoloader.loadall - end - - before :each do - @scope = Puppet::Parser::Scope.new - end - - it "should exist" do - Puppet::Parser::Functions.function("is_function_available").should == "function_is_function_available" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { @scope.function_is_function_available([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return false if a nonexistent function is passed" do - result = @scope.function_is_function_available(['jeff_mccunes_left_sock']) - result.should(eq(false)) - end - - it "should return true if an available function is passed" do - result = @scope.function_is_function_available(['require']) - result.should(eq(true)) - end - -end diff --git a/modules/stdlib/spec/functions/is_hash_spec.rb b/modules/stdlib/spec/functions/is_hash_spec.rb deleted file mode 100755 index bbebf39..0000000 --- a/modules/stdlib/spec/functions/is_hash_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_hash function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_hash").should == "function_is_hash" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_hash([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if passed a hash" do - result = scope.function_is_hash([{"a"=>1,"b"=>2}]) - result.should(eq(true)) - end - - it "should return false if passed an array" do - result = scope.function_is_hash([["a","b"]]) - result.should(eq(false)) - end - - it "should return false if passed a string" do - result = scope.function_is_hash(["asdf"]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/is_integer_spec.rb b/modules/stdlib/spec/functions/is_integer_spec.rb deleted file mode 100755 index 24141cc..0000000 --- a/modules/stdlib/spec/functions/is_integer_spec.rb +++ /dev/null @@ -1,69 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_integer function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_integer").should == "function_is_integer" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_integer([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if an integer" do - result = scope.function_is_integer(["3"]) - result.should(eq(true)) - end - - it "should return true if a negative integer" do - result = scope.function_is_integer(["-7"]) - result.should(eq(true)) - end - - it "should return false if a float" do - result = scope.function_is_integer(["3.2"]) - result.should(eq(false)) - end - - it "should return false if a string" do - result = scope.function_is_integer(["asdf"]) - result.should(eq(false)) - end - - it "should return true if an integer is created from an arithmetical operation" do - result = scope.function_is_integer([3*2]) - result.should(eq(true)) - end - - it "should return false if an array" do - result = scope.function_is_numeric([["asdf"]]) - result.should(eq(false)) - end - - it "should return false if a hash" do - result = scope.function_is_numeric([{"asdf" => false}]) - result.should(eq(false)) - end - - it "should return false if a boolean" do - result = scope.function_is_numeric([true]) - result.should(eq(false)) - end - - it "should return false if a whitespace is in the string" do - result = scope.function_is_numeric([" -1324"]) - result.should(eq(false)) - end - - it "should return false if it is zero prefixed" do - result = scope.function_is_numeric(["0001234"]) - result.should(eq(false)) - end - - it "should return false if it is wrapped inside an array" do - result = scope.function_is_numeric([[1234]]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/is_ip_address_spec.rb b/modules/stdlib/spec/functions/is_ip_address_spec.rb deleted file mode 100755 index c0debb3..0000000 --- a/modules/stdlib/spec/functions/is_ip_address_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_ip_address function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_ip_address").should == "function_is_ip_address" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_ip_address([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if an IPv4 address" do - result = scope.function_is_ip_address(["1.2.3.4"]) - result.should(eq(true)) - end - - it "should return true if a full IPv6 address" do - result = scope.function_is_ip_address(["fe80:0000:cd12:d123:e2f8:47ff:fe09:dd74"]) - result.should(eq(true)) - end - - it "should return true if a compressed IPv6 address" do - result = scope.function_is_ip_address(["fe00::1"]) - result.should(eq(true)) - end - - it "should return false if not valid" do - result = scope.function_is_ip_address(["asdf"]) - result.should(eq(false)) - end - - it "should return false if IP octets out of range" do - result = scope.function_is_ip_address(["1.1.1.300"]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/is_mac_address_spec.rb b/modules/stdlib/spec/functions/is_mac_address_spec.rb deleted file mode 100755 index ca9c590..0000000 --- a/modules/stdlib/spec/functions/is_mac_address_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_mac_address function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_mac_address").should == "function_is_mac_address" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_mac_address([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if a valid mac address" do - result = scope.function_is_mac_address(["00:a0:1f:12:7f:a0"]) - result.should(eq(true)) - end - - it "should return false if octets are out of range" do - result = scope.function_is_mac_address(["00:a0:1f:12:7f:g0"]) - result.should(eq(false)) - end - - it "should return false if not valid" do - result = scope.function_is_mac_address(["not valid"]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/is_numeric_spec.rb b/modules/stdlib/spec/functions/is_numeric_spec.rb deleted file mode 100755 index 1df1497..0000000 --- a/modules/stdlib/spec/functions/is_numeric_spec.rb +++ /dev/null @@ -1,119 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_numeric function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_numeric").should == "function_is_numeric" - end - - it "should raise a ParseError if there is less than 1 argument" do - lambda { scope.function_is_numeric([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if an integer" do - result = scope.function_is_numeric(["3"]) - result.should(eq(true)) - end - - it "should return true if a float" do - result = scope.function_is_numeric(["3.2"]) - result.should(eq(true)) - end - - it "should return true if an integer is created from an arithmetical operation" do - result = scope.function_is_numeric([3*2]) - result.should(eq(true)) - end - - it "should return true if a float is created from an arithmetical operation" do - result = scope.function_is_numeric([3.2*2]) - result.should(eq(true)) - end - - it "should return false if a string" do - result = scope.function_is_numeric(["asdf"]) - result.should(eq(false)) - end - - it "should return false if an array" do - result = scope.function_is_numeric([["asdf"]]) - result.should(eq(false)) - end - - it "should return false if an array of integers" do - result = scope.function_is_numeric([[1,2,3,4]]) - result.should(eq(false)) - end - - it "should return false if a hash" do - result = scope.function_is_numeric([{"asdf" => false}]) - result.should(eq(false)) - end - - it "should return false if a hash with numbers in it" do - result = scope.function_is_numeric([{1 => 2}]) - result.should(eq(false)) - end - - it "should return false if a boolean" do - result = scope.function_is_numeric([true]) - result.should(eq(false)) - end - - it "should return true if a negative float with exponent" do - result = scope.function_is_numeric(["-342.2315e-12"]) - result.should(eq(true)) - end - - it "should return false if a negative integer with whitespaces before/after the dash" do - result = scope.function_is_numeric([" - 751"]) - result.should(eq(false)) - end - -# it "should return true if a hexadecimal" do -# result = scope.function_is_numeric(["0x52F8c"]) -# result.should(eq(true)) -# end -# -# it "should return true if a hexadecimal with uppercase 0X prefix" do -# result = scope.function_is_numeric(["0X52F8c"]) -# result.should(eq(true)) -# end -# -# it "should return false if a hexadecimal without a prefix" do -# result = scope.function_is_numeric(["52F8c"]) -# result.should(eq(false)) -# end -# -# it "should return true if a octal" do -# result = scope.function_is_numeric(["0751"]) -# result.should(eq(true)) -# end -# -# it "should return true if a negative hexadecimal" do -# result = scope.function_is_numeric(["-0x52F8c"]) -# result.should(eq(true)) -# end -# -# it "should return true if a negative octal" do -# result = scope.function_is_numeric(["-0751"]) -# result.should(eq(true)) -# end -# -# it "should return false if a negative octal with whitespaces before/after the dash" do -# result = scope.function_is_numeric([" - 0751"]) -# result.should(eq(false)) -# end -# -# it "should return false if a bad hexadecimal" do -# result = scope.function_is_numeric(["0x23d7g"]) -# result.should(eq(false)) -# end -# -# it "should return false if a bad octal" do -# result = scope.function_is_numeric(["0287"]) -# result.should(eq(false)) -# end -end diff --git a/modules/stdlib/spec/functions/is_string_spec.rb b/modules/stdlib/spec/functions/is_string_spec.rb deleted file mode 100755 index 3756bea..0000000 --- a/modules/stdlib/spec/functions/is_string_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the is_string function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("is_string").should == "function_is_string" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_is_string([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if a string" do - result = scope.function_is_string(["asdf"]) - result.should(eq(true)) - end - - it "should return false if an integer" do - result = scope.function_is_string(["3"]) - result.should(eq(false)) - end - - it "should return false if a float" do - result = scope.function_is_string(["3.23"]) - result.should(eq(false)) - end - - it "should return false if an array" do - result = scope.function_is_string([["a","b","c"]]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/join_keys_to_values_spec.rb b/modules/stdlib/spec/functions/join_keys_to_values_spec.rb deleted file mode 100755 index a52fb71..0000000 --- a/modules/stdlib/spec/functions/join_keys_to_values_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the join_keys_to_values function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("join_keys_to_values").should == "function_join_keys_to_values" - end - - it "should raise a ParseError if there are fewer than two arguments" do - lambda { scope.function_join_keys_to_values([{}]) }.should raise_error Puppet::ParseError - end - - it "should raise a ParseError if there are greater than two arguments" do - lambda { scope.function_join_keys_to_values([{}, 'foo', 'bar']) }.should raise_error Puppet::ParseError - end - - it "should raise a TypeError if the first argument is an array" do - lambda { scope.function_join_keys_to_values([[1,2], ',']) }.should raise_error TypeError - end - - it "should raise a TypeError if the second argument is an array" do - lambda { scope.function_join_keys_to_values([{}, [1,2]]) }.should raise_error TypeError - end - - it "should raise a TypeError if the second argument is a number" do - lambda { scope.function_join_keys_to_values([{}, 1]) }.should raise_error TypeError - end - - it "should return an empty array given an empty hash" do - result = scope.function_join_keys_to_values([{}, ":"]) - result.should == [] - end - - it "should join hash's keys to its values" do - result = scope.function_join_keys_to_values([{'a'=>1,2=>'foo',:b=>nil}, ":"]) - result.should =~ ['a:1','2:foo','b:'] - end -end diff --git a/modules/stdlib/spec/functions/join_spec.rb b/modules/stdlib/spec/functions/join_spec.rb deleted file mode 100755 index aafa1a7..0000000 --- a/modules/stdlib/spec/functions/join_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the join function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("join").should == "function_join" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_join([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should join an array into a string" do - result = scope.function_join([["a","b","c"], ":"]) - result.should(eq("a:b:c")) - end -end diff --git a/modules/stdlib/spec/functions/keys_spec.rb b/modules/stdlib/spec/functions/keys_spec.rb deleted file mode 100755 index fdd7a70..0000000 --- a/modules/stdlib/spec/functions/keys_spec.rb +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the keys function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("keys").should == "function_keys" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_keys([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return an array of keys when given a hash" do - result = scope.function_keys([{'a'=>1, 'b'=>2}]) - # =~ performs 'array with same elements' (set) matching - # For more info see RSpec::Matchers::MatchArray - result.should =~ ['a','b'] - end -end diff --git a/modules/stdlib/spec/functions/loadyaml_spec.rb b/modules/stdlib/spec/functions/loadyaml_spec.rb deleted file mode 100755 index fe16318..0000000 --- a/modules/stdlib/spec/functions/loadyaml_spec.rb +++ /dev/null @@ -1,25 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the loadyaml function" do - include PuppetlabsSpec::Files - - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("loadyaml").should == "function_loadyaml" - end - - it "should raise a ParseError if there is less than 1 arguments" do - expect { scope.function_loadyaml([]) }.to raise_error(Puppet::ParseError) - end - - it "should convert YAML file to a data structure" do - yaml_file = tmpfilename ('yamlfile') - File.open(yaml_file, 'w') do |fh| - fh.write("---\n aaa: 1\n bbb: 2\n ccc: 3\n ddd: 4\n") - end - result = scope.function_loadyaml([yaml_file]) - result.should == {"aaa" => 1, "bbb" => 2, "ccc" => 3, "ddd" => 4 } - end -end diff --git a/modules/stdlib/spec/functions/lstrip_spec.rb b/modules/stdlib/spec/functions/lstrip_spec.rb deleted file mode 100755 index b280ae7..0000000 --- a/modules/stdlib/spec/functions/lstrip_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the lstrip function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("lstrip").should == "function_lstrip" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_lstrip([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should lstrip a string" do - result = scope.function_lstrip([" asdf"]) - result.should(eq('asdf')) - end -end diff --git a/modules/stdlib/spec/functions/max_spec.rb b/modules/stdlib/spec/functions/max_spec.rb deleted file mode 100755 index ff6f2b3..0000000 --- a/modules/stdlib/spec/functions/max_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the max function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("max").should == "function_max" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_max([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should be able to compare strings" do - scope.function_max(["albatross","dog","horse"]).should(eq("horse")) - end - - it "should be able to compare numbers" do - scope.function_max([6,8,4]).should(eq(8)) - end - - it "should be able to compare a number with a stringified number" do - scope.function_max([1,"2"]).should(eq("2")) - end -end diff --git a/modules/stdlib/spec/functions/member_spec.rb b/modules/stdlib/spec/functions/member_spec.rb deleted file mode 100755 index 6e9a023..0000000 --- a/modules/stdlib/spec/functions/member_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the member function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("member").should == "function_member" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_member([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if a member is in an array" do - result = scope.function_member([["a","b","c"], "a"]) - result.should(eq(true)) - end - - it "should return false if a member is not in an array" do - result = scope.function_member([["a","b","c"], "d"]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/merge_spec.rb b/modules/stdlib/spec/functions/merge_spec.rb deleted file mode 100755 index 15a5d94..0000000 --- a/modules/stdlib/spec/functions/merge_spec.rb +++ /dev/null @@ -1,52 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:merge) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe 'when calling merge from puppet' do - it "should not compile when no arguments are passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = '$x = merge()' - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should not compile when 1 argument is passed" do - pending("Fails on 2.6.x, see bug #15912") if Puppet.version =~ /^2\.6\./ - Puppet[:code] = "$my_hash={'one' => 1}\n$x = merge($my_hash)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - end - - describe 'when calling merge on the scope instance' do - it 'should require all parameters are hashes' do - expect { new_hash = scope.function_merge([{}, '2'])}.to raise_error(Puppet::ParseError, /unexpected argument type String/) - expect { new_hash = scope.function_merge([{}, 2])}.to raise_error(Puppet::ParseError, /unexpected argument type Fixnum/) - end - - it 'should accept empty strings as puppet undef' do - expect { new_hash = scope.function_merge([{}, ''])}.not_to raise_error - end - - it 'should be able to merge two hashes' do - new_hash = scope.function_merge([{'one' => '1', 'two' => '1'}, {'two' => '2', 'three' => '2'}]) - new_hash['one'].should == '1' - new_hash['two'].should == '2' - new_hash['three'].should == '2' - end - - it 'should merge multiple hashes' do - hash = scope.function_merge([{'one' => 1}, {'one' => '2'}, {'one' => '3'}]) - hash['one'].should == '3' - end - - it 'should accept empty hashes' do - scope.function_merge([{},{},{}]).should == {} - end - end -end diff --git a/modules/stdlib/spec/functions/min_spec.rb b/modules/stdlib/spec/functions/min_spec.rb deleted file mode 100755 index 71d593e..0000000 --- a/modules/stdlib/spec/functions/min_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the min function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("min").should == "function_min" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_min([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should be able to compare strings" do - scope.function_min(["albatross","dog","horse"]).should(eq("albatross")) - end - - it "should be able to compare numbers" do - scope.function_min([6,8,4]).should(eq(4)) - end - - it "should be able to compare a number with a stringified number" do - scope.function_min([1,"2"]).should(eq(1)) - end -end diff --git a/modules/stdlib/spec/functions/num2bool_spec.rb b/modules/stdlib/spec/functions/num2bool_spec.rb deleted file mode 100755 index b56196d..0000000 --- a/modules/stdlib/spec/functions/num2bool_spec.rb +++ /dev/null @@ -1,67 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the num2bool function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("num2bool").should == "function_num2bool" - end - - it "should raise a ParseError if there are no arguments" do - lambda { scope.function_num2bool([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if there are more than 1 arguments" do - lambda { scope.function_num2bool(["foo","bar"]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if passed something non-numeric" do - lambda { scope.function_num2bool(["xyzzy"]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return true if passed string 1" do - result = scope.function_num2bool(["1"]) - result.should(be_true) - end - - it "should return true if passed string 1.5" do - result = scope.function_num2bool(["1.5"]) - result.should(be_true) - end - - it "should return true if passed number 1" do - result = scope.function_num2bool([1]) - result.should(be_true) - end - - it "should return false if passed string 0" do - result = scope.function_num2bool(["0"]) - result.should(be_false) - end - - it "should return false if passed number 0" do - result = scope.function_num2bool([0]) - result.should(be_false) - end - - it "should return false if passed string -1" do - result = scope.function_num2bool(["-1"]) - result.should(be_false) - end - - it "should return false if passed string -1.5" do - result = scope.function_num2bool(["-1.5"]) - result.should(be_false) - end - - it "should return false if passed number -1" do - result = scope.function_num2bool([-1]) - result.should(be_false) - end - - it "should return false if passed float -1.5" do - result = scope.function_num2bool([-1.5]) - result.should(be_false) - end -end diff --git a/modules/stdlib/spec/functions/parsejson_spec.rb b/modules/stdlib/spec/functions/parsejson_spec.rb deleted file mode 100755 index f179ac1..0000000 --- a/modules/stdlib/spec/functions/parsejson_spec.rb +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the parsejson function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("parsejson").should == "function_parsejson" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_parsejson([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert JSON to a data structure" do - json = <<-EOS -["aaa","bbb","ccc"] -EOS - result = scope.function_parsejson([json]) - result.should(eq(['aaa','bbb','ccc'])) - end -end diff --git a/modules/stdlib/spec/functions/parseyaml_spec.rb b/modules/stdlib/spec/functions/parseyaml_spec.rb deleted file mode 100755 index 0c7aea8..0000000 --- a/modules/stdlib/spec/functions/parseyaml_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the parseyaml function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("parseyaml").should == "function_parseyaml" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_parseyaml([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert YAML to a data structure" do - yaml = <<-EOS -- aaa -- bbb -- ccc -EOS - result = scope.function_parseyaml([yaml]) - result.should(eq(['aaa','bbb','ccc'])) - end -end diff --git a/modules/stdlib/spec/functions/pick_default_spec.rb b/modules/stdlib/spec/functions/pick_default_spec.rb deleted file mode 100755 index c9235b5..0000000 --- a/modules/stdlib/spec/functions/pick_default_spec.rb +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the pick_default function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("pick_default").should == "function_pick_default" - end - - it 'should return the correct value' do - scope.function_pick_default(['first', 'second']).should == 'first' - end - - it 'should return the correct value if the first value is empty' do - scope.function_pick_default(['', 'second']).should == 'second' - end - - it 'should skip empty string values' do - scope.function_pick_default(['', 'first']).should == 'first' - end - - it 'should skip :undef values' do - scope.function_pick_default([:undef, 'first']).should == 'first' - end - - it 'should skip :undefined values' do - scope.function_pick_default([:undefined, 'first']).should == 'first' - end - - it 'should return the empty string if it is the last possibility' do - scope.function_pick_default([:undef, :undefined, '']).should == '' - end - - it 'should return :undef if it is the last possibility' do - scope.function_pick_default(['', :undefined, :undef]).should == :undef - end - - it 'should return :undefined if it is the last possibility' do - scope.function_pick_default([:undef, '', :undefined]).should == :undefined - end - - it 'should return the empty string if it is the only possibility' do - scope.function_pick_default(['']).should == '' - end - - it 'should return :undef if it is the only possibility' do - scope.function_pick_default([:undef]).should == :undef - end - - it 'should return :undefined if it is the only possibility' do - scope.function_pick_default([:undefined]).should == :undefined - end - - it 'should error if no values are passed' do - expect { scope.function_pick_default([]) }.to raise_error(Puppet::Error, /Must receive at least one argument./) - end -end diff --git a/modules/stdlib/spec/functions/pick_spec.rb b/modules/stdlib/spec/functions/pick_spec.rb deleted file mode 100755 index f53fa80..0000000 --- a/modules/stdlib/spec/functions/pick_spec.rb +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the pick function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("pick").should == "function_pick" - end - - it 'should return the correct value' do - scope.function_pick(['first', 'second']).should == 'first' - end - - it 'should return the correct value if the first value is empty' do - scope.function_pick(['', 'second']).should == 'second' - end - - it 'should remove empty string values' do - scope.function_pick(['', 'first']).should == 'first' - end - - it 'should remove :undef values' do - scope.function_pick([:undef, 'first']).should == 'first' - end - - it 'should remove :undefined values' do - scope.function_pick([:undefined, 'first']).should == 'first' - end - - it 'should error if no values are passed' do - expect { scope.function_pick([]) }.to( raise_error(Puppet::ParseError, "pick(): must receive at least one non empty value")) - end -end diff --git a/modules/stdlib/spec/functions/prefix_spec.rb b/modules/stdlib/spec/functions/prefix_spec.rb deleted file mode 100755 index 6e8ddc5..0000000 --- a/modules/stdlib/spec/functions/prefix_spec.rb +++ /dev/null @@ -1,28 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the prefix function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "raises a ParseError if there is less than 1 arguments" do - expect { scope.function_prefix([]) }.to raise_error(Puppet::ParseError, /number of arguments/) - end - - it "raises an error if the first argument is not an array" do - expect { - scope.function_prefix([Object.new]) - }.to raise_error(Puppet::ParseError, /expected first argument to be an Array/) - end - - - it "raises an error if the second argument is not a string" do - expect { - scope.function_prefix([['first', 'second'], 42]) - }.to raise_error(Puppet::ParseError, /expected second argument to be a String/) - end - - it "returns a prefixed array" do - result = scope.function_prefix([['a','b','c'], 'p']) - result.should(eq(['pa','pb','pc'])) - end -end diff --git a/modules/stdlib/spec/functions/range_spec.rb b/modules/stdlib/spec/functions/range_spec.rb deleted file mode 100755 index 0e1ad37..0000000 --- a/modules/stdlib/spec/functions/range_spec.rb +++ /dev/null @@ -1,70 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the range function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "exists" do - Puppet::Parser::Functions.function("range").should == "function_range" - end - - it "raises a ParseError if there is less than 1 arguments" do - expect { scope.function_range([]) }.to raise_error Puppet::ParseError, /Wrong number of arguments.*0 for 1/ - end - - describe 'with a letter range' do - it "returns a letter range" do - result = scope.function_range(["a","d"]) - result.should eq ['a','b','c','d'] - end - - it "returns a letter range given a step of 1" do - result = scope.function_range(["a","d","1"]) - result.should eq ['a','b','c','d'] - end - - it "returns a stepped letter range" do - result = scope.function_range(["a","d","2"]) - result.should eq ['a','c'] - end - - it "returns a stepped letter range given a negative step" do - result = scope.function_range(["a","d","-2"]) - result.should eq ['a','c'] - end - end - - describe 'with a number range' do - it "returns a number range" do - result = scope.function_range(["1","4"]) - result.should eq [1,2,3,4] - end - - it "returns a number range given a step of 1" do - result = scope.function_range(["1","4","1"]) - result.should eq [1,2,3,4] - end - - it "returns a stepped number range" do - result = scope.function_range(["1","4","2"]) - result.should eq [1,3] - end - - it "returns a stepped number range given a negative step" do - result = scope.function_range(["1","4","-2"]) - result.should eq [1,3] - end - end - - describe 'with a numeric-like string range' do - it "works with padded hostname like strings" do - expected = ("host01".."host10").to_a - scope.function_range(["host01","host10"]).should eq expected - end - - it "coerces zero padded digits to integers" do - expected = (0..10).to_a - scope.function_range(["00", "10"]).should eq expected - end - end -end diff --git a/modules/stdlib/spec/functions/reject_spec.rb b/modules/stdlib/spec/functions/reject_spec.rb deleted file mode 100755 index f2cb741..0000000 --- a/modules/stdlib/spec/functions/reject_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env ruby - -require 'spec_helper' - -describe "the reject function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("reject").should == "function_reject" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_reject([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should reject contents from an array" do - result = scope.function_reject([["1111", "aaabbb","bbbccc","dddeee"], "bbb"]) - result.should(eq(["1111", "dddeee"])) - end -end diff --git a/modules/stdlib/spec/functions/reverse_spec.rb b/modules/stdlib/spec/functions/reverse_spec.rb deleted file mode 100755 index 1b59206..0000000 --- a/modules/stdlib/spec/functions/reverse_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the reverse function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("reverse").should == "function_reverse" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_reverse([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should reverse a string" do - result = scope.function_reverse(["asdfghijkl"]) - result.should(eq('lkjihgfdsa')) - end -end diff --git a/modules/stdlib/spec/functions/rstrip_spec.rb b/modules/stdlib/spec/functions/rstrip_spec.rb deleted file mode 100755 index d90de1d..0000000 --- a/modules/stdlib/spec/functions/rstrip_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the rstrip function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("rstrip").should == "function_rstrip" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_rstrip([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should rstrip a string" do - result = scope.function_rstrip(["asdf "]) - result.should(eq('asdf')) - end - - it "should rstrip each element in an array" do - result = scope.function_rstrip([["a ","b ", "c "]]) - result.should(eq(['a','b','c'])) - end -end diff --git a/modules/stdlib/spec/functions/shuffle_spec.rb b/modules/stdlib/spec/functions/shuffle_spec.rb deleted file mode 100755 index 93346d5..0000000 --- a/modules/stdlib/spec/functions/shuffle_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the shuffle function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("shuffle").should == "function_shuffle" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_shuffle([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should shuffle a string and the result should be the same size" do - result = scope.function_shuffle(["asdf"]) - result.size.should(eq(4)) - end - - it "should shuffle a string but the sorted contents should still be the same" do - result = scope.function_shuffle(["adfs"]) - result.split("").sort.join("").should(eq("adfs")) - end -end diff --git a/modules/stdlib/spec/functions/size_spec.rb b/modules/stdlib/spec/functions/size_spec.rb deleted file mode 100755 index b1c435a..0000000 --- a/modules/stdlib/spec/functions/size_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the size function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("size").should == "function_size" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_size([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return the size of a string" do - result = scope.function_size(["asdf"]) - result.should(eq(4)) - end - - it "should return the size of an array" do - result = scope.function_size([["a","b","c"]]) - result.should(eq(3)) - end -end diff --git a/modules/stdlib/spec/functions/sort_spec.rb b/modules/stdlib/spec/functions/sort_spec.rb deleted file mode 100755 index 3187a5a..0000000 --- a/modules/stdlib/spec/functions/sort_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the sort function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("sort").should == "function_sort" - end - - it "should raise a ParseError if there is not 1 arguments" do - lambda { scope.function_sort(['','']) }.should( raise_error(Puppet::ParseError)) - end - - it "should sort an array" do - result = scope.function_sort([["a","c","b"]]) - result.should(eq(['a','b','c'])) - end - - it "should sort a string" do - result = scope.function_sort(["acb"]) - result.should(eq('abc')) - end -end diff --git a/modules/stdlib/spec/functions/squeeze_spec.rb b/modules/stdlib/spec/functions/squeeze_spec.rb deleted file mode 100755 index 60e5a30..0000000 --- a/modules/stdlib/spec/functions/squeeze_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the squeeze function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("squeeze").should == "function_squeeze" - end - - it "should raise a ParseError if there is less than 2 arguments" do - lambda { scope.function_squeeze([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should squeeze a string" do - result = scope.function_squeeze(["aaabbbbcccc"]) - result.should(eq('abc')) - end - - it "should squeeze all elements in an array" do - result = scope.function_squeeze([["aaabbbbcccc","dddfff"]]) - result.should(eq(['abc','df'])) - end -end diff --git a/modules/stdlib/spec/functions/str2bool_spec.rb b/modules/stdlib/spec/functions/str2bool_spec.rb deleted file mode 100755 index 73c09c7..0000000 --- a/modules/stdlib/spec/functions/str2bool_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the str2bool function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("str2bool").should == "function_str2bool" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_str2bool([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert string 'true' to true" do - result = scope.function_str2bool(["true"]) - result.should(eq(true)) - end - - it "should convert string 'undef' to false" do - result = scope.function_str2bool(["undef"]) - result.should(eq(false)) - end - - it "should return the boolean it was called with" do - result = scope.function_str2bool([true]) - result.should(eq(true)) - result = scope.function_str2bool([false]) - result.should(eq(false)) - end -end diff --git a/modules/stdlib/spec/functions/str2saltedsha512_spec.rb b/modules/stdlib/spec/functions/str2saltedsha512_spec.rb deleted file mode 100755 index df8fb8e..0000000 --- a/modules/stdlib/spec/functions/str2saltedsha512_spec.rb +++ /dev/null @@ -1,45 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the str2saltedsha512 function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("str2saltedsha512").should == "function_str2saltedsha512" - end - - it "should raise a ParseError if there is less than 1 argument" do - expect { scope.function_str2saltedsha512([]) }.to( raise_error(Puppet::ParseError) ) - end - - it "should raise a ParseError if there is more than 1 argument" do - expect { scope.function_str2saltedsha512(['foo', 'bar', 'baz']) }.to( raise_error(Puppet::ParseError) ) - end - - it "should return a salted-sha512 password hash 136 characters in length" do - result = scope.function_str2saltedsha512(["password"]) - result.length.should(eq(136)) - end - - it "should raise an error if you pass a non-string password" do - expect { scope.function_str2saltedsha512([1234]) }.to( raise_error(Puppet::ParseError) ) - end - - it "should generate a valid password" do - # Allow the function to generate a password based on the string 'password' - password_hash = scope.function_str2saltedsha512(["password"]) - - # Separate the Salt and Password from the Password Hash - salt = password_hash[0..7] - password = password_hash[8..-1] - - # Convert the Salt and Password from Hex to Binary Data - str_salt = Array(salt.lines).pack('H*') - str_password = Array(password.lines).pack('H*') - - # Combine the Binary Salt with 'password' and compare the end result - saltedpass = Digest::SHA512.digest(str_salt + 'password') - result = (str_salt + saltedpass).unpack('H*')[0] - result.should == password_hash - end -end diff --git a/modules/stdlib/spec/functions/strftime_spec.rb b/modules/stdlib/spec/functions/strftime_spec.rb deleted file mode 100755 index df42b6f..0000000 --- a/modules/stdlib/spec/functions/strftime_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the strftime function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("strftime").should == "function_strftime" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_strftime([]) }.should( raise_error(Puppet::ParseError)) - end - - it "using %s should be higher then when I wrote this test" do - result = scope.function_strftime(["%s"]) - result.to_i.should(be > 1311953157) - end - - it "using %s should be lower then 1.5 trillion" do - result = scope.function_strftime(["%s"]) - result.to_i.should(be < 1500000000) - end - - it "should return a date when given %Y-%m-%d" do - result = scope.function_strftime(["%Y-%m-%d"]) - result.should =~ /^\d{4}-\d{2}-\d{2}$/ - end -end diff --git a/modules/stdlib/spec/functions/strip_spec.rb b/modules/stdlib/spec/functions/strip_spec.rb deleted file mode 100755 index fccdd26..0000000 --- a/modules/stdlib/spec/functions/strip_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the strip function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - it "should exist" do - Puppet::Parser::Functions.function("strip").should == "function_strip" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_strip([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should strip a string" do - result = scope.function_strip([" ab cd "]) - result.should(eq('ab cd')) - end -end diff --git a/modules/stdlib/spec/functions/suffix_spec.rb b/modules/stdlib/spec/functions/suffix_spec.rb deleted file mode 100755 index 89ba3b8..0000000 --- a/modules/stdlib/spec/functions/suffix_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the suffix function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "raises a ParseError if there is less than 1 arguments" do - expect { scope.function_suffix([]) }.to raise_error(Puppet::ParseError, /number of arguments/) - end - - it "raises an error if the first argument is not an array" do - expect { - scope.function_suffix([Object.new]) - }.to raise_error(Puppet::ParseError, /expected first argument to be an Array/) - end - - it "raises an error if the second argument is not a string" do - expect { - scope.function_suffix([['first', 'second'], 42]) - }.to raise_error(Puppet::ParseError, /expected second argument to be a String/) - end - - it "returns a suffixed array" do - result = scope.function_suffix([['a','b','c'], 'p']) - result.should(eq(['ap','bp','cp'])) - end -end diff --git a/modules/stdlib/spec/functions/swapcase_spec.rb b/modules/stdlib/spec/functions/swapcase_spec.rb deleted file mode 100755 index 808b415..0000000 --- a/modules/stdlib/spec/functions/swapcase_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the swapcase function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("swapcase").should == "function_swapcase" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_swapcase([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should swapcase a string" do - result = scope.function_swapcase(["aaBBccDD"]) - result.should(eq('AAbbCCdd')) - end -end diff --git a/modules/stdlib/spec/functions/time_spec.rb b/modules/stdlib/spec/functions/time_spec.rb deleted file mode 100755 index e9fb76e..0000000 --- a/modules/stdlib/spec/functions/time_spec.rb +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the time function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("time").should == "function_time" - end - - it "should raise a ParseError if there is more than 2 arguments" do - lambda { scope.function_time(['','']) }.should( raise_error(Puppet::ParseError)) - end - - it "should return a number" do - result = scope.function_time([]) - result.should be_an(Integer) - end - - it "should be higher then when I wrote this test" do - result = scope.function_time([]) - result.should(be > 1311953157) - end - - it "should be lower then 1.5 trillion" do - result = scope.function_time([]) - result.should(be < 1500000000) - end -end diff --git a/modules/stdlib/spec/functions/to_bytes_spec.rb b/modules/stdlib/spec/functions/to_bytes_spec.rb deleted file mode 100755 index d1ea4c8..0000000 --- a/modules/stdlib/spec/functions/to_bytes_spec.rb +++ /dev/null @@ -1,58 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the to_bytes function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("to_bytes").should == "function_to_bytes" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_to_bytes([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should convert kB to B" do - result = scope.function_to_bytes(["4 kB"]) - result.should(eq(4096)) - end - - it "should work without B in unit" do - result = scope.function_to_bytes(["4 k"]) - result.should(eq(4096)) - end - - it "should work without a space before unit" do - result = scope.function_to_bytes(["4k"]) - result.should(eq(4096)) - end - - it "should work without a unit" do - result = scope.function_to_bytes(["5678"]) - result.should(eq(5678)) - end - - it "should convert fractions" do - result = scope.function_to_bytes(["1.5 kB"]) - result.should(eq(1536)) - end - - it "should convert scientific notation" do - result = scope.function_to_bytes(["1.5e2 B"]) - result.should(eq(150)) - end - - it "should do nothing with a positive number" do - result = scope.function_to_bytes([5678]) - result.should(eq(5678)) - end - - it "should should raise a ParseError if input isn't a number" do - lambda { scope.function_to_bytes(["foo"]) }.should( raise_error(Puppet::ParseError)) - end - - it "should should raise a ParseError if prefix is unknown" do - lambda { scope.function_to_bytes(["5 uB"]) }.should( raise_error(Puppet::ParseError)) - end -end diff --git a/modules/stdlib/spec/functions/type_spec.rb b/modules/stdlib/spec/functions/type_spec.rb deleted file mode 100755 index 8fec88f..0000000 --- a/modules/stdlib/spec/functions/type_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the type function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - it "should exist" do - Puppet::Parser::Functions.function("type").should == "function_type" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_type([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return string when given a string" do - result = scope.function_type(["aaabbbbcccc"]) - result.should(eq('string')) - end - - it "should return array when given an array" do - result = scope.function_type([["aaabbbbcccc","asdf"]]) - result.should(eq('array')) - end - - it "should return hash when given a hash" do - result = scope.function_type([{"a"=>1,"b"=>2}]) - result.should(eq('hash')) - end - - it "should return integer when given an integer" do - result = scope.function_type(["1"]) - result.should(eq('integer')) - end - - it "should return float when given a float" do - result = scope.function_type(["1.34"]) - result.should(eq('float')) - end - - it "should return boolean when given a boolean" do - result = scope.function_type([true]) - result.should(eq('boolean')) - end -end diff --git a/modules/stdlib/spec/functions/union_spec.rb b/modules/stdlib/spec/functions/union_spec.rb deleted file mode 100755 index 0d282ca..0000000 --- a/modules/stdlib/spec/functions/union_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the union function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("union").should == "function_union" - end - - it "should raise a ParseError if there are fewer than 2 arguments" do - lambda { scope.function_union([]) }.should( raise_error(Puppet::ParseError) ) - end - - it "should join two arrays together" do - result = scope.function_union([["a","b","c"],["b","c","d"]]) - result.should(eq(["a","b","c","d"])) - end -end diff --git a/modules/stdlib/spec/functions/unique_spec.rb b/modules/stdlib/spec/functions/unique_spec.rb deleted file mode 100755 index 5d48d49..0000000 --- a/modules/stdlib/spec/functions/unique_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the unique function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("unique").should == "function_unique" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_unique([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should remove duplicate elements in a string" do - result = scope.function_unique(["aabbc"]) - result.should(eq('abc')) - end - - it "should remove duplicate elements in an array" do - result = scope.function_unique([["a","a","b","b","c"]]) - result.should(eq(['a','b','c'])) - end -end diff --git a/modules/stdlib/spec/functions/upcase_spec.rb b/modules/stdlib/spec/functions/upcase_spec.rb deleted file mode 100755 index 5db5513..0000000 --- a/modules/stdlib/spec/functions/upcase_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the upcase function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("upcase").should == "function_upcase" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_upcase([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should upcase a string" do - result = scope.function_upcase(["abc"]) - result.should(eq('ABC')) - end - - it "should do nothing if a string is already upcase" do - result = scope.function_upcase(["ABC"]) - result.should(eq('ABC')) - end -end diff --git a/modules/stdlib/spec/functions/uriescape_spec.rb b/modules/stdlib/spec/functions/uriescape_spec.rb deleted file mode 100755 index 7211c88..0000000 --- a/modules/stdlib/spec/functions/uriescape_spec.rb +++ /dev/null @@ -1,24 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the uriescape function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("uriescape").should == "function_uriescape" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_uriescape([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should uriescape a string" do - result = scope.function_uriescape([":/?#[]@!$&'()*+,;= \"{}"]) - result.should(eq(':/?%23[]@!$&\'()*+,;=%20%22%7B%7D')) - end - - it "should do nothing if a string is already safe" do - result = scope.function_uriescape(["ABCdef"]) - result.should(eq('ABCdef')) - end -end diff --git a/modules/stdlib/spec/functions/validate_absolute_path_spec.rb b/modules/stdlib/spec/functions/validate_absolute_path_spec.rb deleted file mode 100755 index 342ae84..0000000 --- a/modules/stdlib/spec/functions/validate_absolute_path_spec.rb +++ /dev/null @@ -1,84 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_absolute_path) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - # The subject of these examples is the method itself. - subject do - # This makes sure the function is loaded within each test - function_name = Puppet::Parser::Functions.function(:validate_absolute_path) - scope.method(function_name) - end - - describe "Valid Paths" do - def self.valid_paths - %w{ - C:/ - C:\\ - C:\\WINDOWS\\System32 - C:/windows/system32 - X:/foo/bar - X:\\foo\\bar - /var/tmp - /var/lib/puppet - /var/opt/../lib/puppet - } - end - - context "Without Puppet::Util.absolute_path? (e.g. Puppet <= 2.6)" do - before :each do - # The intent here is to mock Puppet to behave like Puppet 2.6 does. - # Puppet 2.6 does not have the absolute_path? method. This is only a - # convenience test, stdlib should be run with the Puppet 2.6.x in the - # $LOAD_PATH in addition to 2.7.x and master. - Puppet::Util.expects(:respond_to?).with(:absolute_path?).returns(false) - end - valid_paths.each do |path| - it "validate_absolute_path(#{path.inspect}) should not fail" do - expect { subject.call [path] }.not_to raise_error - end - end - end - - context "Puppet without mocking" do - valid_paths.each do |path| - it "validate_absolute_path(#{path.inspect}) should not fail" do - expect { subject.call [path] }.not_to raise_error - end - end - end - end - - describe 'Invalid paths' do - context 'Garbage inputs' do - [ - nil, - [ nil ], - { 'foo' => 'bar' }, - { }, - '', - ].each do |path| - it "validate_absolute_path(#{path.inspect}) should fail" do - expect { subject.call [path] }.to raise_error Puppet::ParseError - end - end - end - - context 'Relative paths' do - %w{ - relative1 - . - .. - ./foo - ../foo - etc/puppetlabs/puppet - opt/puppet/bin - }.each do |path| - it "validate_absolute_path(#{path.inspect}) should fail" do - expect { subject.call [path] }.to raise_error Puppet::ParseError - end - end - end - end -end diff --git a/modules/stdlib/spec/functions/validate_array_spec.rb b/modules/stdlib/spec/functions/validate_array_spec.rb deleted file mode 100755 index 4b31cfd..0000000 --- a/modules/stdlib/spec/functions/validate_array_spec.rb +++ /dev/null @@ -1,38 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_array) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - describe 'when calling validate_array from puppet' do - - %w{ true false }.each do |the_string| - it "should not compile when #{the_string} is a string" do - Puppet[:code] = "validate_array('#{the_string}')" - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not an Array/) - end - - it "should not compile when #{the_string} is a bare word" do - Puppet[:code] = "validate_array(#{the_string})" - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not an Array/) - end - end - - it "should compile when multiple array arguments are passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = [ ] - $bar = [ 'one', 'two' ] - validate_array($foo, $bar) - ENDofPUPPETcode - scope.compiler.compile - end - - it "should not compile when an undef variable is passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = undef - validate_array($foo) - ENDofPUPPETcode - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not an Array/) - end - end -end diff --git a/modules/stdlib/spec/functions/validate_augeas_spec.rb b/modules/stdlib/spec/functions/validate_augeas_spec.rb deleted file mode 100755 index c695ba2..0000000 --- a/modules/stdlib/spec/functions/validate_augeas_spec.rb +++ /dev/null @@ -1,103 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_augeas), :if => Puppet.features.augeas? do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - # The subject of these examplres is the method itself. - subject do - # This makes sure the function is loaded within each test - function_name = Puppet::Parser::Functions.function(:validate_augeas) - scope.method(function_name) - end - - context 'Using Puppet::Parser::Scope.new' do - - describe 'Garbage inputs' do - inputs = [ - [ nil ], - [ [ nil ] ], - [ { 'foo' => 'bar' } ], - [ { } ], - [ '' ], - [ "one", "one", "MSG to User", "4th arg" ], - ] - - inputs.each do |input| - it "validate_augeas(#{input.inspect}) should fail" do - expect { subject.call [input] }.to raise_error Puppet::ParseError - end - end - end - - describe 'Valid inputs' do - inputs = [ - [ "root:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns' ], - [ "proc /proc proc nodev,noexec,nosuid 0 0\n", 'Fstab.lns'], - ] - - inputs.each do |input| - it "validate_augeas(#{input.inspect}) should not fail" do - expect { subject.call input }.not_to raise_error - end - end - end - - describe "Valid inputs which should raise an exception without a message" do - # The intent here is to make sure valid inputs raise exceptions when they - # don't specify an error message to display. This is the behvior in - # 2.2.x and prior. - inputs = [ - [ "root:x:0:0:root\n", 'Passwd.lns' ], - [ "127.0.1.1\n", 'Hosts.lns' ], - ] - - inputs.each do |input| - it "validate_augeas(#{input.inspect}) should fail" do - expect { subject.call input }.to raise_error /validate_augeas.*?matched less than it should/ - end - end - end - - describe "Nicer Error Messages" do - # The intent here is to make sure the function returns the 3rd argument - # in the exception thrown - inputs = [ - [ "root:x:0:0:root\n", 'Passwd.lns', [], 'Failed to validate passwd content' ], - [ "127.0.1.1\n", 'Hosts.lns', [], 'Wrong hosts content' ], - ] - - inputs.each do |input| - it "validate_augeas(#{input.inspect}) should fail" do - expect { subject.call input }.to raise_error /#{input[2]}/ - end - end - end - - describe "Passing simple unit tests" do - inputs = [ - [ "root:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns', ['$file/foobar']], - [ "root:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns', ['$file/root/shell[.="/bin/sh"]', 'foobar']], - ] - - inputs.each do |input| - it "validate_augeas(#{input.inspect}) should fail" do - expect { subject.call input }.not_to raise_error - end - end - end - - describe "Failing simple unit tests" do - inputs = [ - [ "foobar:x:0:0:root:/root:/bin/bash\n", 'Passwd.lns', ['$file/foobar']], - [ "root:x:0:0:root:/root:/bin/sh\n", 'Passwd.lns', ['$file/root/shell[.="/bin/sh"]', 'foobar']], - ] - - inputs.each do |input| - it "validate_augeas(#{input.inspect}) should fail" do - expect { subject.call input }.to raise_error /testing path/ - end - end - end - end -end diff --git a/modules/stdlib/spec/functions/validate_bool_spec.rb b/modules/stdlib/spec/functions/validate_bool_spec.rb deleted file mode 100755 index a352d3b..0000000 --- a/modules/stdlib/spec/functions/validate_bool_spec.rb +++ /dev/null @@ -1,51 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_bool) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - describe 'when calling validate_bool from puppet' do - - %w{ true false }.each do |the_string| - - it "should not compile when #{the_string} is a string" do - Puppet[:code] = "validate_bool('#{the_string}')" - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a boolean/) - end - - it "should compile when #{the_string} is a bare word" do - Puppet[:code] = "validate_bool(#{the_string})" - scope.compiler.compile - end - - end - - it "should not compile when an arbitrary string is passed" do - Puppet[:code] = 'validate_bool("jeff and dan are awesome")' - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a boolean/) - end - - it "should not compile when no arguments are passed" do - Puppet[:code] = 'validate_bool()' - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - - it "should compile when multiple boolean arguments are passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = true - $bar = false - validate_bool($foo, $bar, true, false) - ENDofPUPPETcode - scope.compiler.compile - end - - it "should compile when multiple boolean arguments are passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = true - $bar = false - validate_bool($foo, $bar, true, false, 'jeff') - ENDofPUPPETcode - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a boolean/) - end - end -end diff --git a/modules/stdlib/spec/functions/validate_cmd_spec.rb b/modules/stdlib/spec/functions/validate_cmd_spec.rb deleted file mode 100755 index a6e68df..0000000 --- a/modules/stdlib/spec/functions/validate_cmd_spec.rb +++ /dev/null @@ -1,48 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -TESTEXE = File.exists?('/usr/bin/test') ? '/usr/bin/test' : '/bin/test' -TOUCHEXE = File.exists?('/usr/bin/touch') ? '/usr/bin/touch' : '/bin/touch' - -describe Puppet::Parser::Functions.function(:validate_cmd) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - subject do - function_name = Puppet::Parser::Functions.function(:validate_cmd) - scope.method(function_name) - end - - describe "with an explicit failure message" do - it "prints the failure message on error" do - expect { - subject.call ['', '/bin/false', 'failure message!'] - }.to raise_error Puppet::ParseError, /failure message!/ - end - end - - describe "on validation failure" do - it "includes the command error output" do - expect { - subject.call ['', "#{TOUCHEXE} /cant/touch/this"] - }.to raise_error Puppet::ParseError, /(cannot touch|o such file or)/ - end - - it "includes the command return value" do - expect { - subject.call ['', '/cant/run/this'] - }.to raise_error Puppet::ParseError, /returned 1\b/ - end - end - - describe "when performing actual validation" do - it "can positively validate file content" do - expect { subject.call ["non-empty", "#{TESTEXE} -s"] }.to_not raise_error - end - - it "can negatively validate file content" do - expect { - subject.call ["", "#{TESTEXE} -s"] - }.to raise_error Puppet::ParseError, /failed to validate.*test -s/ - end - end -end diff --git a/modules/stdlib/spec/functions/validate_hash_spec.rb b/modules/stdlib/spec/functions/validate_hash_spec.rb deleted file mode 100755 index a0c35c2..0000000 --- a/modules/stdlib/spec/functions/validate_hash_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_hash) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe 'when calling validate_hash from puppet' do - - %w{ true false }.each do |the_string| - - it "should not compile when #{the_string} is a string" do - Puppet[:code] = "validate_hash('#{the_string}')" - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a Hash/) - end - - it "should not compile when #{the_string} is a bare word" do - Puppet[:code] = "validate_hash(#{the_string})" - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a Hash/) - end - - end - - it "should compile when multiple hash arguments are passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = {} - $bar = { 'one' => 'two' } - validate_hash($foo, $bar) - ENDofPUPPETcode - scope.compiler.compile - end - - it "should not compile when an undef variable is passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = undef - validate_hash($foo) - ENDofPUPPETcode - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a Hash/) - end - - end - -end diff --git a/modules/stdlib/spec/functions/validate_ipv4_address_spec.rb b/modules/stdlib/spec/functions/validate_ipv4_address_spec.rb deleted file mode 100755 index 45401a4..0000000 --- a/modules/stdlib/spec/functions/validate_ipv4_address_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require "spec_helper" - -describe Puppet::Parser::Functions.function(:validate_ipv4_address) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe "when calling validate_ipv4_address from puppet" do - describe "when given IPv4 address strings" do - it "should compile with one argument" do - Puppet[:code] = "validate_ipv4_address('1.2.3.4')" - scope.compiler.compile - end - - it "should compile with multiple arguments" do - Puppet[:code] = "validate_ipv4_address('1.2.3.4', '5.6.7.8')" - scope.compiler.compile - end - end - - describe "when given an IPv6 address" do - it "should not compile" do - Puppet[:code] = "validate_ipv4_address('3ffe:505')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /not a valid IPv4 address/) - end - end - - describe "when given other strings" do - it "should not compile" do - Puppet[:code] = "validate_ipv4_address('hello', 'world')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /not a valid IPv4 address/) - end - end - - describe "when given numbers" do - it "should not compile" do - Puppet[:code] = "validate_ipv4_address(1, 2)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /is not a valid IPv4 address/) - end - end - - describe "when given booleans" do - it "should not compile" do - Puppet[:code] = "validate_ipv4_address(true, false)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /is not a string/) - end - end - - it "should not compile when no arguments are passed" do - Puppet[:code] = "validate_ipv4_address()" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - end -end diff --git a/modules/stdlib/spec/functions/validate_ipv6_address_spec.rb b/modules/stdlib/spec/functions/validate_ipv6_address_spec.rb deleted file mode 100755 index a839d90..0000000 --- a/modules/stdlib/spec/functions/validate_ipv6_address_spec.rb +++ /dev/null @@ -1,67 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require "spec_helper" - -describe Puppet::Parser::Functions.function(:validate_ipv6_address) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe "when calling validate_ipv6_address from puppet" do - describe "when given IPv6 address strings" do - it "should compile with one argument" do - Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::')" - scope.compiler.compile - end - - it "should compile with multiple arguments" do - Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::', '3ffe:0505:0001::')" - scope.compiler.compile - end - end - - describe "when given an ipv4 address" do - it "should not compile" do - Puppet[:code] = "validate_ipv6_address('1.2.3.4')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) - end - end - - describe "when given other strings" do - it "should not compile" do - Puppet[:code] = "validate_ipv6_address('hello', 'world')" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) - end - end - - # 1.8.7 is EOL'd and also absolutely insane about ipv6 - unless RUBY_VERSION == '1.8.7' - describe "when given numbers" do - it "should not compile" do - Puppet[:code] = "validate_ipv6_address(1, 2)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/) - end - end - end - - describe "when given booleans" do - it "should not compile" do - Puppet[:code] = "validate_ipv6_address(true, false)" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /is not a string/) - end - end - - it "should not compile when no arguments are passed" do - Puppet[:code] = "validate_ipv6_address()" - expect { - scope.compiler.compile - }.to raise_error(Puppet::ParseError, /wrong number of arguments/) - end - end -end diff --git a/modules/stdlib/spec/functions/validate_re_spec.rb b/modules/stdlib/spec/functions/validate_re_spec.rb deleted file mode 100755 index d29988b..0000000 --- a/modules/stdlib/spec/functions/validate_re_spec.rb +++ /dev/null @@ -1,77 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_re) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - # The subject of these examplres is the method itself. - subject do - # This makes sure the function is loaded within each test - function_name = Puppet::Parser::Functions.function(:validate_re) - scope.method(function_name) - end - - context 'Using Puppet::Parser::Scope.new' do - - describe 'Garbage inputs' do - inputs = [ - [ nil ], - [ [ nil ] ], - [ { 'foo' => 'bar' } ], - [ { } ], - [ '' ], - [ "one", "one", "MSG to User", "4th arg" ], - ] - - inputs.each do |input| - it "validate_re(#{input.inspect}) should fail" do - expect { subject.call [input] }.to raise_error Puppet::ParseError - end - end - end - - describe 'Valid inputs' do - inputs = [ - [ '/full/path/to/something', '^/full' ], - [ '/full/path/to/something', 'full' ], - [ '/full/path/to/something', ['full', 'absent'] ], - [ '/full/path/to/something', ['full', 'absent'], 'Message to the user' ], - ] - - inputs.each do |input| - it "validate_re(#{input.inspect}) should not fail" do - expect { subject.call input }.not_to raise_error - end - end - end - describe "Valid inputs which should raise an exception without a message" do - # The intent here is to make sure valid inputs raise exceptions when they - # don't specify an error message to display. This is the behvior in - # 2.2.x and prior. - inputs = [ - [ "hello", [ "bye", "later", "adios" ] ], - [ "greetings", "salutations" ], - ] - - inputs.each do |input| - it "validate_re(#{input.inspect}) should fail" do - expect { subject.call input }.to raise_error /validate_re.*?does not match/ - end - end - end - describe "Nicer Error Messages" do - # The intent here is to make sure the function returns the 3rd argument - # in the exception thrown - inputs = [ - [ "hello", [ "bye", "later", "adios" ], "MSG to User" ], - [ "greetings", "salutations", "Error, greetings does not match salutations" ], - ] - - inputs.each do |input| - it "validate_re(#{input.inspect}) should fail" do - expect { subject.call input }.to raise_error /#{input[2]}/ - end - end - end - end -end diff --git a/modules/stdlib/spec/functions/validate_slength_spec.rb b/modules/stdlib/spec/functions/validate_slength_spec.rb deleted file mode 100755 index 851835f..0000000 --- a/modules/stdlib/spec/functions/validate_slength_spec.rb +++ /dev/null @@ -1,67 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe "the validate_slength function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("validate_slength").should == "function_validate_slength" - end - - describe "validating the input argument types" do - it "raises an error if there are less than two arguments" do - expect { scope.function_validate_slength([]) }.to raise_error Puppet::ParseError, /Wrong number of arguments/ - end - - it "raises an error if there are more than three arguments" do - expect { scope.function_validate_slength(['input', 1, 2, 3]) }.to raise_error Puppet::ParseError, /Wrong number of arguments/ - end - - it "raises an error if the first argument is not a string" do - expect { scope.function_validate_slength([Object.new, 2, 1]) }.to raise_error Puppet::ParseError, /Expected first argument.*got .*Object/ - end - - it "raises an error if the second argument cannot be cast to an Integer" do - expect { scope.function_validate_slength(['input', Object.new]) }.to raise_error Puppet::ParseError, /Expected second argument.*got .*Object/ - end - - it "raises an error if the third argument cannot be cast to an Integer" do - expect { scope.function_validate_slength(['input', 1, Object.new]) }.to raise_error Puppet::ParseError, /Expected third argument.*got .*Object/ - end - - it "raises an error if the second argument is smaller than the third argument" do - expect { scope.function_validate_slength(['input', 1, 2]) }.to raise_error Puppet::ParseError, /Expected second argument to be larger than third argument/ - end - end - - describe "validating the input string length" do - describe "when the input is a string" do - it "fails validation if the string is larger than the max length" do - expect { scope.function_validate_slength(['input', 1]) }.to raise_error Puppet::ParseError, /Expected length .* between 0 and 1, was 5/ - end - - it "fails validation if the string is less than the min length" do - expect { scope.function_validate_slength(['input', 10, 6]) }.to raise_error Puppet::ParseError, /Expected length .* between 6 and 10, was 5/ - end - - it "doesn't raise an error if the string is under the max length" do - scope.function_validate_slength(['input', 10]) - end - - it "doesn't raise an error if the string is equal to the max length" do - scope.function_validate_slength(['input', 5]) - end - - it "doesn't raise an error if the string is equal to the min length" do - scope.function_validate_slength(['input', 10, 5]) - end - end - - describe "when the input is an array" do - it "fails validation if one of the array elements is not a string" do - expect { scope.function_validate_slength([["a", "b", Object.new], 2]) }.to raise_error Puppet::ParseError, /Expected element at array position 2 .*String, got .*Object/ - end - end - end -end diff --git a/modules/stdlib/spec/functions/validate_string_spec.rb b/modules/stdlib/spec/functions/validate_string_spec.rb deleted file mode 100755 index 3b4fb3e..0000000 --- a/modules/stdlib/spec/functions/validate_string_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -require 'spec_helper' - -describe Puppet::Parser::Functions.function(:validate_string) do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - describe 'when calling validate_string from puppet' do - - %w{ foo bar baz }.each do |the_string| - - it "should compile when #{the_string} is a string" do - Puppet[:code] = "validate_string('#{the_string}')" - scope.compiler.compile - end - - it "should compile when #{the_string} is a bare word" do - Puppet[:code] = "validate_string(#{the_string})" - scope.compiler.compile - end - - end - - %w{ true false }.each do |the_string| - it "should compile when #{the_string} is a string" do - Puppet[:code] = "validate_string('#{the_string}')" - scope.compiler.compile - end - - it "should not compile when #{the_string} is a bare word" do - Puppet[:code] = "validate_string(#{the_string})" - expect { scope.compiler.compile }.to raise_error(Puppet::ParseError, /is not a string/) - end - end - - it "should compile when multiple string arguments are passed" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = '' - $bar = 'two' - validate_string($foo, $bar) - ENDofPUPPETcode - scope.compiler.compile - end - - it "should compile when an explicitly undef variable is passed (NOTE THIS MAY NOT BE DESIRABLE)" do - Puppet[:code] = <<-'ENDofPUPPETcode' - $foo = undef - validate_string($foo) - ENDofPUPPETcode - scope.compiler.compile - end - - it "should compile when an undefined variable is passed (NOTE THIS MAY NOT BE DESIRABLE)" do - Puppet[:code] = <<-'ENDofPUPPETcode' - validate_string($foobarbazishouldnotexist) - ENDofPUPPETcode - scope.compiler.compile - end - end -end diff --git a/modules/stdlib/spec/functions/values_at_spec.rb b/modules/stdlib/spec/functions/values_at_spec.rb deleted file mode 100755 index 08e95a5..0000000 --- a/modules/stdlib/spec/functions/values_at_spec.rb +++ /dev/null @@ -1,38 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the values_at function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("values_at").should == "function_values_at" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_values_at([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should raise a ParseError if you try to use a range where stop is greater then start" do - lambda { scope.function_values_at([['a','b'],["3-1"]]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return a value at from an array" do - result = scope.function_values_at([['a','b','c'],"1"]) - result.should(eq(['b'])) - end - - it "should return a value at from an array when passed a range" do - result = scope.function_values_at([['a','b','c'],"0-1"]) - result.should(eq(['a','b'])) - end - - it "should return chosen values from an array when passed number of indexes" do - result = scope.function_values_at([['a','b','c'],["0","2"]]) - result.should(eq(['a','c'])) - end - - it "should return chosen values from an array when passed ranges and multiple indexes" do - result = scope.function_values_at([['a','b','c','d','e','f','g'],["0","2","4-5"]]) - result.should(eq(['a','c','e','f'])) - end -end diff --git a/modules/stdlib/spec/functions/values_spec.rb b/modules/stdlib/spec/functions/values_spec.rb deleted file mode 100755 index 14ae417..0000000 --- a/modules/stdlib/spec/functions/values_spec.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the values function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should exist" do - Puppet::Parser::Functions.function("values").should == "function_values" - end - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_values([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should return values from a hash" do - result = scope.function_values([{'a'=>'1','b'=>'2','c'=>'3'}]) - # =~ is the RSpec::Matchers::MatchArray matcher. - # A.K.A. "array with same elements" (multiset) matching - result.should =~ %w{ 1 2 3 } - end - - it "should return a multiset" do - result = scope.function_values([{'a'=>'1','b'=>'3','c'=>'3'}]) - result.should =~ %w{ 1 3 3 } - result.should_not =~ %w{ 1 3 } - end - - it "should raise a ParseError unless a Hash is provided" do - lambda { scope.function_values([['a','b','c']]) }.should( raise_error(Puppet::ParseError)) - end -end diff --git a/modules/stdlib/spec/functions/zip_spec.rb b/modules/stdlib/spec/functions/zip_spec.rb deleted file mode 100755 index f45ab17..0000000 --- a/modules/stdlib/spec/functions/zip_spec.rb +++ /dev/null @@ -1,15 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' - -describe "the zip function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } - - it "should raise a ParseError if there is less than 1 arguments" do - lambda { scope.function_zip([]) }.should( raise_error(Puppet::ParseError)) - end - - it "should be able to zip an array" do - result = scope.function_zip([['1','2','3'],['4','5','6']]) - result.should(eq([["1", "4"], ["2", "5"], ["3", "6"]])) - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/compiler.rb b/modules/stdlib/spec/lib/puppet_spec/compiler.rb deleted file mode 100755 index 2f0ae4d..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/compiler.rb +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env ruby -S rspec -module PuppetSpec::Compiler - def compile_to_catalog(string, node = Puppet::Node.new('foonode')) - Puppet[:code] = string - Puppet::Parser::Compiler.compile(node) - end - - def compile_to_ral(manifest) - catalog = compile_to_catalog(manifest) - ral = catalog.to_ral - ral.finalize - ral - end - - def compile_to_relationship_graph(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new) - ral = compile_to_ral(manifest) - graph = Puppet::Graph::RelationshipGraph.new(prioritizer) - graph.populate_from(ral) - graph - end - - if Puppet.version.to_f >= 3.3 - def apply_compiled_manifest(manifest, prioritizer = Puppet::Graph::SequentialPrioritizer.new) - transaction = Puppet::Transaction.new(compile_to_ral(manifest), - Puppet::Transaction::Report.new("apply"), - prioritizer) - transaction.evaluate - transaction.report.finalize_report - - transaction - end - else - def apply_compiled_manifest(manifest) - transaction = Puppet::Transaction.new(compile_to_ral(manifest), Puppet::Transaction::Report.new("apply")) - transaction.evaluate - transaction.report.finalize_report - - transaction - end - end - - def order_resources_traversed_in(relationships) - order_seen = [] - relationships.traverse { |resource| order_seen << resource.ref } - order_seen - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/database.rb b/modules/stdlib/spec/lib/puppet_spec/database.rb deleted file mode 100755 index f5c2341..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/database.rb +++ /dev/null @@ -1,30 +0,0 @@ -#! /usr/bin/env ruby -S rspec -# This just makes some nice things available at global scope, and for setup of -# tests to use a real fake database, rather than a fake stubs-that-don't-work -# version of the same. Fun times. -def sqlite? - if $sqlite.nil? - begin - require 'sqlite3' - $sqlite = true - rescue LoadError - $sqlite = false - end - end - $sqlite -end - -def can_use_scratch_database? - sqlite? and Puppet.features.rails? -end - - -# This is expected to be called in your `before :each` block, and will get you -# ready to roll with a serious database and all. Cleanup is handled -# automatically for you. Nothing to do there. -def setup_scratch_database - Puppet[:dbadapter] = 'sqlite3' - Puppet[:dblocation] = ':memory:' - Puppet[:railslog] = PuppetSpec::Files.tmpfile('storeconfigs.log') - Puppet::Rails.init -end diff --git a/modules/stdlib/spec/lib/puppet_spec/files.rb b/modules/stdlib/spec/lib/puppet_spec/files.rb deleted file mode 100755 index 71b38ff..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/files.rb +++ /dev/null @@ -1,61 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'fileutils' -require 'tempfile' -require 'tmpdir' -require 'pathname' - -# A support module for testing files. -module PuppetSpec::Files - def self.cleanup - $global_tempfiles ||= [] - while path = $global_tempfiles.pop do - begin - Dir.unstub(:entries) - FileUtils.rm_rf path, :secure => true - rescue Errno::ENOENT - # nothing to do - end - end - end - - def make_absolute(path) PuppetSpec::Files.make_absolute(path) end - def self.make_absolute(path) - path = File.expand_path(path) - path[0] = 'c' if Puppet.features.microsoft_windows? - path - end - - def tmpfile(name, dir = nil) PuppetSpec::Files.tmpfile(name, dir) end - def self.tmpfile(name, dir = nil) - # Generate a temporary file, just for the name... - source = dir ? Tempfile.new(name, dir) : Tempfile.new(name) - path = source.path - source.close! - - record_tmp(File.expand_path(path)) - - path - end - - def file_containing(name, contents) PuppetSpec::Files.file_containing(name, contents) end - def self.file_containing(name, contents) - file = tmpfile(name) - File.open(file, 'wb') { |f| f.write(contents) } - file - end - - def tmpdir(name) PuppetSpec::Files.tmpdir(name) end - def self.tmpdir(name) - dir = Dir.mktmpdir(name) - - record_tmp(dir) - - dir - end - - def self.record_tmp(tmp) - # ...record it for cleanup, - $global_tempfiles ||= [] - $global_tempfiles << tmp - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/fixtures.rb b/modules/stdlib/spec/lib/puppet_spec/fixtures.rb deleted file mode 100755 index 81e9775..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/fixtures.rb +++ /dev/null @@ -1,29 +0,0 @@ -#! /usr/bin/env ruby -S rspec -module PuppetSpec::Fixtures - def fixtures(*rest) - File.join(PuppetSpec::FIXTURE_DIR, *rest) - end - def my_fixture_dir - callers = caller - while line = callers.shift do - next unless found = line.match(%r{/spec/(.*)_spec\.rb:}) - return fixtures(found[1]) - end - fail "sorry, I couldn't work out your path from the caller stack!" - end - def my_fixture(name) - file = File.join(my_fixture_dir, name) - unless File.readable? file then - fail Puppet::DevError, "fixture '#{name}' for #{my_fixture_dir} is not readable" - end - return file - end - def my_fixtures(glob = '*', flags = 0) - files = Dir.glob(File.join(my_fixture_dir, glob), flags) - unless files.length > 0 then - fail Puppet::DevError, "fixture '#{glob}' for #{my_fixture_dir} had no files!" - end - block_given? and files.each do |file| yield file end - files - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/matchers.rb b/modules/stdlib/spec/lib/puppet_spec/matchers.rb deleted file mode 100755 index 093d77c..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/matchers.rb +++ /dev/null @@ -1,121 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'stringio' - -######################################################################## -# Backward compatibility for Jenkins outdated environment. -module RSpec - module Matchers - module BlockAliases - alias_method :to, :should unless method_defined? :to - alias_method :to_not, :should_not unless method_defined? :to_not - alias_method :not_to, :should_not unless method_defined? :not_to - end - end -end - - -######################################################################## -# Custom matchers... -RSpec::Matchers.define :have_matching_element do |expected| - match do |actual| - actual.any? { |item| item =~ expected } - end -end - - -RSpec::Matchers.define :exit_with do |expected| - actual = nil - match do |block| - begin - block.call - rescue SystemExit => e - actual = e.status - end - actual and actual == expected - end - failure_message_for_should do |block| - "expected exit with code #{expected} but " + - (actual.nil? ? " exit was not called" : "we exited with #{actual} instead") - end - failure_message_for_should_not do |block| - "expected that exit would not be called with #{expected}" - end - description do - "expect exit with #{expected}" - end -end - -class HavePrintedMatcher - attr_accessor :expected, :actual - - def initialize(expected) - case expected - when String, Regexp - @expected = expected - else - @expected = expected.to_s - end - end - - def matches?(block) - begin - $stderr = $stdout = StringIO.new - $stdout.set_encoding('UTF-8') if $stdout.respond_to?(:set_encoding) - block.call - $stdout.rewind - @actual = $stdout.read - ensure - $stdout = STDOUT - $stderr = STDERR - end - - if @actual then - case @expected - when String - @actual.include? @expected - when Regexp - @expected.match @actual - end - else - false - end - end - - def failure_message_for_should - if @actual.nil? then - "expected #{@expected.inspect}, but nothing was printed" - else - "expected #{@expected.inspect} to be printed; got:\n#{@actual}" - end - end - - def failure_message_for_should_not - "expected #{@expected.inspect} to not be printed; got:\n#{@actual}" - end - - def description - "expect #{@expected.inspect} to be printed" - end -end - -def have_printed(what) - HavePrintedMatcher.new(what) -end - -RSpec::Matchers.define :equal_attributes_of do |expected| - match do |actual| - actual.instance_variables.all? do |attr| - actual.instance_variable_get(attr) == expected.instance_variable_get(attr) - end - end -end - -RSpec::Matchers.define :be_one_of do |*expected| - match do |actual| - expected.include? actual - end - - failure_message_for_should do |actual| - "expected #{actual.inspect} to be one of #{expected.map(&:inspect).join(' or ')}" - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/modules.rb b/modules/stdlib/spec/lib/puppet_spec/modules.rb deleted file mode 100755 index 910c6d9..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/modules.rb +++ /dev/null @@ -1,27 +0,0 @@ -#! /usr/bin/env ruby -S rspec -module PuppetSpec::Modules - class << self - def create(name, dir, options = {}) - module_dir = File.join(dir, name) - FileUtils.mkdir_p(module_dir) - - environment = options[:environment] - - if metadata = options[:metadata] - metadata[:source] ||= 'github' - metadata[:author] ||= 'puppetlabs' - metadata[:version] ||= '9.9.9' - metadata[:license] ||= 'to kill' - metadata[:dependencies] ||= [] - - metadata[:name] = "#{metadata[:author]}/#{name}" - - File.open(File.join(module_dir, 'metadata.json'), 'w') do |f| - f.write(metadata.to_pson) - end - end - - Puppet::Module.new(name, module_dir, environment) - end - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/pops.rb b/modules/stdlib/spec/lib/puppet_spec/pops.rb deleted file mode 100755 index e056a52..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/pops.rb +++ /dev/null @@ -1,17 +0,0 @@ -#! /usr/bin/env ruby -S rspec -module PuppetSpec::Pops - extend RSpec::Matchers::DSL - - # Checks if an Acceptor has a specific issue in its list of diagnostics - matcher :have_issue do |expected| - match do |actual| - actual.diagnostics.index { |i| i.issue == expected } != nil - end - failure_message_for_should do |actual| - "expected Acceptor[#{actual.diagnostics.collect { |i| i.issue.issue_code }.join(',')}] to contain issue #{expected.issue_code}" - end - failure_message_for_should_not do |actual| - "expected Acceptor[#{actual.diagnostics.collect { |i| i.issue.issue_code }.join(',')}] to not contain issue #{expected.issue_code}" - end - end -end diff --git a/modules/stdlib/spec/lib/puppet_spec/scope.rb b/modules/stdlib/spec/lib/puppet_spec/scope.rb deleted file mode 100755 index 3847ede..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/scope.rb +++ /dev/null @@ -1,15 +0,0 @@ -#! /usr/bin/env ruby -S rspec - -module PuppetSpec::Scope - # Initialize a new scope suitable for testing. - # - def create_test_scope_for_node(node_name) - node = Puppet::Node.new(node_name) - compiler = Puppet::Parser::Compiler.new(node) - scope = Puppet::Parser::Scope.new(compiler) - scope.source = Puppet::Resource::Type.new(:node, node_name) - scope.parent = compiler.topscope - scope - end - -end \ No newline at end of file diff --git a/modules/stdlib/spec/lib/puppet_spec/settings.rb b/modules/stdlib/spec/lib/puppet_spec/settings.rb deleted file mode 100755 index 8ddcb97..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/settings.rb +++ /dev/null @@ -1,16 +0,0 @@ -#! /usr/bin/env ruby -S rspec -module PuppetSpec::Settings - - # It would probably be preferable to refactor defaults.rb such that the real definitions of - # these settings were available as a variable, which was then accessible for use during tests. - # However, I'm not doing that yet because I don't want to introduce any additional moving parts - # to this already very large changeset. - # Would be nice to clean this up later. --cprice 2012-03-20 - TEST_APP_DEFAULT_DEFINITIONS = { - :name => { :default => "test", :desc => "name" }, - :logdir => { :type => :directory, :default => "test", :desc => "logdir" }, - :confdir => { :type => :directory, :default => "test", :desc => "confdir" }, - :vardir => { :type => :directory, :default => "test", :desc => "vardir" }, - :rundir => { :type => :directory, :default => "test", :desc => "rundir" }, - } -end diff --git a/modules/stdlib/spec/lib/puppet_spec/verbose.rb b/modules/stdlib/spec/lib/puppet_spec/verbose.rb deleted file mode 100755 index b2683df..0000000 --- a/modules/stdlib/spec/lib/puppet_spec/verbose.rb +++ /dev/null @@ -1,10 +0,0 @@ -#! /usr/bin/env ruby -S rspec -# Support code for running stuff with warnings disabled. -module Kernel - def with_verbose_disabled - verbose, $VERBOSE = $VERBOSE, nil - result = yield - $VERBOSE = verbose - return result - end -end diff --git a/modules/stdlib/spec/monkey_patches/alias_should_to_must.rb b/modules/stdlib/spec/monkey_patches/alias_should_to_must.rb deleted file mode 100755 index 505e240..0000000 --- a/modules/stdlib/spec/monkey_patches/alias_should_to_must.rb +++ /dev/null @@ -1,9 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'rspec' - -class Object - # This is necessary because the RAL has a 'should' - # method. - alias :must :should - alias :must_not :should_not -end diff --git a/modules/stdlib/spec/monkey_patches/publicize_methods.rb b/modules/stdlib/spec/monkey_patches/publicize_methods.rb deleted file mode 100755 index 3ae59f9..0000000 --- a/modules/stdlib/spec/monkey_patches/publicize_methods.rb +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env ruby -S rspec -# Some monkey-patching to allow us to test private methods. -class Class - def publicize_methods(*methods) - saved_private_instance_methods = methods.empty? ? self.private_instance_methods : methods - - self.class_eval { public(*saved_private_instance_methods) } - yield - self.class_eval { private(*saved_private_instance_methods) } - end -end diff --git a/modules/stdlib/spec/spec.opts b/modules/stdlib/spec/spec.opts deleted file mode 100644 index 91cd642..0000000 --- a/modules/stdlib/spec/spec.opts +++ /dev/null @@ -1,6 +0,0 @@ ---format -s ---colour ---loadby -mtime ---backtrace diff --git a/modules/stdlib/spec/spec_helper.rb b/modules/stdlib/spec/spec_helper.rb deleted file mode 100755 index 78925fd..0000000 --- a/modules/stdlib/spec/spec_helper.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -S rspec -dir = File.expand_path(File.dirname(__FILE__)) -$LOAD_PATH.unshift File.join(dir, 'lib') - -# So everyone else doesn't have to include this base constant. -module PuppetSpec - FIXTURE_DIR = File.join(dir = File.expand_path(File.dirname(__FILE__)), "fixtures") unless defined?(FIXTURE_DIR) -end - -require 'puppet' -require 'rspec-puppet' -require 'simplecov' -require 'puppetlabs_spec_helper/module_spec_helper' -require 'puppet_spec/verbose' -require 'puppet_spec/files' -require 'puppet_spec/settings' -require 'puppet_spec/fixtures' -require 'puppet_spec/matchers' -require 'puppet_spec/database' -require 'monkey_patches/alias_should_to_must' -require 'mocha/setup' - - -SimpleCov.start do - add_filter "/spec/" -end - - -RSpec.configure do |config| - config.before :each do - # Ensure that we don't accidentally cache facts and environment between - # test cases. This requires each example group to explicitly load the - # facts being exercised with something like - # Facter.collection.loader.load(:ipaddress) - Facter::Util::Loader.any_instance.stubs(:load_all) - Facter.clear - Facter.clear_messages - end -end diff --git a/modules/stdlib/spec/spec_helper_acceptance.rb b/modules/stdlib/spec/spec_helper_acceptance.rb deleted file mode 100755 index 8e56daa..0000000 --- a/modules/stdlib/spec/spec_helper_acceptance.rb +++ /dev/null @@ -1,31 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'beaker-rspec' - -UNSUPPORTED_PLATFORMS = [] - -unless ENV['RS_PROVISION'] == 'no' or ENV['BEAKER_provision'] == 'no' - if hosts.first.is_pe? - install_pe - on hosts, 'mkdir -p /etc/puppetlabs/facter/facts.d' - else - install_puppet - on hosts, 'mkdir -p /etc/facter/facts.d' - on hosts, '/bin/touch /etc/puppet/hiera.yaml' - end - hosts.each do |host| - on host, "mkdir -p #{host['distmoduledir']}" - end -end - -RSpec.configure do |c| - # Project root - proj_root = File.expand_path(File.join(File.dirname(__FILE__), '..')) - - # Readable test descriptions - c.formatter = :documentation - - # Configure all nodes in nodeset - c.before :suite do - puppet_module_install(:source => proj_root, :module_name => 'stdlib') - end -end diff --git a/modules/stdlib/spec/unit/facter/facter_dot_d_spec.rb b/modules/stdlib/spec/unit/facter/facter_dot_d_spec.rb deleted file mode 100755 index 2fb72b2..0000000 --- a/modules/stdlib/spec/unit/facter/facter_dot_d_spec.rb +++ /dev/null @@ -1,32 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'facter/facter_dot_d' - -describe Facter::Util::DotD do - - context 'returns a simple fact' do - before :each do - Facter.stubs(:version).returns('1.6.1') - subject.stubs(:entries).returns(['/etc/facter/facts.d/fake_fact.txt']) - File.stubs(:readlines).with('/etc/facter/facts.d/fake_fact.txt').returns(['fake_fact=fake fact']) - subject.create - end - - it 'should return successfully' do - Facter.fact(:fake_fact).value.should == 'fake fact' - end - end - - context 'returns a fact with equals signs' do - before :each do - Facter.stubs(:version).returns('1.6.1') - subject.stubs(:entries).returns(['/etc/facter/facts.d/foo.txt']) - File.stubs(:readlines).with('/etc/facter/facts.d/foo.txt').returns(['foo=1+1=2']) - subject.create - end - - it 'should return successfully' do - Facter.fact(:foo).value.should == '1+1=2' - end - end -end diff --git a/modules/stdlib/spec/unit/facter/pe_version_spec.rb b/modules/stdlib/spec/unit/facter/pe_version_spec.rb deleted file mode 100755 index 931c6d4..0000000 --- a/modules/stdlib/spec/unit/facter/pe_version_spec.rb +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env rspec - -require 'spec_helper' - -describe "PE Version specs" do - before :each do - # Explicitly load the pe_version.rb file which contains generated facts - # that cannot be automatically loaded. Puppet 2.x implements - # Facter.collection.load while Facter 1.x markes Facter.collection.load as - # a private method. - if Facter.collection.respond_to? :load - Facter.collection.load(:pe_version) - else - Facter.collection.loader.load(:pe_version) - end - end - - context "If PE is installed" do - %w{ 2.6.1 2.10.300 }.each do |version| - puppetversion = "2.7.19 (Puppet Enterprise #{version})" - context "puppetversion => #{puppetversion}" do - before :each do - Facter.fact(:puppetversion).stubs(:value).returns(puppetversion) - end - - (major,minor,patch) = version.split(".") - - it "Should return true" do - Facter.fact(:is_pe).value.should == true - end - - it "Should have a version of #{version}" do - Facter.fact(:pe_version).value.should == version - end - - it "Should have a major version of #{major}" do - Facter.fact(:pe_major_version).value.should == major - end - - it "Should have a minor version of #{minor}" do - Facter.fact(:pe_minor_version).value.should == minor - end - - it "Should have a patch version of #{patch}" do - Facter.fact(:pe_patch_version).value.should == patch - end - end - end - end - - context "When PE is not installed" do - before :each do - Facter.fact(:puppetversion).stubs(:value).returns("2.7.19") - end - - it "is_pe is false" do - Facter.fact(:is_pe).value.should == false - end - - it "pe_version is nil" do - Facter.fact(:pe_version).value.should be_nil - end - - it "pe_major_version is nil" do - Facter.fact(:pe_major_version).value.should be_nil - end - - it "pe_minor_version is nil" do - Facter.fact(:pe_minor_version).value.should be_nil - end - - it "Should have a patch version" do - Facter.fact(:pe_patch_version).value.should be_nil - end - end -end diff --git a/modules/stdlib/spec/unit/facter/root_home_spec.rb b/modules/stdlib/spec/unit/facter/root_home_spec.rb deleted file mode 100755 index 73eb3ea..0000000 --- a/modules/stdlib/spec/unit/facter/root_home_spec.rb +++ /dev/null @@ -1,52 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'facter/root_home' - -describe Facter::Util::RootHome do - context "solaris" do - let(:root_ent) { "root:x:0:0:Super-User:/:/sbin/sh" } - let(:expected_root_home) { "/" } - - it "should return /" do - Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent) - Facter::Util::RootHome.get_root_home.should == expected_root_home - end - end - context "linux" do - let(:root_ent) { "root:x:0:0:root:/root:/bin/bash" } - let(:expected_root_home) { "/root" } - - it "should return /root" do - Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(root_ent) - Facter::Util::RootHome.get_root_home.should == expected_root_home - end - end - context "windows" do - before :each do - Facter::Util::Resolution.expects(:exec).with("getent passwd root").returns(nil) - end - it "should be nil on windows" do - Facter::Util::RootHome.get_root_home.should be_nil - end - end -end - -describe 'root_home', :type => :fact do - before { Facter.clear } - after { Facter.clear } - - context "macosx" do - before do - Facter.fact(:kernel).stubs(:value).returns("Darwin") - Facter.fact(:osfamily).stubs(:value).returns("Darwin") - end - let(:expected_root_home) { "/var/root" } - sample_dscacheutil = File.read(fixtures('dscacheutil','root')) - - it "should return /var/root" do - Facter::Util::Resolution.stubs(:exec).with("dscacheutil -q user -a name root").returns(sample_dscacheutil) - Facter.fact(:root_home).value.should == expected_root_home - end - end - -end diff --git a/modules/stdlib/spec/unit/facter/util/puppet_settings_spec.rb b/modules/stdlib/spec/unit/facter/util/puppet_settings_spec.rb deleted file mode 100755 index e77779b..0000000 --- a/modules/stdlib/spec/unit/facter/util/puppet_settings_spec.rb +++ /dev/null @@ -1,36 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'facter/util/puppet_settings' - -describe Facter::Util::PuppetSettings do - - describe "#with_puppet" do - context "Without Puppet loaded" do - before(:each) do - Module.expects(:const_get).with("Puppet").raises(NameError) - end - - it 'should be nil' do - subject.with_puppet { Puppet[:vardir] }.should be_nil - end - it 'should not yield to the block' do - Puppet.expects(:[]).never - subject.with_puppet { Puppet[:vardir] }.should be_nil - end - end - context "With Puppet loaded" do - module Puppet; end - let(:vardir) { "/var/lib/puppet" } - - before :each do - Puppet.expects(:[]).with(:vardir).returns vardir - end - it 'should yield to the block' do - subject.with_puppet { Puppet[:vardir] } - end - it 'should return the nodes vardir' do - subject.with_puppet { Puppet[:vardir] }.should eq vardir - end - end - end -end diff --git a/modules/stdlib/spec/unit/puppet/provider/file_line/ruby_spec.rb b/modules/stdlib/spec/unit/puppet/provider/file_line/ruby_spec.rb deleted file mode 100755 index a016b68..0000000 --- a/modules/stdlib/spec/unit/puppet/provider/file_line/ruby_spec.rb +++ /dev/null @@ -1,225 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'tempfile' -provider_class = Puppet::Type.type(:file_line).provider(:ruby) -describe provider_class do - context "when adding" do - let :tmpfile do - tmp = Tempfile.new('tmp') - path = tmp.path - tmp.close! - path - end - let :resource do - Puppet::Type::File_line.new( - {:name => 'foo', :path => tmpfile, :line => 'foo'} - ) - end - let :provider do - provider_class.new(resource) - end - - it 'should detect if the line exists in the file' do - File.open(tmpfile, 'w') do |fh| - fh.write('foo') - end - provider.exists?.should be_true - end - it 'should detect if the line does not exist in the file' do - File.open(tmpfile, 'w') do |fh| - fh.write('foo1') - end - provider.exists?.should be_nil - end - it 'should append to an existing file when creating' do - provider.create - File.read(tmpfile).chomp.should == 'foo' - end - end - - context "when matching" do - before :each do - # TODO: these should be ported over to use the PuppetLabs spec_helper - # file fixtures once the following pull request has been merged: - # https://github.com/puppetlabs/puppetlabs-stdlib/pull/73/files - tmp = Tempfile.new('tmp') - @tmpfile = tmp.path - tmp.close! - @resource = Puppet::Type::File_line.new( - { - :name => 'foo', - :path => @tmpfile, - :line => 'foo = bar', - :match => '^foo\s*=.*$', - } - ) - @provider = provider_class.new(@resource) - end - - describe 'using match' do - it 'should raise an error if more than one line matches, and should not have modified the file' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo=blah\nfoo2\nfoo=baz") - end - @provider.exists?.should be_nil - expect { @provider.create }.to raise_error(Puppet::Error, /More than one line.*matches/) - File.read(@tmpfile).should eql("foo1\nfoo=blah\nfoo2\nfoo=baz") - end - - it 'should replace all lines that matches' do - @resource = Puppet::Type::File_line.new( - { - :name => 'foo', - :path => @tmpfile, - :line => 'foo = bar', - :match => '^foo\s*=.*$', - :multiple => true - } - ) - @provider = provider_class.new(@resource) - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo=blah\nfoo2\nfoo=baz") - end - @provider.exists?.should be_nil - @provider.create - File.read(@tmpfile).chomp.should eql("foo1\nfoo = bar\nfoo2\nfoo = bar") - end - - it 'should raise an error with invalid values' do - expect { - @resource = Puppet::Type::File_line.new( - { - :name => 'foo', - :path => @tmpfile, - :line => 'foo = bar', - :match => '^foo\s*=.*$', - :multiple => 'asgadga' - } - ) - }.to raise_error(Puppet::Error, /Invalid value "asgadga"\. Valid values are true, false\./) - end - - it 'should replace a line that matches' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo=blah\nfoo2") - end - @provider.exists?.should be_nil - @provider.create - File.read(@tmpfile).chomp.should eql("foo1\nfoo = bar\nfoo2") - end - it 'should add a new line if no lines match' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo2") - end - @provider.exists?.should be_nil - @provider.create - File.read(@tmpfile).should eql("foo1\nfoo2\nfoo = bar\n") - end - it 'should do nothing if the exact line already exists' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo = bar\nfoo2") - end - @provider.exists?.should be_true - @provider.create - File.read(@tmpfile).chomp.should eql("foo1\nfoo = bar\nfoo2") - end - end - - describe 'using after' do - let :resource do - Puppet::Type::File_line.new( - { - :name => 'foo', - :path => @tmpfile, - :line => 'inserted = line', - :after => '^foo1', - } - ) - end - - let :provider do - provider_class.new(resource) - end - - context 'with one line matching the after expression' do - before :each do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo = blah\nfoo2\nfoo = baz") - end - end - - it 'inserts the specified line after the line matching the "after" expression' do - provider.create - File.read(@tmpfile).chomp.should eql("foo1\ninserted = line\nfoo = blah\nfoo2\nfoo = baz") - end - end - - context 'with two lines matching the after expression' do - before :each do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo = blah\nfoo2\nfoo1\nfoo = baz") - end - end - - it 'errors out stating "One or no line must match the pattern"' do - expect { provider.create }.to raise_error(Puppet::Error, /One or no line must match the pattern/) - end - end - - context 'with no lines matching the after expression' do - let :content do - "foo3\nfoo = blah\nfoo2\nfoo = baz\n" - end - - before :each do - File.open(@tmpfile, 'w') do |fh| - fh.write(content) - end - end - - it 'appends the specified line to the file' do - provider.create - File.read(@tmpfile).should eq(content << resource[:line] << "\n") - end - end - end - end - - context "when removing" do - before :each do - # TODO: these should be ported over to use the PuppetLabs spec_helper - # file fixtures once the following pull request has been merged: - # https://github.com/puppetlabs/puppetlabs-stdlib/pull/73/files - tmp = Tempfile.new('tmp') - @tmpfile = tmp.path - tmp.close! - @resource = Puppet::Type::File_line.new( - {:name => 'foo', :path => @tmpfile, :line => 'foo', :ensure => 'absent' } - ) - @provider = provider_class.new(@resource) - end - it 'should remove the line if it exists' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo\nfoo2") - end - @provider.destroy - File.read(@tmpfile).should eql("foo1\nfoo2") - end - - it 'should remove the line without touching the last new line' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo\nfoo2\n") - end - @provider.destroy - File.read(@tmpfile).should eql("foo1\nfoo2\n") - end - - it 'should remove any occurence of the line' do - File.open(@tmpfile, 'w') do |fh| - fh.write("foo1\nfoo\nfoo2\nfoo\nfoo") - end - @provider.destroy - File.read(@tmpfile).should eql("foo1\nfoo2\n") - end - end -end diff --git a/modules/stdlib/spec/unit/puppet/type/anchor_spec.rb b/modules/stdlib/spec/unit/puppet/type/anchor_spec.rb deleted file mode 100755 index f92065f..0000000 --- a/modules/stdlib/spec/unit/puppet/type/anchor_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env ruby - -require 'spec_helper' - -anchor = Puppet::Type.type(:anchor).new(:name => "ntp::begin") - -describe anchor do - it "should stringify normally" do - anchor.to_s.should == "Anchor[ntp::begin]" - end -end diff --git a/modules/stdlib/spec/unit/puppet/type/file_line_spec.rb b/modules/stdlib/spec/unit/puppet/type/file_line_spec.rb deleted file mode 100755 index ab5b81b..0000000 --- a/modules/stdlib/spec/unit/puppet/type/file_line_spec.rb +++ /dev/null @@ -1,70 +0,0 @@ -#! /usr/bin/env ruby -S rspec -require 'spec_helper' -require 'tempfile' -describe Puppet::Type.type(:file_line) do - let :file_line do - Puppet::Type.type(:file_line).new(:name => 'foo', :line => 'line', :path => '/tmp/path') - end - it 'should accept a line and path' do - file_line[:line] = 'my_line' - file_line[:line].should == 'my_line' - file_line[:path] = '/my/path' - file_line[:path].should == '/my/path' - end - it 'should accept a match regex' do - file_line[:match] = '^foo.*$' - file_line[:match].should == '^foo.*$' - end - it 'should not accept a match regex that does not match the specified line' do - expect { - Puppet::Type.type(:file_line).new( - :name => 'foo', - :path => '/my/path', - :line => 'foo=bar', - :match => '^bar=blah$' - )}.to raise_error(Puppet::Error, /the value must be a regex that matches/) - end - it 'should accept a match regex that does match the specified line' do - expect { - Puppet::Type.type(:file_line).new( - :name => 'foo', - :path => '/my/path', - :line => 'foo=bar', - :match => '^\s*foo=.*$' - )}.not_to raise_error - end - it 'should accept posix filenames' do - file_line[:path] = '/tmp/path' - file_line[:path].should == '/tmp/path' - end - it 'should not accept unqualified path' do - expect { file_line[:path] = 'file' }.to raise_error(Puppet::Error, /File paths must be fully qualified/) - end - it 'should require that a line is specified' do - expect { Puppet::Type.type(:file_line).new(:name => 'foo', :path => '/tmp/file') }.to raise_error(Puppet::Error, /Both line and path are required attributes/) - end - it 'should require that a file is specified' do - expect { Puppet::Type.type(:file_line).new(:name => 'foo', :line => 'path') }.to raise_error(Puppet::Error, /Both line and path are required attributes/) - end - it 'should default to ensure => present' do - file_line[:ensure].should eq :present - end - - it "should autorequire the file it manages" do - catalog = Puppet::Resource::Catalog.new - file = Puppet::Type.type(:file).new(:name => "/tmp/path") - catalog.add_resource file - catalog.add_resource file_line - - relationship = file_line.autorequire.find do |rel| - (rel.source.to_s == "File[/tmp/path]") and (rel.target.to_s == file_line.to_s) - end - relationship.should be_a Puppet::Relationship - end - - it "should not autorequire the file it manages if it is not managed" do - catalog = Puppet::Resource::Catalog.new - catalog.add_resource file_line - file_line.autorequire.should be_empty - end -end diff --git a/modules/stdlib/tests/file_line.pp b/modules/stdlib/tests/file_line.pp deleted file mode 100644 index eea693e..0000000 --- a/modules/stdlib/tests/file_line.pp +++ /dev/null @@ -1,9 +0,0 @@ -# This is a simple smoke test -# of the file_line resource type. -file { '/tmp/dansfile': - ensure => present -}-> -file_line { 'dans_line': - line => 'dan is awesome', - path => '/tmp/dansfile', -} diff --git a/modules/stdlib/tests/has_interface_with.pp b/modules/stdlib/tests/has_interface_with.pp deleted file mode 100644 index e1f1353..0000000 --- a/modules/stdlib/tests/has_interface_with.pp +++ /dev/null @@ -1,10 +0,0 @@ -include stdlib -info('has_interface_with(\'lo\'):', has_interface_with('lo')) -info('has_interface_with(\'loX\'):', has_interface_with('loX')) -info('has_interface_with(\'ipaddress\', \'127.0.0.1\'):', has_interface_with('ipaddress', '127.0.0.1')) -info('has_interface_with(\'ipaddress\', \'127.0.0.100\'):', has_interface_with('ipaddress', '127.0.0.100')) -info('has_interface_with(\'network\', \'127.0.0.0\'):', has_interface_with('network', '127.0.0.0')) -info('has_interface_with(\'network\', \'128.0.0.0\'):', has_interface_with('network', '128.0.0.0')) -info('has_interface_with(\'netmask\', \'255.0.0.0\'):', has_interface_with('netmask', '255.0.0.0')) -info('has_interface_with(\'netmask\', \'256.0.0.0\'):', has_interface_with('netmask', '256.0.0.0')) - diff --git a/modules/stdlib/tests/has_ip_address.pp b/modules/stdlib/tests/has_ip_address.pp deleted file mode 100644 index 8429a88..0000000 --- a/modules/stdlib/tests/has_ip_address.pp +++ /dev/null @@ -1,3 +0,0 @@ -include stdlib -info('has_ip_address(\'192.168.1.256\'):', has_ip_address('192.168.1.256')) -info('has_ip_address(\'127.0.0.1\'):', has_ip_address('127.0.0.1')) diff --git a/modules/stdlib/tests/has_ip_network.pp b/modules/stdlib/tests/has_ip_network.pp deleted file mode 100644 index a15d8c0..0000000 --- a/modules/stdlib/tests/has_ip_network.pp +++ /dev/null @@ -1,4 +0,0 @@ -include stdlib -info('has_ip_network(\'127.0.0.0\'):', has_ip_network('127.0.0.0')) -info('has_ip_network(\'128.0.0.0\'):', has_ip_network('128.0.0.0')) - diff --git a/modules/stdlib/tests/init.pp b/modules/stdlib/tests/init.pp deleted file mode 100644 index 9675d83..0000000 --- a/modules/stdlib/tests/init.pp +++ /dev/null @@ -1 +0,0 @@ -include stdlib diff --git a/modules/vcsrepo b/modules/vcsrepo index e94d675..46c6d95 160000 --- a/modules/vcsrepo +++ b/modules/vcsrepo @@ -1 +1 @@ -Subproject commit e94d67588b368ae51671d777e0f0e53d24e28dea +Subproject commit 46c6d9549f06e0bf8b238894c0bf4ee6bc13a099