puppet 0.24.9 → 0.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +18680 -1241
- data/CHANGELOG.old +1705 -0
- data/LICENSE +2 -2
- data/README +1 -1
- data/README.queueing +126 -0
- data/README.rst +4 -4
- data/Rakefile +62 -216
- data/bin/filebucket +6 -117
- data/bin/pi +50 -0
- data/bin/puppet +7 -188
- data/bin/puppetdoc +7 -198
- data/bin/ralsh +4 -191
- data/conf/auth.conf +94 -0
- data/conf/gentoo/init.d/puppetmaster +30 -30
- data/conf/osx/PackageInfo.plist +30 -30
- data/conf/osx/createpackage.sh +23 -18
- data/conf/osx/preflight +8 -0
- data/conf/puppet-queue.conf +10 -0
- data/conf/redhat/client.init +52 -41
- data/conf/redhat/logrotate +1 -0
- data/conf/redhat/puppet.spec +74 -36
- data/conf/redhat/rundir-perms.patch +28 -0
- data/conf/redhat/server.init +48 -43
- data/conf/redhat/server.sysconfig +4 -4
- data/conf/solaris/smf/puppetd.xml +53 -53
- data/conf/solaris/smf/puppetmasterd.xml +53 -53
- data/conf/solaris/smf/svc-puppetd +4 -4
- data/conf/solaris/smf/svc-puppetmasterd +3 -3
- data/conf/suse/client.init +4 -4
- data/conf/suse/puppet.spec +14 -14
- data/conf/suse/server.init +17 -17
- data/examples/etc/init.d/sleeper +8 -8
- data/examples/mac_dscl.pp +2 -2
- data/examples/mac_dscl_revert.pp +1 -1
- data/examples/mcx_dock_default.pp +108 -108
- data/examples/mcx_dock_full.pp +108 -108
- data/examples/mcx_nogroup.pp +108 -108
- data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +5 -5
- data/examples/modules/sample-module/manifests/init.pp +2 -2
- data/examples/relationships +1 -1
- data/ext/autotest/config +6 -6
- data/ext/bin/sleeper +12 -12
- data/ext/dbfix.sql +21 -21
- data/ext/emacs/puppet-mode.el +42 -41
- data/ext/extlookup.rb +183 -0
- data/ext/ldap/puppet.schema +2 -1
- data/ext/logcheck/puppet +1 -1
- data/ext/module_puppet +7 -7
- data/ext/nagios/check_puppet.rb +83 -83
- data/ext/nagios/naggen +302 -0
- data/ext/puppet-test +61 -18
- data/ext/puppetlisten/puppetlisten.rb +76 -0
- data/ext/puppetlisten/puppetrun.rb +39 -0
- data/ext/puppetstoredconfigclean.rb +29 -29
- data/ext/rack/README +73 -0
- data/ext/rack/files/apache2.conf +38 -0
- data/ext/rack/files/config.ru +18 -0
- data/ext/rack/manifest.pp +59 -0
- data/ext/vim/syntax/puppet.vim +54 -35
- data/install.rb +37 -26
- data/lib/puppet.rb +15 -227
- data/lib/puppet/agent.rb +134 -0
- data/lib/puppet/agent/locker.rb +42 -0
- data/lib/puppet/agent/runner.rb +65 -0
- data/lib/puppet/application.rb +313 -0
- data/lib/puppet/application/filebucket.rb +87 -0
- data/lib/puppet/application/pi.rb +214 -0
- data/lib/puppet/application/puppet.rb +177 -0
- data/lib/puppet/application/puppetca.rb +71 -0
- data/lib/puppet/application/puppetd.rb +256 -0
- data/lib/puppet/application/puppetdoc.rb +222 -0
- data/lib/puppet/application/puppetmasterd.rb +168 -0
- data/lib/puppet/application/puppetqd.rb +96 -0
- data/lib/puppet/application/puppetrun.rb +219 -0
- data/lib/puppet/application/ralsh.rb +168 -0
- data/lib/puppet/configurer.rb +177 -0
- data/lib/puppet/configurer/downloader.rb +79 -0
- data/lib/puppet/configurer/fact_handler.rb +68 -0
- data/lib/puppet/configurer/plugin_handler.rb +26 -0
- data/lib/puppet/daemon.rb +78 -28
- data/lib/puppet/defaults.rb +239 -166
- data/lib/puppet/dsl.rb +7 -7
- data/lib/puppet/external/dot.rb +271 -271
- data/lib/puppet/external/event-loop/better-definers.rb +298 -298
- data/lib/puppet/external/event-loop/event-loop.rb +274 -274
- data/lib/puppet/external/event-loop/signal-system.rb +163 -163
- data/lib/puppet/external/lock.rb +1 -1
- data/lib/puppet/external/nagios.rb +20 -20
- data/lib/puppet/external/nagios/base.rb +3 -3
- data/lib/puppet/external/nagios/grammar.ry +185 -0
- data/lib/puppet/external/nagios/makefile +9 -0
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/feature/json.rb +2 -0
- data/lib/puppet/feature/rack.rb +24 -0
- data/lib/puppet/feature/rails.rb +23 -33
- data/lib/puppet/feature/rubygems.rb +6 -0
- data/lib/puppet/feature/stomp.rb +6 -0
- data/lib/puppet/file_serving/{file_base.rb → base.rb} +10 -9
- data/lib/puppet/file_serving/configuration.rb +61 -61
- data/lib/puppet/file_serving/configuration/parser.rb +24 -29
- data/lib/puppet/file_serving/content.rb +26 -11
- data/lib/puppet/file_serving/fileset.rb +54 -19
- data/lib/puppet/file_serving/indirection_hooks.rb +12 -24
- data/lib/puppet/file_serving/metadata.rb +8 -8
- data/lib/puppet/file_serving/mount.rb +9 -151
- data/lib/puppet/file_serving/mount/file.rb +126 -0
- data/lib/puppet/file_serving/mount/modules.rb +25 -0
- data/lib/puppet/file_serving/mount/plugins.rb +27 -0
- data/lib/puppet/file_serving/terminus_helper.rb +9 -4
- data/lib/puppet/indirector.rb +6 -4
- data/lib/puppet/indirector/active_record.rb +28 -0
- data/lib/puppet/indirector/catalog/active_record.rb +36 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -24
- data/lib/puppet/indirector/catalog/queue.rb +5 -0
- data/lib/puppet/indirector/catalog/rest.rb +6 -0
- data/lib/puppet/indirector/catalog/yaml.rb +2 -4
- data/lib/puppet/indirector/certificate/ca.rb +9 -0
- data/lib/puppet/indirector/certificate/file.rb +9 -0
- data/lib/puppet/indirector/certificate/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_request/ca.rb +14 -0
- data/lib/puppet/indirector/certificate_request/file.rb +8 -0
- data/lib/puppet/indirector/certificate_request/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -8
- data/lib/puppet/indirector/exec.rb +2 -6
- data/lib/puppet/indirector/facts/active_record.rb +36 -0
- data/lib/puppet/indirector/facts/facter.rb +30 -22
- data/lib/puppet/indirector/facts/rest.rb +6 -0
- data/lib/puppet/indirector/file.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +0 -1
- data/lib/puppet/indirector/file_metadata/file.rb +2 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +0 -1
- data/lib/puppet/indirector/file_server.rb +31 -18
- data/lib/puppet/indirector/indirection.rb +46 -33
- data/lib/puppet/indirector/key/ca.rb +12 -0
- data/lib/puppet/indirector/key/file.rb +42 -0
- data/lib/puppet/indirector/node/active_record.rb +13 -0
- data/lib/puppet/indirector/node/ldap.rb +1 -1
- data/lib/puppet/indirector/queue.rb +83 -0
- data/lib/puppet/indirector/report/processor.rb +1 -1
- data/lib/puppet/indirector/report/rest.rb +7 -0
- data/lib/puppet/indirector/request.rb +158 -15
- data/lib/puppet/indirector/rest.rb +74 -36
- data/lib/puppet/indirector/runner/rest.rb +7 -0
- data/lib/puppet/indirector/ssl_file.rb +174 -0
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/metatype/manager.rb +3 -3
- data/lib/puppet/module.rb +99 -124
- data/lib/puppet/network/authconfig.rb +57 -42
- data/lib/puppet/network/authstore.rb +58 -10
- data/lib/puppet/network/client.rb +0 -2
- data/lib/puppet/network/client/ca.rb +1 -1
- data/lib/puppet/network/client/dipper.rb +7 -2
- data/lib/puppet/network/format.rb +123 -0
- data/lib/puppet/network/format_handler.rb +156 -0
- data/lib/puppet/network/formats.rb +123 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -1
- data/lib/puppet/network/handler/fileserver.rb +43 -35
- data/lib/puppet/network/handler/master.rb +4 -4
- data/lib/puppet/network/handler/report.rb +1 -1
- data/lib/puppet/network/handler/resource.rb +16 -20
- data/lib/puppet/network/handler/runner.rb +9 -42
- data/lib/puppet/network/http.rb +4 -4
- data/lib/puppet/network/http/api.rb +4 -0
- data/lib/puppet/network/http/api/v1.rb +65 -0
- data/lib/puppet/network/http/handler.rb +163 -56
- data/lib/puppet/network/http/mongrel.rb +19 -15
- data/lib/puppet/network/http/mongrel/rest.rb +35 -17
- data/lib/puppet/network/http/rack.rb +62 -0
- data/lib/puppet/network/http/rack/httphandler.rb +34 -0
- data/lib/puppet/network/http/rack/rest.rb +79 -0
- data/lib/puppet/network/http/rack/xmlrpc.rb +65 -0
- data/lib/puppet/network/http/webrick.rb +89 -16
- data/lib/puppet/network/http/webrick/rest.rb +24 -11
- data/lib/puppet/network/http_pool.rb +28 -29
- data/lib/puppet/network/http_server/mongrel.rb +8 -10
- data/lib/puppet/network/http_server/webrick.rb +1 -3
- data/lib/puppet/network/rest_authconfig.rb +89 -0
- data/lib/puppet/network/rest_authorization.rb +25 -0
- data/lib/puppet/network/rights.rb +230 -27
- data/lib/puppet/network/server.rb +133 -31
- data/lib/puppet/network/xmlrpc/client.rb +5 -5
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +6 -6
- data/lib/puppet/node.rb +28 -21
- data/lib/puppet/node/environment.rb +48 -0
- data/lib/puppet/node/facts.rb +21 -0
- data/lib/puppet/parameter.rb +291 -219
- data/lib/puppet/parser/ast.rb +1 -0
- data/lib/puppet/parser/ast/astarray.rb +5 -1
- data/lib/puppet/parser/ast/boolean_operator.rb +3 -3
- data/lib/puppet/parser/ast/caseopt.rb +10 -0
- data/lib/puppet/parser/ast/casestatement.rb +12 -27
- data/lib/puppet/parser/ast/collection.rb +31 -0
- data/lib/puppet/parser/ast/collexpr.rb +18 -11
- data/lib/puppet/parser/ast/comparison_operator.rb +1 -1
- data/lib/puppet/parser/ast/definition.rb +6 -2
- data/lib/puppet/parser/ast/function.rb +7 -2
- data/lib/puppet/parser/ast/ifstatement.rb +11 -6
- data/lib/puppet/parser/ast/leaf.rb +106 -3
- data/lib/puppet/parser/ast/match_operator.rb +31 -0
- data/lib/puppet/parser/ast/node.rb +10 -6
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -2
- data/lib/puppet/parser/ast/resource_override.rb +1 -1
- data/lib/puppet/parser/ast/resource_reference.rb +11 -3
- data/lib/puppet/parser/ast/selector.rb +14 -32
- data/lib/puppet/parser/ast/vardef.rb +1 -1
- data/lib/puppet/parser/collector.rb +67 -15
- data/lib/puppet/parser/compiler.rb +21 -53
- data/lib/puppet/parser/files.rb +92 -0
- data/lib/puppet/parser/functions.rb +3 -3
- data/lib/puppet/parser/functions/defined.rb +3 -3
- data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
- data/lib/puppet/parser/functions/inline_template.rb +4 -4
- data/lib/puppet/parser/functions/regsubst.rb +37 -35
- data/lib/puppet/parser/functions/require.rb +34 -0
- data/lib/puppet/parser/functions/shellquote.rb +41 -0
- data/lib/puppet/parser/functions/split.rb +29 -0
- data/lib/puppet/parser/functions/sprintf.rb +6 -6
- data/lib/puppet/parser/functions/template.rb +4 -4
- data/lib/puppet/parser/functions/versioncmp.rb +22 -1
- data/lib/puppet/parser/grammar.ra +812 -0
- data/lib/puppet/parser/interpreter.rb +4 -4
- data/lib/puppet/parser/lexer.rb +44 -15
- data/lib/puppet/parser/loaded_code.rb +115 -0
- data/lib/puppet/parser/makefile +8 -0
- data/lib/puppet/parser/parser.rb +1080 -928
- data/lib/puppet/parser/parser_support.rb +118 -96
- data/lib/puppet/parser/resource.rb +56 -126
- data/lib/puppet/parser/resource/param.rb +2 -76
- data/lib/puppet/parser/resource/reference.rb +15 -8
- data/lib/puppet/parser/scope.rb +68 -35
- data/lib/puppet/parser/templatewrapper.rb +8 -8
- data/lib/puppet/parser/yaml_trimmer.rb +11 -0
- data/lib/puppet/property.rb +69 -124
- data/lib/puppet/property/list.rb +3 -3
- data/lib/puppet/provider.rb +5 -5
- data/lib/puppet/provider/augeas/augeas.rb +119 -118
- data/lib/puppet/provider/computer/computer.rb +3 -3
- data/lib/puppet/provider/confine/variable.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +8 -7
- data/lib/puppet/provider/group/directoryservice.rb +2 -2
- data/lib/puppet/provider/group/groupadd.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +3 -3
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/host/parsed.rb +3 -3
- data/lib/puppet/provider/ldap.rb +1 -3
- data/lib/puppet/provider/macauthorization/macauthorization.rb +62 -55
- data/lib/puppet/provider/mailalias/aliases.rb +9 -1
- data/lib/puppet/provider/maillist/mailman.rb +8 -4
- data/lib/puppet/provider/mcx/mcxcontent.rb +11 -11
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +6 -6
- data/lib/puppet/provider/nameservice/directoryservice.rb +83 -87
- data/lib/puppet/provider/package/appdmg.rb +10 -9
- data/lib/puppet/provider/package/apple.rb +1 -3
- data/lib/puppet/provider/package/apt.rb +5 -5
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/aptrpm.rb +1 -1
- data/lib/puppet/provider/package/darwinport.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +2 -2
- data/lib/puppet/provider/package/fink.rb +6 -6
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +2 -2
- data/lib/puppet/provider/package/hpux.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +30 -22
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +5 -5
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/sun.rb +7 -7
- data/lib/puppet/provider/package/up2date.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +2 -2
- data/lib/puppet/provider/package/yumhelper.py +2 -2
- data/lib/puppet/provider/port/parsed.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +3 -3
- data/lib/puppet/provider/service/base.rb +21 -12
- data/lib/puppet/provider/service/daemontools.rb +86 -49
- data/lib/puppet/provider/service/debian.rb +20 -12
- data/lib/puppet/provider/service/freebsd.rb +5 -5
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +21 -33
- data/lib/puppet/provider/service/launchd.rb +120 -48
- data/lib/puppet/provider/service/redhat.rb +12 -21
- data/lib/puppet/provider/service/runit.rb +19 -9
- data/lib/puppet/provider/service/smf.rb +49 -34
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +34 -0
- data/lib/puppet/provider/sshkey/parsed.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +12 -29
- data/lib/puppet/provider/user/hpux.rb +3 -3
- data/lib/puppet/provider/user/ldap.rb +2 -2
- data/lib/puppet/provider/zfs/solaris.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/provider/zpool/solaris.rb +3 -3
- data/lib/puppet/rails.rb +9 -9
- data/lib/puppet/rails/benchmark.rb +69 -0
- data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +5 -5
- data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +2 -2
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +1 -1
- data/lib/puppet/rails/database/schema.rb +8 -8
- data/lib/puppet/rails/fact_value.rb +1 -1
- data/lib/puppet/rails/host.rb +211 -93
- data/lib/puppet/rails/param_name.rb +5 -1
- data/lib/puppet/rails/param_value.rb +29 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +120 -20
- data/lib/puppet/rails/resource_tag.rb +1 -1
- data/lib/puppet/rails/source_file.rb +1 -1
- data/lib/puppet/reference/configuration.rb +14 -14
- data/lib/puppet/reference/function.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +48 -0
- data/lib/puppet/reference/providers.rb +6 -6
- data/lib/puppet/reference/type.rb +1 -37
- data/lib/puppet/relationship.rb +57 -30
- data/lib/puppet/reports/rrdgraph.rb +4 -4
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +15 -15
- data/lib/puppet/resource.rb +265 -0
- data/lib/puppet/{node → resource}/catalog.rb +188 -112
- data/lib/puppet/{resource_reference.rb → resource/reference.rb} +46 -24
- data/lib/puppet/simple_graph.rb +165 -27
- data/lib/puppet/ssl.rb +7 -0
- data/lib/puppet/ssl/base.rb +62 -0
- data/lib/puppet/ssl/certificate.rb +34 -0
- data/lib/puppet/ssl/certificate_authority.rb +298 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +118 -0
- data/lib/puppet/ssl/certificate_factory.rb +145 -0
- data/lib/puppet/ssl/certificate_request.rb +51 -0
- data/lib/puppet/ssl/certificate_revocation_list.rb +86 -0
- data/lib/puppet/ssl/host.rb +271 -0
- data/lib/puppet/ssl/inventory.rb +52 -0
- data/lib/puppet/ssl/key.rb +56 -0
- data/lib/puppet/sslcertificates.rb +6 -6
- data/lib/puppet/sslcertificates/ca.rb +15 -15
- data/lib/puppet/sslcertificates/certificate.rb +4 -4
- data/lib/puppet/sslcertificates/inventory.rb +3 -3
- data/lib/puppet/transaction.rb +113 -139
- data/lib/puppet/transaction/change.rb +6 -6
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +7 -1
- data/lib/puppet/transportable.rb +28 -28
- data/lib/puppet/type.rb +263 -688
- data/lib/puppet/type/augeas.rb +3 -2
- data/lib/puppet/type/component.rb +28 -95
- data/lib/puppet/type/computer.rb +10 -10
- data/lib/puppet/type/cron.rb +19 -14
- data/lib/puppet/type/exec.rb +21 -20
- data/lib/puppet/type/file.rb +306 -633
- data/lib/puppet/type/file/checksum.rb +10 -11
- data/lib/puppet/type/file/content.rb +83 -22
- data/lib/puppet/type/file/ensure.rb +15 -9
- data/lib/puppet/type/file/group.rb +7 -1
- data/lib/puppet/type/file/mode.rb +1 -1
- data/lib/puppet/type/file/owner.rb +9 -3
- data/lib/puppet/type/file/selcontext.rb +4 -4
- data/lib/puppet/type/file/source.rb +78 -179
- data/lib/puppet/type/file/target.rb +3 -3
- data/lib/puppet/type/file/type.rb +2 -2
- data/lib/puppet/type/filebucket.rb +33 -54
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/host.rb +7 -7
- data/lib/puppet/type/k5login.rb +2 -2
- data/lib/puppet/type/macauthorization.rb +77 -52
- data/lib/puppet/type/mailalias.rb +2 -2
- data/lib/puppet/type/maillist.rb +2 -2
- data/lib/puppet/type/mcx.rb +3 -3
- data/lib/puppet/type/mount.rb +16 -11
- data/lib/puppet/type/notify.rb +4 -4
- data/lib/puppet/type/package.rb +6 -28
- data/lib/puppet/type/port.rb +1 -1
- data/lib/puppet/type/resources.rb +19 -19
- data/lib/puppet/type/schedule.rb +18 -20
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +11 -7
- data/lib/puppet/type/ssh_authorized_key.rb +26 -9
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +285 -289
- data/lib/puppet/type/user.rb +9 -7
- data/lib/puppet/type/yumrepo.rb +17 -16
- data/lib/puppet/type/zone.rb +8 -7
- data/lib/puppet/util.rb +11 -36
- data/lib/puppet/util/autoload.rb +31 -19
- data/lib/puppet/util/autoload/file_cache.rb +115 -0
- data/lib/puppet/util/backups.rb +86 -0
- data/lib/puppet/util/cacher.rb +135 -0
- data/lib/puppet/util/checksums.rb +11 -1
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/config_store.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +1 -1
- data/lib/puppet/util/diff.rb +2 -2
- data/lib/puppet/util/docs.rb +9 -3
- data/lib/puppet/util/execution.rb +1 -1
- data/lib/puppet/util/feature.rb +27 -20
- data/lib/puppet/util/fileparsing.rb +3 -3
- data/lib/puppet/util/filetype.rb +8 -6
- data/lib/puppet/util/graph.rb +5 -5
- data/lib/puppet/util/inifile.rb +5 -5
- data/lib/puppet/util/json.rb +13 -0
- data/lib/puppet/util/ldap/connection.rb +2 -2
- data/lib/puppet/util/log.rb +48 -31
- data/lib/puppet/util/metric.rb +4 -4
- data/lib/puppet/util/monkey_patches.rb +43 -0
- data/lib/puppet/util/nagios_maker.rb +1 -1
- data/lib/puppet/util/package.rb +4 -4
- data/lib/puppet/util/pidlock.rb +59 -59
- data/lib/puppet/util/posix.rb +13 -52
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/queue.rb +96 -0
- data/lib/puppet/util/queue/stomp.rb +47 -0
- data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
- data/lib/puppet/util/rails/collection_merger.rb +0 -39
- data/lib/puppet/util/rails/reference_serializer.rb +17 -3
- data/lib/puppet/util/rdoc.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +5 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -5
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +13 -13
- data/lib/puppet/util/rdoc/parser.rb +28 -32
- data/lib/puppet/util/reference.rb +29 -8
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +12 -6
- data/lib/puppet/util/settings.rb +203 -578
- data/lib/puppet/util/settings/boolean_setting.rb +33 -0
- data/lib/puppet/util/settings/file_setting.rb +119 -0
- data/lib/puppet/util/settings/setting.rb +110 -0
- data/lib/puppet/util/subclass_loader.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +2 -2
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +17 -9
- data/man/man8/filebucket.8 +2 -2
- data/man/man8/pi.8 +2 -2
- data/man/man8/puppet.8 +3 -4
- data/man/man8/puppet.conf.8 +63 -63
- data/man/man8/puppetca.8 +2 -2
- data/man/man8/puppetd.8 +2 -2
- data/man/man8/puppetdoc.8 +2 -2
- data/man/man8/puppetmasterd.8 +2 -2
- data/man/man8/puppetrun.8 +2 -2
- data/man/man8/ralsh.8 +3 -3
- data/sbin/puppetca +102 -0
- data/sbin/puppetd +159 -0
- data/sbin/puppetmasterd +66 -0
- data/sbin/puppetqd +53 -0
- data/sbin/puppetrun +130 -0
- data/spec/Rakefile +2 -2
- data/spec/integration/application/puppet.rb +33 -0
- data/spec/integration/bin/puppetmasterd.rb +110 -0
- data/spec/integration/configurer.rb +18 -0
- data/spec/integration/defaults.rb +158 -7
- data/spec/integration/file_serving/content.rb +2 -0
- data/spec/integration/file_serving/fileset.rb +14 -0
- data/spec/integration/file_serving/metadata.rb +2 -0
- data/spec/integration/file_serving/terminus_helper.rb +22 -0
- data/spec/integration/indirector/catalog/compiler.rb +67 -0
- data/spec/integration/indirector/catalog/queue.rb +61 -0
- data/spec/integration/indirector/certificate/rest.rb +69 -0
- data/spec/integration/indirector/certificate_request/rest.rb +89 -0
- data/spec/integration/indirector/certificate_revocation_list/rest.rb +77 -0
- data/spec/integration/indirector/direct_file_server.rb +16 -23
- data/spec/integration/indirector/file_content/file_server.rb +75 -0
- data/spec/integration/indirector/report/rest.rb +95 -0
- data/spec/integration/indirector/rest.rb +207 -147
- data/spec/integration/network/client.rb +19 -0
- data/spec/integration/network/formats.rb +110 -0
- data/spec/integration/network/handler.rb +25 -0
- data/spec/integration/network/server/mongrel.rb +26 -8
- data/spec/integration/network/server/webrick.rb +49 -11
- data/spec/integration/node/environment.rb +58 -0
- data/spec/integration/node/facts.rb +4 -2
- data/spec/integration/parser/compiler.rb +29 -0
- data/spec/integration/parser/functions/require.rb +67 -0
- data/spec/integration/provider/mailalias/aliases.rb +25 -0
- data/spec/integration/{node → resource}/catalog.rb +17 -10
- data/spec/integration/ssl/certificate_authority.rb +135 -0
- data/spec/integration/ssl/certificate_request.rb +59 -0
- data/spec/integration/ssl/certificate_revocation_list.rb +42 -0
- data/spec/integration/ssl/host.rb +90 -0
- data/spec/integration/transaction.rb +66 -0
- data/spec/integration/transaction/report.rb +2 -5
- data/spec/integration/type.rb +22 -0
- data/spec/integration/type/file.rb +458 -0
- data/spec/integration/type/package.rb +1 -1
- data/spec/integration/type/tidy.rb +27 -0
- data/spec/integration/util/autoload.rb +114 -0
- data/spec/integration/util/feature.rb +54 -0
- data/spec/integration/util/file_locking.rb +2 -1
- data/spec/integration/util/settings.rb +27 -0
- data/spec/lib/puppet_spec/files.rb +9 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +1 -0
- data/spec/monkey_patches/alias_should_to_must.rb +1 -0
- data/spec/shared_behaviours/file_server_terminus.rb +14 -11
- data/spec/shared_behaviours/file_serving.rb +13 -17
- data/spec/spec_helper.rb +22 -5
- data/spec/unit/agent.rb +259 -0
- data/spec/unit/agent/locker.rb +100 -0
- data/spec/unit/agent/runner.rb +118 -0
- data/spec/unit/application.rb +420 -0
- data/spec/unit/application/filebucket.rb +220 -0
- data/spec/unit/application/pi.rb +84 -0
- data/spec/unit/application/puppet.rb +404 -0
- data/spec/unit/application/puppetca.rb +142 -0
- data/spec/unit/application/puppetd.rb +502 -0
- data/spec/unit/application/puppetdoc.rb +345 -0
- data/spec/unit/application/puppetmasterd.rb +456 -0
- data/spec/unit/application/puppetqd.rb +186 -0
- data/spec/unit/application/puppetrun.rb +279 -0
- data/spec/unit/application/ralsh.rb +237 -0
- data/spec/unit/configurer.rb +232 -0
- data/spec/unit/configurer/downloader.rb +188 -0
- data/spec/unit/configurer/fact_handler.rb +150 -0
- data/spec/unit/configurer/plugin_handler.rb +112 -0
- data/spec/unit/daemon.rb +287 -0
- data/spec/unit/file_serving/{file_base.rb → base.rb} +39 -31
- data/spec/unit/file_serving/configuration.rb +104 -93
- data/spec/unit/file_serving/configuration/parser.rb +64 -18
- data/spec/unit/file_serving/content.rb +65 -26
- data/spec/unit/file_serving/fileset.rb +116 -14
- data/spec/unit/file_serving/indirection_hooks.rb +34 -95
- data/spec/unit/file_serving/metadata.rb +27 -40
- data/spec/unit/file_serving/mount.rb +7 -118
- data/spec/unit/file_serving/mount/file.rb +188 -0
- data/spec/unit/file_serving/mount/modules.rb +63 -0
- data/spec/unit/file_serving/mount/plugins.rb +61 -0
- data/spec/unit/file_serving/terminus_helper.rb +39 -27
- data/spec/unit/indirector.rb +6 -1
- data/spec/unit/indirector/active_record.rb +76 -0
- data/spec/unit/indirector/catalog/active_record.rb +122 -0
- data/spec/unit/indirector/catalog/compiler.rb +222 -118
- data/spec/unit/indirector/catalog/queue.rb +20 -0
- data/spec/unit/indirector/catalog/rest.rb +11 -0
- data/spec/unit/indirector/catalog/yaml.rb +6 -6
- data/spec/unit/indirector/certificate/ca.rb +28 -0
- data/spec/unit/indirector/certificate/file.rb +28 -0
- data/spec/unit/indirector/certificate/rest.rb +23 -0
- data/spec/unit/indirector/certificate_request/ca.rb +19 -0
- data/spec/unit/indirector/certificate_request/file.rb +19 -0
- data/spec/unit/indirector/certificate_request/rest.rb +23 -0
- data/spec/unit/indirector/certificate_revocation_list/ca.rb +21 -0
- data/spec/unit/indirector/certificate_revocation_list/file.rb +20 -0
- data/spec/unit/indirector/certificate_revocation_list/rest.rb +23 -0
- data/spec/unit/indirector/direct_file_server.rb +3 -8
- data/spec/unit/indirector/exec.rb +6 -1
- data/spec/unit/indirector/facts/active_record.rb +104 -0
- data/spec/unit/indirector/facts/facter.rb +53 -12
- data/spec/unit/indirector/facts/rest.rb +11 -0
- data/spec/unit/indirector/file.rb +8 -1
- data/spec/unit/indirector/file_metadata/file.rb +5 -5
- data/spec/unit/indirector/file_server.rb +181 -98
- data/spec/unit/indirector/indirection.rb +102 -38
- data/spec/unit/indirector/key/ca.rb +28 -0
- data/spec/unit/indirector/key/file.rb +104 -0
- data/spec/unit/indirector/node/active_record.rb +34 -0
- data/spec/unit/indirector/node/ldap.rb +1 -1
- data/spec/unit/indirector/node/rest.rb +2 -2
- data/spec/unit/indirector/queue.rb +123 -0
- data/spec/unit/indirector/report/rest.rb +28 -0
- data/spec/unit/indirector/request.rb +221 -0
- data/spec/unit/indirector/rest.rb +343 -334
- data/spec/unit/indirector/runner/rest.rb +11 -0
- data/spec/unit/indirector/ssl_file.rb +280 -0
- data/spec/unit/module.rb +180 -180
- data/spec/unit/network/authconfig.rb +292 -0
- data/spec/unit/network/authstore.rb +94 -0
- data/spec/unit/network/client.rb +2 -2
- data/spec/unit/network/client/dipper.rb +16 -0
- data/spec/unit/network/format.rb +191 -0
- data/spec/unit/network/format_handler.rb +306 -0
- data/spec/unit/network/formats.rb +249 -0
- data/spec/unit/network/handler/fileserver.rb +2 -5
- data/spec/unit/network/http.rb +3 -3
- data/spec/unit/network/http/api/v1.rb +122 -0
- data/spec/unit/network/http/handler.rb +448 -0
- data/spec/unit/network/http/mongrel.rb +46 -32
- data/spec/unit/network/http/mongrel/rest.rb +174 -319
- data/spec/unit/network/http/rack.rb +102 -0
- data/spec/unit/network/http/rack/rest.rb +199 -0
- data/spec/unit/network/http/rack/xmlrpc.rb +157 -0
- data/spec/unit/network/http/webrick.rb +249 -37
- data/spec/unit/network/http/webrick/rest.rb +113 -279
- data/spec/unit/network/http_pool.rb +86 -110
- data/spec/unit/network/rest_authconfig.rb +146 -0
- data/spec/unit/network/rest_authorization.rb +43 -0
- data/spec/unit/network/rights.rb +519 -0
- data/spec/unit/network/server.rb +475 -257
- data/spec/unit/node.rb +43 -10
- data/spec/unit/node/environment.rb +143 -9
- data/spec/unit/node/facts.rb +77 -24
- data/spec/unit/other/selinux.rb +85 -0
- data/spec/unit/other/transbucket.rb +29 -13
- data/spec/unit/other/transobject.rb +35 -15
- data/spec/unit/parameter.rb +378 -5
- data/spec/unit/parser/ast.rb +1 -1
- data/spec/unit/parser/ast/arithmetic_operator.rb +17 -17
- data/spec/unit/parser/ast/astarray.rb +16 -10
- data/spec/unit/parser/ast/boolean_operator.rb +2 -2
- data/spec/unit/parser/ast/casestatement.rb +143 -0
- data/spec/unit/parser/ast/collection.rb +63 -0
- data/spec/unit/parser/ast/collexpr.rb +31 -8
- data/spec/unit/parser/ast/comparison_operator.rb +9 -9
- data/spec/unit/parser/ast/definition.rb +18 -0
- data/spec/unit/parser/ast/function.rb +6 -0
- data/spec/unit/parser/ast/ifstatement.rb +75 -0
- data/spec/unit/parser/ast/leaf.rb +261 -0
- data/spec/unit/parser/ast/match_operator.rb +50 -0
- data/spec/unit/parser/ast/minus.rb +1 -1
- data/spec/unit/parser/ast/node.rb +20 -0
- data/spec/unit/parser/ast/not.rb +1 -1
- data/spec/unit/parser/ast/resource_override.rb +5 -5
- data/spec/unit/parser/ast/resource_reference.rb +11 -5
- data/spec/unit/parser/ast/selector.rb +156 -0
- data/spec/unit/parser/ast/vardef.rb +11 -11
- data/spec/unit/parser/collector.rb +167 -48
- data/spec/unit/parser/compiler.rb +128 -104
- data/spec/unit/parser/files.rb +190 -0
- data/spec/unit/parser/functions/inline_template.rb +0 -0
- data/spec/unit/parser/functions/regsubst.rb +42 -42
- data/spec/unit/parser/functions/require.rb +36 -0
- data/spec/unit/parser/functions/shellquote.rb +92 -0
- data/spec/unit/parser/functions/split.rb +51 -0
- data/spec/unit/parser/functions/sprintf.rb +11 -11
- data/spec/unit/parser/functions/template.rb +0 -0
- data/spec/unit/parser/functions/versioncmp.rb +2 -2
- data/spec/unit/parser/interpreter.rb +16 -7
- data/spec/unit/parser/lexer.rb +72 -12
- data/spec/unit/parser/loaded_code.rb +198 -0
- data/spec/unit/parser/parser.rb +215 -28
- data/spec/unit/parser/resource.rb +131 -22
- data/spec/unit/parser/scope.rb +207 -12
- data/spec/unit/parser/templatewrapper.rb +8 -3
- data/spec/unit/property.rb +270 -16
- data/spec/unit/property/list.rb +12 -6
- data/spec/unit/provider.rb +31 -0
- data/spec/unit/provider/augeas/augeas.rb +61 -33
- data/spec/unit/provider/macauthorization.rb +29 -29
- data/spec/unit/provider/mcx/mcxcontent.rb +4 -4
- data/spec/unit/provider/mount/parsed.rb +5 -8
- data/spec/unit/provider/naginator.rb +0 -0
- data/spec/unit/provider/package/apt.rb +6 -6
- data/spec/unit/provider/package/pkgdmg.rb +73 -0
- data/spec/unit/provider/selboolean.rb +1 -1
- data/spec/unit/provider/selmodule.rb +2 -2
- data/spec/unit/provider/service/daemontools.rb +40 -15
- data/spec/unit/provider/service/debian.rb +89 -0
- data/spec/unit/provider/service/init.rb +106 -0
- data/spec/unit/provider/service/launchd.rb +71 -13
- data/spec/unit/provider/service/redhat.rb +94 -0
- data/spec/unit/provider/service/runit.rb +14 -2
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +66 -2
- data/spec/unit/provider/user/ldap.rb +1 -1
- data/spec/unit/provider/user/user_role_add.rb +1 -1
- data/spec/unit/provider/zfs/solaris.rb +18 -6
- data/spec/unit/provider/zone/solaris.rb +1 -1
- data/spec/unit/rails.rb +16 -22
- data/spec/unit/rails/host.rb +163 -0
- data/spec/unit/rails/param_value.rb +49 -0
- data/spec/unit/rails/resource.rb +87 -0
- data/spec/unit/relationship.rb +141 -29
- data/spec/unit/resource.rb +504 -0
- data/spec/unit/resource/catalog.rb +1061 -0
- data/spec/unit/resource/reference.rb +111 -0
- data/spec/unit/simple_graph.rb +448 -191
- data/spec/unit/ssl/certificate.rb +124 -0
- data/spec/unit/ssl/certificate_authority.rb +741 -0
- data/spec/unit/ssl/certificate_authority/interface.rb +269 -0
- data/spec/unit/ssl/certificate_factory.rb +107 -0
- data/spec/unit/ssl/certificate_request.rb +193 -0
- data/spec/unit/ssl/certificate_revocation_list.rb +180 -0
- data/spec/unit/ssl/host.rb +704 -0
- data/spec/unit/ssl/inventory.rb +180 -0
- data/spec/unit/ssl/key.rb +198 -0
- data/spec/unit/transaction.rb +65 -2
- data/spec/unit/transaction/change.rb +1 -1
- data/spec/unit/transaction/report.rb +1 -1
- data/spec/unit/type.rb +361 -8
- data/spec/unit/type/augeas.rb +30 -37
- data/spec/unit/type/component.rb +63 -0
- data/spec/unit/type/computer.rb +17 -21
- data/spec/unit/type/exec.rb +27 -2
- data/spec/unit/type/file.rb +704 -83
- data/spec/unit/type/file/content.rb +253 -15
- data/spec/unit/type/file/ensure.rb +65 -2
- data/spec/unit/type/file/group.rb +5 -0
- data/spec/unit/type/file/owner.rb +5 -0
- data/spec/unit/type/file/selinux.rb +12 -16
- data/spec/unit/type/file/source.rb +264 -0
- data/spec/unit/type/filebucket.rb +74 -0
- data/spec/unit/type/group.rb +1 -5
- data/spec/unit/type/macauthorization.rb +59 -26
- data/spec/unit/type/mcx.rb +8 -16
- data/spec/unit/type/mount.rb +8 -16
- data/spec/unit/type/noop_metaparam.rb +0 -2
- data/spec/unit/type/package.rb +13 -23
- data/spec/unit/type/resources.rb +4 -7
- data/spec/unit/type/schedule.rb +1 -7
- data/spec/unit/type/selboolean.rb +4 -6
- data/spec/unit/type/service.rb +23 -33
- data/spec/unit/type/ssh_authorized_key.rb +25 -14
- data/spec/unit/type/tidy.rb +329 -21
- data/spec/unit/type/user.rb +18 -10
- data/spec/unit/type/zfs.rb +6 -6
- data/spec/unit/util/autoload.rb +94 -3
- data/spec/unit/util/autoload/file_cache.rb +183 -0
- data/spec/unit/util/backups.rb +159 -0
- data/spec/unit/util/cache_accumulator.rb +69 -0
- data/spec/unit/util/cacher.rb +185 -0
- data/spec/unit/util/checksums.rb +9 -1
- data/spec/unit/util/feature.rb +72 -0
- data/spec/unit/util/filetype.rb +1 -11
- data/spec/unit/util/json.rb +21 -0
- data/spec/unit/util/log.rb +45 -0
- data/spec/unit/util/package.rb +2 -2
- data/spec/unit/util/queue.rb +88 -0
- data/spec/unit/util/queue/stomp.rb +140 -0
- data/spec/unit/util/reference_serializer.rb +52 -0
- data/spec/unit/util/selinux.rb +5 -3
- data/spec/unit/util/settings.rb +413 -264
- data/spec/unit/util/settings/file_setting.rb +223 -0
- data/spec/unit/util/storage.rb +11 -11
- data/spec/unit/util/warnings.rb +21 -17
- data/test/Rakefile +6 -5
- data/test/certmgr/ca.rb +5 -5
- data/test/certmgr/certmgr.rb +4 -4
- data/test/data/providers/cron/crontab.allthree +2 -2
- data/test/data/providers/cron/crontab.envNcomment +1 -1
- data/test/data/providers/cron/crontab.envNname +1 -1
- data/test/data/providers/cron/crontab.multirecords +1 -1
- data/test/data/providers/cron/crontab_collections.yaml +14 -14
- data/test/data/providers/cron/crontab_multiple_with_env.yaml +6 -6
- data/test/data/providers/cron/crontab_sample_records.yaml +102 -102
- data/test/data/providers/mailalias/aliases/test1 +28 -0
- data/test/data/providers/package/testpackages.yaml +6 -6
- data/test/data/reports/1.yaml +17 -17
- data/test/data/reports/tagmail_passers.conf +2 -2
- data/test/data/snippets/append.pp +5 -5
- data/test/data/snippets/casestatement.pp +9 -2
- data/test/data/snippets/classincludes.pp +1 -1
- data/test/data/snippets/collection_override.pp +8 -0
- data/test/data/snippets/fqparents.pp +2 -2
- data/test/data/snippets/ifexpression.pp +12 -0
- data/test/data/snippets/multilinecomments.pp +5 -1
- data/test/data/snippets/selectorvalues.pp +7 -0
- data/test/data/types/hosts/1 +1 -1
- data/test/data/types/hosts/2 +3 -3
- data/test/data/types/hosts/solaris +2 -2
- data/test/data/types/mount/freebsd.fstab +7 -7
- data/test/data/types/mount/solaris.fstab +10 -10
- data/test/data/types/port/1 +472 -472
- data/test/data/types/port/darwin +4347 -4347
- data/test/language/ast.rb +3 -2
- data/test/language/ast/casestatement.rb +12 -12
- data/test/language/ast/resource.rb +4 -4
- data/test/language/ast/resource_reference.rb +5 -5
- data/test/language/ast/selector.rb +11 -11
- data/test/language/ast/variable.rb +4 -4
- data/test/language/functions.rb +16 -16
- data/test/language/parser.rb +89 -111
- data/test/language/resource.rb +3 -88
- data/test/language/scope.rb +14 -55
- data/test/language/snippets.rb +31 -31
- data/test/lib/puppettest.rb +12 -12
- data/test/lib/puppettest/certificates.rb +2 -2
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +1 -1
- data/test/lib/puppettest/parsertesting.rb +9 -4
- data/test/lib/puppettest/railstesting.rb +3 -3
- data/test/lib/puppettest/servertest.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +1 -1
- data/test/lib/puppettest/support/resources.rb +7 -7
- data/test/lib/puppettest/support/utils.rb +10 -16
- data/test/lib/puppettest/testcase.rb +2 -1
- data/test/network/authconfig.rb +1 -1
- data/test/network/authorization.rb +1 -1
- data/test/network/authstore.rb +57 -14
- data/test/network/client/ca.rb +1 -0
- data/test/network/client/resource.rb +12 -50
- data/test/network/client_request.rb +1 -1
- data/test/network/handler/bucket.rb +2 -2
- data/test/network/handler/fileserver.rb +17 -21
- data/test/network/handler/master.rb +5 -5
- data/test/network/handler/report.rb +3 -3
- data/test/network/handler/resource.rb +29 -75
- data/test/network/handler/runner.rb +8 -58
- data/test/network/rights.rb +1 -1
- data/test/network/server/mongrel_test.rb +15 -1
- data/test/network/server/webrick.rb +0 -36
- data/test/network/xmlrpc/webrick_servlet.rb +5 -5
- data/test/other/dsl.rb +3 -3
- data/test/other/events.rb +15 -15
- data/test/other/puppet.rb +2 -32
- data/test/other/relationships.rb +21 -148
- data/test/other/report.rb +20 -23
- data/test/other/transactions.rb +110 -298
- data/test/puppet/defaults.rb +1 -1
- data/test/puppet/tc_suidmanager.rb +1 -1
- data/test/rails/railsparameter.rb +4 -4
- data/test/ral/manager/attributes.rb +12 -68
- data/test/ral/manager/instances.rb +3 -19
- data/test/ral/manager/manager.rb +7 -7
- data/test/ral/manager/provider.rb +7 -7
- data/test/ral/manager/type.rb +54 -349
- data/test/ral/providers/cron/crontab.rb +14 -14
- data/test/ral/providers/group.rb +5 -6
- data/test/ral/providers/host/parsed.rb +3 -3
- data/test/ral/providers/mailalias/aliases.rb +4 -4
- data/test/ral/providers/package.rb +3 -3
- data/test/ral/providers/package/aptitude.rb +55 -55
- data/test/ral/providers/package/aptrpm.rb +7 -7
- data/test/ral/providers/parsedfile.rb +10 -14
- data/test/ral/providers/port/parsed.rb +6 -6
- data/test/ral/providers/provider.rb +10 -10
- data/test/ral/providers/service/base.rb +32 -32
- data/test/ral/providers/sshkey/parsed.rb +14 -14
- data/test/ral/providers/user.rb +16 -17
- data/test/ral/providers/user/useradd.rb +19 -22
- data/test/ral/type/cron.rb +21 -28
- data/test/ral/type/exec.rb +57 -60
- data/test/ral/type/file.rb +88 -862
- data/test/ral/type/file/target.rb +21 -70
- data/test/ral/type/fileignoresource.rb +37 -44
- data/test/ral/type/filesources.rb +43 -473
- data/test/ral/type/group.rb +6 -7
- data/test/ral/type/host.rb +14 -30
- data/test/ral/type/mailalias.rb +3 -3
- data/test/ral/type/port.rb +5 -5
- data/test/ral/type/resources.rb +37 -37
- data/test/ral/type/service.rb +3 -3
- data/test/ral/type/sshkey.rb +34 -39
- data/test/ral/type/user.rb +15 -14
- data/test/ral/type/yumrepo.rb +18 -17
- data/test/ral/type/zone.rb +4 -6
- data/test/test +9 -9
- data/test/util/fileparsing.rb +10 -10
- data/test/util/inifile.rb +6 -6
- data/test/util/instance_loader.rb +1 -1
- data/test/util/log.rb +2 -2
- data/test/util/metrics.rb +1 -6
- data/test/util/package.rb +1 -1
- data/test/util/pidlock.rb +116 -116
- data/test/util/settings.rb +40 -429
- data/test/util/storage.rb +5 -5
- data/test/util/subclass_loader.rb +0 -7
- data/test/util/utiltest.rb +10 -29
- metadata +1369 -941
- data/bin/puppetca +0 -363
- data/bin/puppetd +0 -439
- data/bin/puppetmasterd +0 -289
- data/bin/puppetrun +0 -369
- data/conf/redhat/lsb-config.patch +0 -51
- data/conf/redhat/no-chuser-0.15.1.patch +0 -38
- data/conf/redhat/no-lockdir.patch +0 -13
- data/examples/mac_netinfo.pp +0 -5
- data/ext/passenger/README +0 -63
- data/ext/passenger/apache2.conf +0 -29
- data/ext/passenger/config.ru +0 -40
- data/lib/puppet/config_stores/rest.rb +0 -60
- data/lib/puppet/executables/client/certhandler.rb +0 -82
- data/lib/puppet/indirector/file_content/modules.rb +0 -11
- data/lib/puppet/indirector/file_metadata/modules.rb +0 -17
- data/lib/puppet/indirector/module_files.rb +0 -82
- data/lib/puppet/indirector/ssl_rsa.rb +0 -5
- data/lib/puppet/indirector/ssl_rsa/file.rb +0 -33
- data/lib/puppet/network/client/master.rb +0 -524
- data/lib/puppet/network/http_server/rack.rb +0 -148
- data/lib/puppet/pgraph.rb +0 -121
- data/lib/puppet/provider/group/netinfo.rb +0 -15
- data/lib/puppet/provider/host/netinfo.rb +0 -19
- data/lib/puppet/provider/mount/netinfo.rb +0 -37
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -224
- data/lib/puppet/provider/user/netinfo.rb +0 -111
- data/lib/puppet/util/fact_store.rb +0 -59
- data/lib/puppet/util/uri_helper.rb +0 -22
- data/spec/integration/file_serving/configuration.rb +0 -43
- data/spec/integration/indirector/module_files.rb +0 -57
- data/spec/unit/executables/client/certhandler.rb +0 -135
- data/spec/unit/indirector/file_content/modules.rb +0 -18
- data/spec/unit/indirector/file_metadata/modules.rb +0 -42
- data/spec/unit/indirector/module_files.rb +0 -259
- data/spec/unit/indirector/ssl_rsa/file.rb +0 -121
- data/spec/unit/network/client/master.rb +0 -442
- data/spec/unit/node/catalog.rb +0 -865
- data/spec/unit/other/pgraph.rb +0 -210
- data/spec/unit/resource_reference.rb +0 -73
- data/spec/unit/util/uri_helper.rb +0 -41
- data/test/data/snippets/ifexpression.rb +0 -6
- data/test/executables/filebucket.rb +0 -51
- data/test/executables/puppetbin.rb +0 -104
- data/test/executables/puppetca.rb +0 -115
- data/test/executables/puppetd.rb +0 -55
- data/test/executables/puppetmasterd.rb +0 -147
- data/test/network/client/client.rb +0 -195
- data/test/network/client/master.rb +0 -490
- data/test/network/daemon.rb +0 -70
- data/test/network/handler/handler.rb +0 -63
- data/test/other/overrides.rb +0 -107
- data/test/puppet/conffiles.rb +0 -107
- data/test/rails/ast.rb +0 -73
- data/test/rails/configuration.rb +0 -71
- data/test/rails/host.rb +0 -154
- data/test/rails/railsresource.rb +0 -251
- data/test/ral/providers/host/netinfo.rb +0 -56
- data/test/ral/providers/mount/netinfo.rb +0 -79
- data/test/ral/type/basic.rb +0 -85
- data/test/ral/type/filebucket.rb +0 -157
- data/test/ral/type/parameter.rb +0 -174
- data/test/ral/type/property.rb +0 -388
- data/test/ral/type/tidy.rb +0 -291
- data/test/util/autoload.rb +0 -145
- data/test/util/features.rb +0 -95
@@ -2,16 +2,9 @@
|
|
2
2
|
# tired of rebuilding the parser.rb file all the time.
|
3
3
|
class Puppet::Parser::Parser
|
4
4
|
require 'puppet/parser/functions'
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# Define an accessor method for each table. We hide the existence of
|
9
|
-
# the struct.
|
10
|
-
[:classes, :definitions, :nodes].each do |name|
|
11
|
-
define_method(name) do
|
12
|
-
@astset.send(name)
|
13
|
-
end
|
14
|
-
end
|
5
|
+
require 'puppet/parser/files'
|
6
|
+
require 'puppet/parser/loaded_code'
|
7
|
+
require 'monitor'
|
15
8
|
|
16
9
|
AST = Puppet::Parser::AST
|
17
10
|
|
@@ -58,7 +51,7 @@ class Puppet::Parser::Parser
|
|
58
51
|
end
|
59
52
|
|
60
53
|
k = klass.new(hash)
|
61
|
-
k.doc = lexer.getcomment if !k.nil? and k.use_docs and k.doc.empty?
|
54
|
+
k.doc = lexer.getcomment(hash[:line]) if !k.nil? and k.use_docs and k.doc.empty?
|
62
55
|
return k
|
63
56
|
end
|
64
57
|
|
@@ -105,56 +98,45 @@ class Puppet::Parser::Parser
|
|
105
98
|
end
|
106
99
|
end
|
107
100
|
|
108
|
-
|
109
|
-
|
110
|
-
|
101
|
+
[:hostclass, :definition, :node, :nodes?].each do |method|
|
102
|
+
define_method(method) do |*args|
|
103
|
+
@loaded_code.send(method, *args)
|
104
|
+
end
|
111
105
|
end
|
112
106
|
|
113
|
-
|
114
|
-
|
115
|
-
fqfind namespace, name, definitions
|
107
|
+
def find_hostclass(namespace, name)
|
108
|
+
find_or_load(namespace, name, :hostclass)
|
116
109
|
end
|
117
110
|
|
118
|
-
|
119
|
-
|
120
|
-
def findnode(name)
|
121
|
-
fqfind "", name, nodes
|
111
|
+
def find_definition(namespace, name)
|
112
|
+
find_or_load(namespace, name, :definition)
|
122
113
|
end
|
123
114
|
|
124
|
-
|
125
|
-
|
115
|
+
def find_or_load(namespace, name, type)
|
116
|
+
method = "find_#{type}"
|
126
117
|
namespace = namespace.downcase
|
127
|
-
name
|
118
|
+
name = name.downcase
|
119
|
+
fullname = (namespace + "::" + name).sub(/^::/, '')
|
128
120
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
self.load(classname) unless table[classname]
|
134
|
-
return table[classname]
|
135
|
-
end
|
136
|
-
|
137
|
-
# Else, build our namespace up piece by piece, checking
|
138
|
-
# for the class in each namespace.
|
139
|
-
ary = namespace.split("::")
|
121
|
+
if name =~ /^::/
|
122
|
+
names_to_try = [name.sub(/^::/, '')]
|
123
|
+
else
|
124
|
+
names_to_try = [fullname]
|
140
125
|
|
141
|
-
|
142
|
-
|
143
|
-
if obj = table[newname] or (self.load(newname) and obj = table[newname])
|
144
|
-
return obj
|
145
|
-
end
|
126
|
+
# Try to load the module init file if we're a qualified name
|
127
|
+
names_to_try << fullname.split("::")[0] if fullname.include?("::")
|
146
128
|
|
147
|
-
#
|
148
|
-
|
129
|
+
# Otherwise try to load the bare name on its own. This
|
130
|
+
# is appropriate if the class we're looking for is in a
|
131
|
+
# module that's different from our namespace.
|
132
|
+
names_to_try << name
|
133
|
+
names_to_try.compact!
|
149
134
|
end
|
150
135
|
|
151
|
-
|
152
|
-
|
153
|
-
if obj = table[name] or (self.load(name) and obj = table[name])
|
154
|
-
return obj
|
136
|
+
until (result = @loaded_code.send(method, namespace, name)) or names_to_try.empty? do
|
137
|
+
self.load(names_to_try.shift)
|
155
138
|
end
|
156
|
-
|
157
|
-
return nil
|
139
|
+
return result
|
158
140
|
end
|
159
141
|
|
160
142
|
# Import our files.
|
@@ -175,6 +157,7 @@ class Puppet::Parser::Parser
|
|
175
157
|
|
176
158
|
# We can't interpolate at this point since we don't have any
|
177
159
|
# scopes set up. Warn the user if they use a variable reference
|
160
|
+
raise "Got no file" unless file
|
178
161
|
pat = file
|
179
162
|
if pat.index("$")
|
180
163
|
Puppet.warning(
|
@@ -183,14 +166,14 @@ class Puppet::Parser::Parser
|
|
183
166
|
"in file #{@lexer.file} at line #{@lexer.line}"
|
184
167
|
)
|
185
168
|
end
|
186
|
-
files = Puppet::
|
169
|
+
files = Puppet::Parser::Files.find_manifests(pat, :cwd => dir, :environment => @environment)
|
187
170
|
if files.size == 0
|
188
171
|
raise Puppet::ImportError.new("No file(s) found for import " +
|
189
172
|
"of '#{pat}'")
|
190
173
|
end
|
191
174
|
|
192
175
|
files.collect { |file|
|
193
|
-
parser = Puppet::Parser::Parser.new(:
|
176
|
+
parser = Puppet::Parser::Parser.new(:loaded_code => @loaded_code, :environment => @environment)
|
194
177
|
parser.files = self.files
|
195
178
|
Puppet.debug("importing '%s'" % file)
|
196
179
|
|
@@ -210,7 +193,7 @@ class Puppet::Parser::Parser
|
|
210
193
|
end
|
211
194
|
|
212
195
|
def initialize(options = {})
|
213
|
-
@
|
196
|
+
@loaded_code = options[:loaded_code] || Puppet::Parser::LoadedCode.new
|
214
197
|
@environment = options[:environment]
|
215
198
|
initvars()
|
216
199
|
end
|
@@ -220,42 +203,67 @@ class Puppet::Parser::Parser
|
|
220
203
|
@lexer = Puppet::Parser::Lexer.new()
|
221
204
|
@files = {}
|
222
205
|
@loaded = []
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
206
|
+
@loading = {}
|
207
|
+
@loading.extend(MonitorMixin)
|
208
|
+
class << @loading
|
209
|
+
def done_with(item)
|
210
|
+
synchronize do
|
211
|
+
delete(item)[:busy].signal if self.has_key?(item) and self[item][:loader] == Thread.current
|
212
|
+
end
|
213
|
+
end
|
214
|
+
def owner_of(item)
|
215
|
+
synchronize do
|
216
|
+
if !self.has_key? item
|
217
|
+
self[item] = { :loader => Thread.current, :busy => self.new_cond}
|
218
|
+
:nobody
|
219
|
+
elsif self[item][:loader] == Thread.current
|
220
|
+
:this_thread
|
221
|
+
else
|
222
|
+
flag = self[item][:busy]
|
223
|
+
flag.wait
|
224
|
+
flag.signal
|
225
|
+
:another_thread
|
226
|
+
end
|
227
|
+
end
|
239
228
|
end
|
240
229
|
end
|
230
|
+
end
|
241
231
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
unless @loaded.include?(filename)
|
247
|
-
@loaded << filename
|
248
|
-
# Then the individual file
|
232
|
+
# Utility method factored out of load
|
233
|
+
def able_to_import?(classname,item,msg)
|
234
|
+
unless @loaded.include?(item)
|
249
235
|
begin
|
250
|
-
|
251
|
-
|
236
|
+
case @loading.owner_of(item)
|
237
|
+
when :this_thread
|
238
|
+
return
|
239
|
+
when :another_thread
|
240
|
+
return able_to_import?(classname,item,msg)
|
241
|
+
when :nobody
|
242
|
+
import(item)
|
243
|
+
Puppet.info "Autoloaded #{msg}"
|
244
|
+
@loaded << item
|
245
|
+
end
|
252
246
|
rescue Puppet::ImportError => detail
|
253
|
-
# We couldn't load the
|
247
|
+
# We couldn't load the item
|
248
|
+
ensure
|
249
|
+
@loading.done_with(item)
|
254
250
|
end
|
255
251
|
end
|
256
252
|
# We don't know whether we're looking for a class or definition, so we have
|
257
253
|
# to test for both.
|
258
|
-
return
|
254
|
+
return @loaded_code.hostclass(classname) || @loaded_code.definition(classname)
|
255
|
+
end
|
256
|
+
|
257
|
+
# Try to load a class, since we could not find it.
|
258
|
+
def load(classname)
|
259
|
+
return false if classname == ""
|
260
|
+
filename = classname.gsub("::", File::SEPARATOR)
|
261
|
+
mod = filename.scan(/^[\w-]+/).shift
|
262
|
+
|
263
|
+
# First try to load the top-level module then the individual file
|
264
|
+
[[mod, "module %s" % mod ],
|
265
|
+
[filename,"file %s from module %s" % [filename, mod]]
|
266
|
+
].any? { |item,description| able_to_import?(classname,item,description) }
|
259
267
|
end
|
260
268
|
|
261
269
|
# Split an fq name into a namespace and name
|
@@ -270,7 +278,7 @@ class Puppet::Parser::Parser
|
|
270
278
|
def newclass(name, options = {})
|
271
279
|
name = name.downcase
|
272
280
|
|
273
|
-
if
|
281
|
+
if @loaded_code.definition(name)
|
274
282
|
raise Puppet::ParseError, "Cannot redefine class %s as a definition" % name
|
275
283
|
end
|
276
284
|
code = options[:code]
|
@@ -278,7 +286,7 @@ class Puppet::Parser::Parser
|
|
278
286
|
doc = options[:doc]
|
279
287
|
|
280
288
|
# If the class is already defined, then add code to it.
|
281
|
-
if other = @
|
289
|
+
if other = @loaded_code.hostclass(name) || @loaded_code.definition(name)
|
282
290
|
# Make sure the parents match
|
283
291
|
if parent and other.parentclass and (parent != other.parentclass)
|
284
292
|
error("Class %s is already defined at %s:%s; cannot redefine" % [name, other.file, other.line])
|
@@ -323,22 +331,23 @@ class Puppet::Parser::Parser
|
|
323
331
|
args[:code] = code if code
|
324
332
|
args[:parentclass] = parent if parent
|
325
333
|
args[:doc] = doc
|
334
|
+
args[:line] = options[:line]
|
326
335
|
|
327
|
-
@
|
336
|
+
@loaded_code.add_hostclass(name, ast(AST::HostClass, args))
|
328
337
|
end
|
329
338
|
|
330
|
-
return @
|
339
|
+
return @loaded_code.hostclass(name)
|
331
340
|
end
|
332
341
|
|
333
342
|
# Create a new definition.
|
334
343
|
def newdefine(name, options = {})
|
335
344
|
name = name.downcase
|
336
|
-
if @
|
345
|
+
if @loaded_code.hostclass(name)
|
337
346
|
raise Puppet::ParseError, "Cannot redefine class %s as a definition" %
|
338
347
|
name
|
339
348
|
end
|
340
349
|
# Make sure our definition doesn't already exist
|
341
|
-
if other = @
|
350
|
+
if other = @loaded_code.definition(name)
|
342
351
|
error("%s is already defined at %s:%s; cannot redefine" % [name, other.file, other.line])
|
343
352
|
end
|
344
353
|
|
@@ -349,14 +358,15 @@ class Puppet::Parser::Parser
|
|
349
358
|
:code => options[:code],
|
350
359
|
:parser => self,
|
351
360
|
:classname => name,
|
352
|
-
:doc => options[:doc]
|
361
|
+
:doc => options[:doc],
|
362
|
+
:line => options[:line]
|
353
363
|
}
|
354
364
|
|
355
365
|
[:code, :arguments].each do |param|
|
356
366
|
args[param] = options[param] if options[param]
|
357
367
|
end
|
358
368
|
|
359
|
-
@
|
369
|
+
@loaded_code.add_definition(name, ast(AST::Definition, args))
|
360
370
|
end
|
361
371
|
|
362
372
|
# Create a new node. Nodes are special, because they're stored in a global
|
@@ -365,15 +375,16 @@ class Puppet::Parser::Parser
|
|
365
375
|
names = [names] unless names.instance_of?(Array)
|
366
376
|
doc = lexer.getcomment
|
367
377
|
names.collect do |name|
|
368
|
-
name = name.
|
369
|
-
if other = @
|
378
|
+
name = AST::HostName.new :value => name unless name.is_a?(AST::HostName)
|
379
|
+
if other = @loaded_code.node(name)
|
370
380
|
error("Node %s is already defined at %s:%s; cannot redefine" % [other.name, other.file, other.line])
|
371
381
|
end
|
372
382
|
name = name.to_s if name.is_a?(Symbol)
|
373
383
|
args = {
|
374
384
|
:name => name,
|
375
385
|
:parser => self,
|
376
|
-
:doc => doc
|
386
|
+
:doc => doc,
|
387
|
+
:line => options[:line]
|
377
388
|
}
|
378
389
|
if options[:code]
|
379
390
|
args[:code] = options[:code]
|
@@ -381,9 +392,10 @@ class Puppet::Parser::Parser
|
|
381
392
|
if options[:parent]
|
382
393
|
args[:parentclass] = options[:parent]
|
383
394
|
end
|
384
|
-
|
385
|
-
|
386
|
-
@
|
395
|
+
node = ast(AST::Node, args)
|
396
|
+
node.classname = name.to_classname
|
397
|
+
@loaded_code.add_node(name, node)
|
398
|
+
node
|
387
399
|
end
|
388
400
|
end
|
389
401
|
|
@@ -391,7 +403,7 @@ class Puppet::Parser::Parser
|
|
391
403
|
if token == 0 # denotes end of file
|
392
404
|
value = 'end of file'
|
393
405
|
else
|
394
|
-
value = "'%s'" % value
|
406
|
+
value = "'%s'" % value[:value]
|
395
407
|
end
|
396
408
|
error = "Syntax error at %s" % [value]
|
397
409
|
|
@@ -446,8 +458,7 @@ class Puppet::Parser::Parser
|
|
446
458
|
# Store the results as the top-level class.
|
447
459
|
newclass("", :code => main)
|
448
460
|
end
|
449
|
-
@
|
450
|
-
return @astset
|
461
|
+
return @loaded_code
|
451
462
|
ensure
|
452
463
|
@lexer.clear
|
453
464
|
end
|
@@ -465,6 +476,17 @@ class Puppet::Parser::Parser
|
|
465
476
|
@lexer.string = string
|
466
477
|
end
|
467
478
|
|
479
|
+
def version
|
480
|
+
return @version if defined?(@version)
|
481
|
+
|
482
|
+
if Puppet[:config_version] == ""
|
483
|
+
@version = Time.now.to_i
|
484
|
+
return @version
|
485
|
+
end
|
486
|
+
|
487
|
+
@version = %x{#{Puppet[:config_version]}}.chomp
|
488
|
+
end
|
489
|
+
|
468
490
|
# Add a new file to be checked when we're checking to see if we should be
|
469
491
|
# reparsed. This is basically only used by the TemplateWrapper to let the
|
470
492
|
# parser know about templates that should be parsed.
|
@@ -475,7 +497,7 @@ class Puppet::Parser::Parser
|
|
475
497
|
private
|
476
498
|
|
477
499
|
def check_and_add_to_watched_files(filename)
|
478
|
-
unless @files.include?(filename)
|
500
|
+
unless @files.include?(filename)
|
479
501
|
@files[filename] = Puppet::Util::LoadedFile.new(filename)
|
480
502
|
return true
|
481
503
|
else
|
@@ -5,6 +5,7 @@ class Puppet::Parser::Resource
|
|
5
5
|
require 'puppet/parser/resource/reference'
|
6
6
|
require 'puppet/util/tagging'
|
7
7
|
require 'puppet/file_collection/lookup'
|
8
|
+
require 'puppet/parser/yaml_trimmer'
|
8
9
|
|
9
10
|
include Puppet::FileCollection::Lookup
|
10
11
|
|
@@ -13,6 +14,7 @@ class Puppet::Parser::Resource
|
|
13
14
|
include Puppet::Util::Errors
|
14
15
|
include Puppet::Util::Logging
|
15
16
|
include Puppet::Util::Tagging
|
17
|
+
include Puppet::Parser::YamlTrimmer
|
16
18
|
|
17
19
|
attr_accessor :source, :scope, :rails_id
|
18
20
|
attr_accessor :virtual, :override, :translated
|
@@ -58,6 +60,12 @@ class Puppet::Parser::Resource
|
|
58
60
|
@ref.builtin = bool
|
59
61
|
end
|
60
62
|
|
63
|
+
def eachparam
|
64
|
+
@params.each do |name, param|
|
65
|
+
yield param
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
61
69
|
# Retrieve the associated definition and evaluate it.
|
62
70
|
def evaluate
|
63
71
|
if klass = @ref.definedtype
|
@@ -167,49 +175,6 @@ class Puppet::Parser::Resource
|
|
167
175
|
end
|
168
176
|
end
|
169
177
|
|
170
|
-
# Modify this resource in the Rails database. Poor design, yo.
|
171
|
-
def modify_rails(db_resource)
|
172
|
-
args = rails_args
|
173
|
-
args.each do |param, value|
|
174
|
-
db_resource[param] = value unless db_resource[param] == value
|
175
|
-
end
|
176
|
-
|
177
|
-
# Handle file specially
|
178
|
-
if (self.file and
|
179
|
-
(!db_resource.file or db_resource.file != self.file))
|
180
|
-
db_resource.file = self.file
|
181
|
-
end
|
182
|
-
|
183
|
-
updated_params = @params.inject({}) do |hash, ary|
|
184
|
-
hash[ary[0].to_s] = ary[1]
|
185
|
-
hash
|
186
|
-
end
|
187
|
-
|
188
|
-
db_resource.ar_hash_merge(db_resource.get_params_hash(), updated_params,
|
189
|
-
:create => Proc.new { |name, parameter|
|
190
|
-
parameter.to_rails(db_resource)
|
191
|
-
}, :delete => Proc.new { |values|
|
192
|
-
values.each { |value| Puppet::Rails::ParamValue.delete(value['id']) }
|
193
|
-
}, :modify => Proc.new { |db, mem|
|
194
|
-
mem.modify_rails_values(db)
|
195
|
-
})
|
196
|
-
|
197
|
-
updated_tags = tags.inject({}) { |hash, tag|
|
198
|
-
hash[tag] = tag
|
199
|
-
hash
|
200
|
-
}
|
201
|
-
|
202
|
-
db_resource.ar_hash_merge(db_resource.get_tag_hash(),
|
203
|
-
updated_tags,
|
204
|
-
:create => Proc.new { |name, tag|
|
205
|
-
db_resource.add_resource_tag(name)
|
206
|
-
}, :delete => Proc.new { |tag|
|
207
|
-
Puppet::Rails::ResourceTag.delete(tag['id'])
|
208
|
-
}, :modify => Proc.new { |db, mem|
|
209
|
-
# nothing here
|
210
|
-
})
|
211
|
-
end
|
212
|
-
|
213
178
|
# Return the resource name, or the title if no name
|
214
179
|
# was specified.
|
215
180
|
def name
|
@@ -238,6 +203,8 @@ class Puppet::Parser::Resource
|
|
238
203
|
end
|
239
204
|
|
240
205
|
# Define a parameter in our resource.
|
206
|
+
# if we ever receive a parameter named 'tag', set
|
207
|
+
# the resource tags with its value.
|
241
208
|
def set_parameter(param, value = nil)
|
242
209
|
if value
|
243
210
|
param = Puppet::Parser::Resource::Param.new(
|
@@ -247,6 +214,8 @@ class Puppet::Parser::Resource
|
|
247
214
|
raise ArgumentError, "Must pass a parameter or all necessary values"
|
248
215
|
end
|
249
216
|
|
217
|
+
tag(*param.value) if param.name == :tag
|
218
|
+
|
250
219
|
# And store it in our parameter hash.
|
251
220
|
@params[param.name] = param
|
252
221
|
end
|
@@ -262,91 +231,66 @@ class Puppet::Parser::Resource
|
|
262
231
|
end
|
263
232
|
end
|
264
233
|
|
265
|
-
# Turn our parser resource into a Rails resource.
|
266
|
-
def to_rails(host)
|
267
|
-
args = rails_args
|
268
|
-
|
269
|
-
db_resource = host.resources.build(args)
|
270
|
-
|
271
|
-
# Handle file specially
|
272
|
-
db_resource.file = self.file
|
273
|
-
|
274
|
-
db_resource.save
|
275
|
-
|
276
|
-
@params.each { |name, param|
|
277
|
-
param.to_rails(db_resource)
|
278
|
-
}
|
279
|
-
|
280
|
-
tags.each { |tag| db_resource.add_resource_tag(tag) }
|
281
|
-
|
282
|
-
return db_resource
|
283
|
-
end
|
284
|
-
|
285
|
-
def to_s
|
286
|
-
self.ref
|
287
|
-
end
|
288
|
-
|
289
|
-
# Translate our object to a transportable object.
|
290
|
-
def to_trans
|
291
|
-
return nil if virtual?
|
292
|
-
|
293
|
-
if builtin?
|
294
|
-
to_transobject
|
295
|
-
else
|
296
|
-
to_transbucket
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
|
-
def to_transbucket
|
301
|
-
bucket = Puppet::TransBucket.new([])
|
302
|
-
|
303
|
-
bucket.type = self.type
|
304
|
-
bucket.name = self.title
|
305
234
|
|
306
|
-
|
307
|
-
|
308
|
-
|
235
|
+
# Create a Puppet::Resource instance from this parser resource.
|
236
|
+
# We plan, at some point, on not needing to do this conversion, but
|
237
|
+
# it's sufficient for now.
|
238
|
+
def to_resource
|
239
|
+
result = Puppet::Resource.new(type, title)
|
309
240
|
|
310
|
-
# Convert this resource to a RAL resource. We hackishly go via the
|
311
|
-
# transportable stuff.
|
312
|
-
def to_type
|
313
|
-
to_trans.to_type
|
314
|
-
end
|
315
|
-
|
316
|
-
def to_transobject
|
317
|
-
# Now convert to a transobject
|
318
|
-
obj = Puppet::TransObject.new(@ref.title, @ref.type)
|
319
241
|
to_hash.each do |p, v|
|
320
|
-
if v.is_a?(Reference)
|
321
|
-
v = v.
|
242
|
+
if v.is_a?(Puppet::Parser::Resource::Reference)
|
243
|
+
v = Puppet::Resource::Reference.new(v.type, v.title)
|
322
244
|
elsif v.is_a?(Array)
|
323
|
-
|
324
|
-
|
325
|
-
|
245
|
+
# flatten resource references arrays
|
246
|
+
if v.flatten.find { |av| av.is_a?(Puppet::Parser::Resource::Reference) }
|
247
|
+
v = v.flatten
|
248
|
+
end
|
249
|
+
v = v.collect do |av|
|
250
|
+
if av.is_a?(Puppet::Parser::Resource::Reference)
|
251
|
+
av = Puppet::Resource::Reference.new(av.type, av.title)
|
326
252
|
end
|
327
253
|
av
|
328
|
-
|
254
|
+
end
|
329
255
|
end
|
330
256
|
|
331
257
|
# If the value is an array with only one value, then
|
332
258
|
# convert it to a single value. This is largely so that
|
333
259
|
# the database interaction doesn't have to worry about
|
334
260
|
# whether it returns an array or a string.
|
335
|
-
|
261
|
+
result[p] = if v.is_a?(Array) and v.length == 1
|
336
262
|
v[0]
|
337
263
|
else
|
338
264
|
v
|
339
265
|
end
|
340
266
|
end
|
341
267
|
|
342
|
-
|
343
|
-
|
268
|
+
result.file = self.file
|
269
|
+
result.line = self.line
|
270
|
+
result.exported = self.exported
|
271
|
+
result.virtual = self.virtual
|
272
|
+
result.tag(*self.tags)
|
273
|
+
|
274
|
+
return result
|
275
|
+
end
|
276
|
+
|
277
|
+
def to_s
|
278
|
+
self.ref
|
279
|
+
end
|
280
|
+
|
281
|
+
# Translate our object to a transportable object.
|
282
|
+
def to_trans
|
283
|
+
return nil if virtual?
|
344
284
|
|
345
|
-
|
285
|
+
return to_resource.to_trans
|
286
|
+
end
|
346
287
|
|
347
|
-
|
288
|
+
# Convert this resource to a RAL resource. We hackishly go via the
|
289
|
+
# transportable stuff.
|
290
|
+
def to_ral
|
291
|
+
to_resource.to_ral
|
348
292
|
end
|
349
|
-
|
293
|
+
|
350
294
|
private
|
351
295
|
|
352
296
|
# Add default values from our definition.
|
@@ -364,19 +308,16 @@ class Puppet::Parser::Resource
|
|
364
308
|
# from any parent scope, and there's currently no way to turn that off.
|
365
309
|
def add_metaparams
|
366
310
|
Puppet::Type.eachmetaparam do |name|
|
311
|
+
next if self.class.relationship_parameter?(name)
|
367
312
|
# Skip metaparams that we already have defined, unless they're relationship metaparams.
|
368
313
|
# LAK:NOTE Relationship metaparams get treated specially -- we stack them, instead of
|
369
314
|
# overriding.
|
370
|
-
next if @params[name]
|
315
|
+
next if @params[name]
|
371
316
|
|
372
317
|
# Skip metaparams for which we get no value.
|
373
318
|
next unless val = scope.lookupvar(name.to_s, false) and val != :undefined
|
374
319
|
|
375
|
-
# The default case: just set the value
|
376
320
|
set_parameter(name, val) and next unless @params[name]
|
377
|
-
|
378
|
-
# For relationship params, though, join the values (a la #446).
|
379
|
-
@params[name].value = [@params[name].value, val].flatten
|
380
321
|
end
|
381
322
|
end
|
382
323
|
|
@@ -390,7 +331,7 @@ class Puppet::Parser::Resource
|
|
390
331
|
def override_parameter(param)
|
391
332
|
# This can happen if the override is defining a new parameter, rather
|
392
333
|
# than replacing an existing one.
|
393
|
-
(
|
334
|
+
(set_parameter(param) and return) unless current = @params[param.name]
|
394
335
|
|
395
336
|
# The parameter is already set. Fail if they're not allowed to override it.
|
396
337
|
unless param.source.child_of?(current.source)
|
@@ -416,7 +357,7 @@ class Puppet::Parser::Resource
|
|
416
357
|
# so that the source is registered correctly for later overrides.
|
417
358
|
param.value = [current.value, param.value].flatten if param.add
|
418
359
|
|
419
|
-
|
360
|
+
set_parameter(param)
|
420
361
|
end
|
421
362
|
|
422
363
|
# Verify that all passed parameters are valid. This throws an error if
|
@@ -424,7 +365,7 @@ class Puppet::Parser::Resource
|
|
424
365
|
def paramcheck(param)
|
425
366
|
param = param.to_s
|
426
367
|
# Now make sure it's a valid argument to our class. These checks
|
427
|
-
# are organized in order of commonhood -- most types, it's a valid
|
368
|
+
# are organized in order of commonhood -- most types, it's a valid
|
428
369
|
# argument and paramcheck is enabled.
|
429
370
|
if @ref.typeclass.validattr?(param)
|
430
371
|
true
|
@@ -436,17 +377,6 @@ class Puppet::Parser::Resource
|
|
436
377
|
end
|
437
378
|
end
|
438
379
|
|
439
|
-
def rails_args
|
440
|
-
return [:type, :title, :line, :exported].inject({}) do |hash, param|
|
441
|
-
# 'type' isn't a valid column name, so we have to use another name.
|
442
|
-
to = (param == :type) ? :restype : param
|
443
|
-
if value = self.send(param)
|
444
|
-
hash[to] = value
|
445
|
-
end
|
446
|
-
hash
|
447
|
-
end
|
448
|
-
end
|
449
|
-
|
450
380
|
# Make sure the resource's parameters are all valid for the type.
|
451
381
|
def validate
|
452
382
|
@params.each do |name, param|
|