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
@@ -1,10 +1,14 @@
|
|
1
1
|
require 'puppet/provider/parsedfile'
|
2
2
|
|
3
3
|
Puppet::Type.type(:maillist).provide(:mailman) do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
if [ "CentOS", "RedHat", "Fedora" ].any? { |os| Facter.value(:operatingsystem) == os } then
|
5
|
+
commands :list_lists => "/usr/lib/mailman/bin/list_lists", :rmlist => "/usr/lib/mailman/bin/rmlist", :newlist => "/usr/lib/mailman/bin/newlist"
|
6
|
+
commands :mailman => "/usr/lib/mailman/mail/mailman"
|
7
|
+
else
|
8
|
+
# This probably won't work for non-Debian installs, but this path is sure not to be in the PATH.
|
9
|
+
commands :list_lists => "list_lists", :rmlist => "rmlist", :newlist => "newlist"
|
10
|
+
commands :mailman => "/var/lib/mailman/mail/mailman"
|
11
|
+
end
|
8
12
|
|
9
13
|
mk_resource_methods
|
10
14
|
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# Copyright (C) 2008 Jeffrey J McCune.
|
3
3
|
|
4
4
|
# This program and entire repository is free software; you can
|
5
|
-
# redistribute it and/or modify it under the terms of the GNU
|
6
|
-
# General Public License as published by the Free Software
|
5
|
+
# redistribute it and/or modify it under the terms of the GNU
|
6
|
+
# General Public License as published by the Free Software
|
7
7
|
# Foundation; either version 2 of the License, or any later version.
|
8
8
|
|
9
9
|
# This program is distributed in the hope that it will be useful,
|
@@ -23,16 +23,16 @@ Puppet::Type.type(:mcx).provide :mcxcontent, :parent => Puppet::Provider do
|
|
23
23
|
|
24
24
|
desc "MCX Settings management using DirectoryService on OS X.
|
25
25
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
This provider manages the entire MCXSettings attribute available
|
27
|
+
to some directory services nodes. This management is 'all or nothing'
|
28
|
+
in that discrete application domain key value pairs are not managed
|
29
|
+
by this provider.
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
It is recommended to use WorkGroup Manager to configure Users, Groups,
|
32
|
+
Computers, or ComputerLists, then use 'ralsh mcx' to generate a puppet
|
33
|
+
manifest from the resulting configuration.
|
34
34
|
|
35
|
-
|
35
|
+
Original Author: Jeff McCune (mccune.jeff@gmail.com)
|
36
36
|
|
37
37
|
"
|
38
38
|
|
@@ -66,7 +66,7 @@ Puppet::Type.type(:mcx).provide :mcxcontent, :parent => Puppet::Provider do
|
|
66
66
|
content = mcxexport(ds_type, ds_name)
|
67
67
|
if content.empty?
|
68
68
|
Puppet.debug "/#{TypeMap[ds_type]}/#{ds_name} has no MCX data."
|
69
|
-
else
|
69
|
+
else
|
70
70
|
# This node has MCX data.
|
71
71
|
rsrc = self.new(:name => "/#{TypeMap[ds_type]}/#{ds_name}",
|
72
72
|
:ds_type => ds_type,
|
@@ -3,7 +3,7 @@ require 'puppet/provider/mount'
|
|
3
3
|
|
4
4
|
fstab = nil
|
5
5
|
case Facter.value(:operatingsystem)
|
6
|
-
when "Solaris"
|
6
|
+
when "Solaris"; fstab = "/etc/vfstab"
|
7
7
|
else
|
8
8
|
fstab = "/etc/fstab"
|
9
9
|
end
|
@@ -20,7 +20,7 @@ Puppet::Type.type(:mount).provide(:parsed,
|
|
20
20
|
|
21
21
|
@platform = Facter["operatingsystem"].value
|
22
22
|
case @platform
|
23
|
-
when "Solaris"
|
23
|
+
when "Solaris"
|
24
24
|
@fields = [:device, :blockdevice, :name, :fstype, :pass, :atboot,
|
25
25
|
:options]
|
26
26
|
else
|
@@ -128,9 +128,9 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
128
128
|
@ops[property.name] || ("-" + property.name)
|
129
129
|
end
|
130
130
|
end
|
131
|
-
|
131
|
+
|
132
132
|
# Autogenerate a value. Mostly used for uid/gid, but also used heavily
|
133
|
-
# with
|
133
|
+
# with DirectoryServices, because DirectoryServices is stupid.
|
134
134
|
def autogen(field)
|
135
135
|
field = symbolize(field)
|
136
136
|
id_generators = {:user => :uid, :group => :gid}
|
@@ -154,12 +154,12 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
154
154
|
|
155
155
|
group = method = nil
|
156
156
|
case @resource.class.name
|
157
|
-
when :user
|
158
|
-
when :group
|
157
|
+
when :user; group = :passwd; method = :uid
|
158
|
+
when :group; group = :group; method = :gid
|
159
159
|
else
|
160
160
|
raise Puppet::DevError, "Invalid resource name %s" % resource
|
161
161
|
end
|
162
|
-
|
162
|
+
|
163
163
|
# Make sure we don't use the same value multiple times
|
164
164
|
if defined? @@prevauto
|
165
165
|
@@prevauto += 1
|
@@ -244,7 +244,7 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
244
244
|
@objectinfo = nil
|
245
245
|
end
|
246
246
|
end
|
247
|
-
|
247
|
+
|
248
248
|
# Now convert our Etc struct into a hash.
|
249
249
|
if @objectinfo
|
250
250
|
return info2hash(@objectinfo)
|
@@ -30,16 +30,8 @@ class DirectoryService < Puppet::Provider::NameService
|
|
30
30
|
attr_writer :macosx_version_major
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
|
-
# JJM 2007-07-24: Not yet sure what initvars() does. I saw it in netinfo.rb
|
35
|
-
# I do know, however, that it makes methods "work" =)
|
36
|
-
# e.g. addcmd isn't available if this method call isn't present.
|
37
|
-
#
|
38
|
-
# JJM: Also, where this method is defined seems to impact the visibility
|
39
|
-
# of methods. If I put initvars after commands, confine and defaultfor,
|
40
|
-
# then getinfo is called from the parent class, not this class.
|
41
33
|
initvars()
|
42
|
-
|
34
|
+
|
43
35
|
commands :dscl => "/usr/bin/dscl"
|
44
36
|
commands :dseditgroup => "/usr/sbin/dseditgroup"
|
45
37
|
commands :sw_vers => "/usr/bin/sw_vers"
|
@@ -80,27 +72,27 @@ class DirectoryService < Puppet::Provider::NameService
|
|
80
72
|
:ip_address => 'IPAddress',
|
81
73
|
:members => 'GroupMembership',
|
82
74
|
}
|
83
|
-
|
75
|
+
|
84
76
|
@@password_hash_dir = "/var/db/shadow/hash"
|
85
|
-
|
77
|
+
|
86
78
|
def self.instances
|
87
79
|
# JJM Class method that provides an array of instance objects of this
|
88
80
|
# type.
|
89
81
|
# JJM: Properties are dependent on the Puppet::Type we're managine.
|
90
82
|
type_property_array = [:name] + @resource_type.validproperties
|
91
|
-
|
83
|
+
|
92
84
|
# Create a new instance of this Puppet::Type for each object present
|
93
85
|
# on the system.
|
94
86
|
list_all_present.collect do |name_string|
|
95
87
|
self.new(single_report(name_string, *type_property_array))
|
96
88
|
end
|
97
89
|
end
|
98
|
-
|
90
|
+
|
99
91
|
def self.get_ds_path
|
100
92
|
# JJM: 2007-07-24 This method dynamically returns the DS path we're concerned with.
|
101
93
|
# For example, if we're working with an user type, this will be /Users
|
102
94
|
# with a group type, this will be /Groups.
|
103
|
-
# @ds_path is an attribute of the class itself.
|
95
|
+
# @ds_path is an attribute of the class itself.
|
104
96
|
if defined? @ds_path
|
105
97
|
return @ds_path
|
106
98
|
end
|
@@ -110,37 +102,47 @@ class DirectoryService < Puppet::Provider::NameService
|
|
110
102
|
# Puppet::Type this class object is providing for.
|
111
103
|
return @resource_type.name.to_s.capitalize + "s"
|
112
104
|
end
|
113
|
-
|
105
|
+
|
114
106
|
def self.get_macosx_version_major
|
115
107
|
if defined? @macosx_version_major
|
116
108
|
return @macosx_version_major
|
117
109
|
end
|
118
110
|
begin
|
119
|
-
|
120
|
-
|
121
|
-
|
111
|
+
# Make sure we've loaded all of the facts
|
112
|
+
Facter.loadfacts
|
113
|
+
|
114
|
+
if Facter.value(:macosx_productversion_major)
|
115
|
+
product_version_major = Facter.value(:macosx_productversion_major)
|
116
|
+
else
|
117
|
+
# TODO: remove this code chunk once we require Facter 1.5.5 or higher.
|
118
|
+
Puppet.warning("DEPRECATION WARNING: Future versions of the directoryservice provider will require Facter 1.5.5 or newer.")
|
119
|
+
product_version = Facter.value(:macosx_productversion)
|
120
|
+
if product_version.nil?
|
121
|
+
fail("Could not determine OS X version from Facter")
|
122
|
+
end
|
123
|
+
product_version_major = product_version.scan(/(\d+)\.(\d+)./).join(".")
|
122
124
|
end
|
123
|
-
product_version_major = product_version.scan(/(\d+)\.(\d+)./).join(".")
|
124
125
|
if %w{10.0 10.1 10.2 10.3}.include?(product_version_major)
|
125
|
-
|
126
|
+
fail("%s is not supported by the directoryservice provider" % product_version_major)
|
126
127
|
end
|
127
128
|
@macosx_version_major = product_version_major
|
128
129
|
return @macosx_version_major
|
129
130
|
rescue Puppet::ExecutionFailure => detail
|
130
|
-
|
131
|
+
fail("Could not determine OS X version: %s" % detail)
|
131
132
|
end
|
132
133
|
end
|
133
134
|
|
135
|
+
|
134
136
|
def self.list_all_present
|
135
137
|
# JJM: List all objects of this Puppet::Type already present on the system.
|
136
138
|
begin
|
137
139
|
dscl_output = execute(get_exec_preamble("-list"))
|
138
140
|
rescue Puppet::ExecutionFailure => detail
|
139
|
-
|
141
|
+
fail("Could not get %s list from DirectoryService" % [ @resource_type.name.to_s ])
|
140
142
|
end
|
141
143
|
return dscl_output.split("\n")
|
142
144
|
end
|
143
|
-
|
145
|
+
|
144
146
|
def self.parse_dscl_url_data(dscl_output)
|
145
147
|
# we need to construct a Hash from the dscl -url output to match
|
146
148
|
# that returned by the dscl -plist output for 10.5+ clients.
|
@@ -150,7 +152,7 @@ class DirectoryService < Puppet::Provider::NameService
|
|
150
152
|
# b) if a line ends in a colon and the next line does start with
|
151
153
|
# a space, then the second line is a value of the first.
|
152
154
|
# c) (implied by (b)) keys don't start with spaces.
|
153
|
-
|
155
|
+
|
154
156
|
dscl_plist = {}
|
155
157
|
dscl_output.split("\n").inject([]) do |array, line|
|
156
158
|
if line =~ /^\s+/ # it's a value
|
@@ -180,11 +182,11 @@ class DirectoryService < Puppet::Provider::NameService
|
|
180
182
|
end
|
181
183
|
return dscl_plist
|
182
184
|
end
|
183
|
-
|
185
|
+
|
184
186
|
def self.parse_dscl_plist_data(dscl_output)
|
185
187
|
return Plist.parse_xml(dscl_output)
|
186
188
|
end
|
187
|
-
|
189
|
+
|
188
190
|
def self.generate_attribute_hash(input_hash, *type_properties)
|
189
191
|
attribute_hash = {}
|
190
192
|
input_hash.keys().each do |key|
|
@@ -192,9 +194,9 @@ class DirectoryService < Puppet::Provider::NameService
|
|
192
194
|
next unless (@@ds_to_ns_attribute_map.keys.include?(ds_attribute) and type_properties.include? @@ds_to_ns_attribute_map[ds_attribute])
|
193
195
|
ds_value = input_hash[key]
|
194
196
|
case @@ds_to_ns_attribute_map[ds_attribute]
|
195
|
-
when :members
|
197
|
+
when :members
|
196
198
|
ds_value = ds_value # only members uses arrays so far
|
197
|
-
when :gid, :uid
|
199
|
+
when :gid, :uid
|
198
200
|
# OS X stores objects like uid/gid as strings.
|
199
201
|
# Try casting to an integer for these cases to be
|
200
202
|
# consistent with the other providers and the group type
|
@@ -208,37 +210,37 @@ class DirectoryService < Puppet::Provider::NameService
|
|
208
210
|
end
|
209
211
|
attribute_hash[@@ds_to_ns_attribute_map[ds_attribute]] = ds_value
|
210
212
|
end
|
211
|
-
|
213
|
+
|
212
214
|
# NBK: need to read the existing password here as it's not actually
|
213
215
|
# stored in the user record. It is stored at a path that involves the
|
214
|
-
# UUID of the user record for non-Mobile local acccounts.
|
216
|
+
# UUID of the user record for non-Mobile local acccounts.
|
215
217
|
# Mobile Accounts are out of scope for this provider for now
|
216
218
|
if @resource_type.validproperties.include?(:password)
|
217
219
|
attribute_hash[:password] = self.get_password(attribute_hash[:guid])
|
218
220
|
end
|
219
221
|
return attribute_hash
|
220
222
|
end
|
221
|
-
|
223
|
+
|
222
224
|
def self.single_report(resource_name, *type_properties)
|
223
225
|
# JJM 2007-07-24:
|
224
226
|
# Given a the name of an object and a list of properties of that
|
225
227
|
# object, return all property values in a hash.
|
226
|
-
#
|
228
|
+
#
|
227
229
|
# This class method returns nil if the object doesn't exist
|
228
230
|
# Otherwise, it returns a hash of the object properties.
|
229
|
-
|
231
|
+
|
230
232
|
all_present_str_array = list_all_present()
|
231
|
-
|
233
|
+
|
232
234
|
# NBK: shortcut the process if the resource is missing
|
233
235
|
return nil unless all_present_str_array.include? resource_name
|
234
|
-
|
236
|
+
|
235
237
|
dscl_vector = get_exec_preamble("-read", resource_name)
|
236
238
|
begin
|
237
239
|
dscl_output = execute(dscl_vector)
|
238
240
|
rescue Puppet::ExecutionFailure => detail
|
239
|
-
|
241
|
+
fail("Could not get report. command execution failed.")
|
240
242
|
end
|
241
|
-
|
243
|
+
|
242
244
|
# Two code paths is ugly, but until we can drop 10.4 support we don't
|
243
245
|
# have a lot of choice. Ultimately this should all be done using Ruby
|
244
246
|
# to access the DirectoryService APIs directly, but that's simply not
|
@@ -249,10 +251,10 @@ class DirectoryService < Puppet::Provider::NameService
|
|
249
251
|
when "10.5", "10.6"
|
250
252
|
dscl_plist = self.parse_dscl_plist_data(dscl_output)
|
251
253
|
end
|
252
|
-
|
254
|
+
|
253
255
|
return self.generate_attribute_hash(dscl_plist, *type_properties)
|
254
256
|
end
|
255
|
-
|
257
|
+
|
256
258
|
def self.get_exec_preamble(ds_action, resource_name = nil)
|
257
259
|
# JJM 2007-07-24
|
258
260
|
# DSCL commands are often repetitive and contain the same positional
|
@@ -285,15 +287,15 @@ class DirectoryService < Puppet::Provider::NameService
|
|
285
287
|
# e.g. 'dscl / -create /Users/mccune'
|
286
288
|
return command_vector
|
287
289
|
end
|
288
|
-
|
290
|
+
|
289
291
|
def self.set_password(resource_name, guid, password_hash)
|
290
292
|
password_hash_file = "#{@@password_hash_dir}/#{guid}"
|
291
293
|
begin
|
292
294
|
File.open(password_hash_file, 'w') { |f| f.write(password_hash)}
|
293
295
|
rescue Errno::EACCES => detail
|
294
|
-
|
296
|
+
fail("Could not write to password hash file: #{detail}")
|
295
297
|
end
|
296
|
-
|
298
|
+
|
297
299
|
# NBK: For shadow hashes, the user AuthenticationAuthority must contain a value of
|
298
300
|
# ";ShadowHash;". The LKDC in 10.5 makes this more interesting though as it
|
299
301
|
# will dynamically generate ;Kerberosv5;;username@LKDC:SHA1 attributes if
|
@@ -302,27 +304,27 @@ class DirectoryService < Puppet::Provider::NameService
|
|
302
304
|
# use other custom AuthenticationAuthority attributes without stomping on them.
|
303
305
|
#
|
304
306
|
# There is a potential problem here in that we're only doing this when setting
|
305
|
-
# the password, and the attribute could get modified at other times while the
|
307
|
+
# the password, and the attribute could get modified at other times while the
|
306
308
|
# hash doesn't change and so this doesn't get called at all... but
|
307
309
|
# without switching all the other attributes to merge instead of create I can't
|
308
310
|
# see a simple enough solution for this that doesn't modify the user record
|
309
311
|
# every single time. This should be a rather rare edge case. (famous last words)
|
310
|
-
|
312
|
+
|
311
313
|
dscl_vector = self.get_exec_preamble("-merge", resource_name)
|
312
314
|
dscl_vector << "AuthenticationAuthority" << ";ShadowHash;"
|
313
315
|
begin
|
314
316
|
dscl_output = execute(dscl_vector)
|
315
317
|
rescue Puppet::ExecutionFailure => detail
|
316
|
-
|
318
|
+
fail("Could not set AuthenticationAuthority.")
|
317
319
|
end
|
318
320
|
end
|
319
|
-
|
321
|
+
|
320
322
|
def self.get_password(guid)
|
321
323
|
password_hash = nil
|
322
324
|
password_hash_file = "#{@@password_hash_dir}/#{guid}"
|
323
325
|
if File.exists?(password_hash_file) and File.file?(password_hash_file)
|
324
326
|
if not File.readable?(password_hash_file)
|
325
|
-
|
327
|
+
fail("Could not read password hash file at #{password_hash_file} for #{@resource[:name]}")
|
326
328
|
end
|
327
329
|
f = File.new(password_hash_file)
|
328
330
|
password_hash = f.read
|
@@ -333,10 +335,9 @@ class DirectoryService < Puppet::Provider::NameService
|
|
333
335
|
|
334
336
|
def ensure=(ensure_value)
|
335
337
|
super
|
336
|
-
#
|
337
|
-
#
|
338
|
-
#
|
339
|
-
# Like netinfo, dscl can't create everything at once, afaik.
|
338
|
+
# We need to loop over all valid properties for the type we're
|
339
|
+
# managing and call the method which sets that property value
|
340
|
+
# dscl can't create everything at once unfortunately.
|
340
341
|
if ensure_value == :present
|
341
342
|
@resource.class.validproperties.each do |name|
|
342
343
|
next if name == :ensure
|
@@ -352,9 +353,9 @@ class DirectoryService < Puppet::Provider::NameService
|
|
352
353
|
next
|
353
354
|
end
|
354
355
|
end
|
355
|
-
end
|
356
|
+
end
|
356
357
|
end
|
357
|
-
|
358
|
+
|
358
359
|
def password=(passphrase)
|
359
360
|
exec_arg_vector = self.class.get_exec_preamble("-read", @resource.name)
|
360
361
|
exec_arg_vector << @@ns_to_ds_attribute_map[:guid]
|
@@ -367,14 +368,14 @@ class DirectoryService < Puppet::Provider::NameService
|
|
367
368
|
guid = guid_plist["dsAttrTypeStandard:#{@@ns_to_ds_attribute_map[:guid]}"][0]
|
368
369
|
self.class.set_password(@resource.name, guid, passphrase)
|
369
370
|
rescue Puppet::ExecutionFailure => detail
|
370
|
-
|
371
|
+
fail("Could not set %s on %s[%s]: %s" % [param, @resource.class.name, @resource.name, detail])
|
371
372
|
end
|
372
373
|
end
|
373
|
-
|
374
|
+
|
374
375
|
# NBK: we override @parent.set as we need to execute a series of commands
|
375
376
|
# to deal with array values, rather than the single command nameservice.rb
|
376
377
|
# expects to be returned by modifycmd. Thus we don't bother defining modifycmd.
|
377
|
-
|
378
|
+
|
378
379
|
def set(param, value)
|
379
380
|
self.class.validate(param, value)
|
380
381
|
current_members = @property_value_cache_hash[:members]
|
@@ -385,7 +386,7 @@ class DirectoryService < Puppet::Provider::NameService
|
|
385
386
|
if @resource[:auth_membership] and not current_members.nil?
|
386
387
|
remove_unwanted_members(current_members, value)
|
387
388
|
end
|
388
|
-
|
389
|
+
|
389
390
|
# if they're not a member, make them one.
|
390
391
|
add_members(current_members, value)
|
391
392
|
else
|
@@ -398,11 +399,11 @@ class DirectoryService < Puppet::Provider::NameService
|
|
398
399
|
begin
|
399
400
|
execute(exec_arg_vector)
|
400
401
|
rescue Puppet::ExecutionFailure => detail
|
401
|
-
|
402
|
+
fail("Could not set %s on %s[%s]: %s" % [param, @resource.class.name, @resource.name, detail])
|
402
403
|
end
|
403
404
|
end
|
404
405
|
end
|
405
|
-
|
406
|
+
|
406
407
|
# NBK: we override @parent.create as we need to execute a series of commands
|
407
408
|
# to create objects with dscl, rather than the single command nameservice.rb
|
408
409
|
# expects to be returned by addcmd. Thus we don't bother defining addcmd.
|
@@ -411,7 +412,7 @@ class DirectoryService < Puppet::Provider::NameService
|
|
411
412
|
info "already exists"
|
412
413
|
return nil
|
413
414
|
end
|
414
|
-
|
415
|
+
|
415
416
|
# NBK: First we create the object with a known guid so we can set the contents
|
416
417
|
# of the password hash if required
|
417
418
|
# Shelling out sucks, but for a single use case it doesn't seem worth
|
@@ -419,20 +420,20 @@ class DirectoryService < Puppet::Provider::NameService
|
|
419
420
|
# This should be revisited if Puppet starts managing UUIDs for other platform
|
420
421
|
# user records.
|
421
422
|
guid = %x{/usr/bin/uuidgen}.chomp
|
422
|
-
|
423
|
+
|
423
424
|
exec_arg_vector = self.class.get_exec_preamble("-create", @resource[:name])
|
424
425
|
exec_arg_vector << @@ns_to_ds_attribute_map[:guid] << guid
|
425
426
|
begin
|
426
427
|
execute(exec_arg_vector)
|
427
428
|
rescue Puppet::ExecutionFailure => detail
|
428
|
-
|
429
|
-
[@resource.class.name, @resource.name, detail]
|
429
|
+
fail("Could not set GeneratedUID for %s %s: %s" %
|
430
|
+
[@resource.class.name, @resource.name, detail])
|
430
431
|
end
|
431
|
-
|
432
|
+
|
432
433
|
if value = @resource.should(:password) and value != ""
|
433
434
|
self.class.set_password(@resource[:name], guid, value)
|
434
435
|
end
|
435
|
-
|
436
|
+
|
436
437
|
# Now we create all the standard properties
|
437
438
|
Puppet::Type.type(@resource.class.name).validproperties.each do |property|
|
438
439
|
next if property == :ensure
|
@@ -447,14 +448,14 @@ class DirectoryService < Puppet::Provider::NameService
|
|
447
448
|
begin
|
448
449
|
execute(exec_arg_vector)
|
449
450
|
rescue Puppet::ExecutionFailure => detail
|
450
|
-
|
451
|
-
[@resource.class.name, @resource.name, detail]
|
451
|
+
fail("Could not create %s %s: %s" %
|
452
|
+
[@resource.class.name, @resource.name, detail])
|
452
453
|
end
|
453
454
|
end
|
454
455
|
end
|
455
456
|
end
|
456
457
|
end
|
457
|
-
|
458
|
+
|
458
459
|
def remove_unwanted_members(current_members, new_members)
|
459
460
|
current_members.each do |member|
|
460
461
|
if not new_members.include?(member)
|
@@ -462,12 +463,12 @@ class DirectoryService < Puppet::Provider::NameService
|
|
462
463
|
begin
|
463
464
|
execute(cmd)
|
464
465
|
rescue Puppet::ExecutionFailure => detail
|
465
|
-
|
466
|
+
fail("Could not remove %s from group: %s, %s" % [member, @resource.name, detail])
|
466
467
|
end
|
467
468
|
end
|
468
469
|
end
|
469
470
|
end
|
470
|
-
|
471
|
+
|
471
472
|
def add_members(current_members, new_members)
|
472
473
|
new_members.each do |new_member|
|
473
474
|
if current_members.nil? or not current_members.include?(new_member)
|
@@ -475,51 +476,46 @@ class DirectoryService < Puppet::Provider::NameService
|
|
475
476
|
begin
|
476
477
|
execute(cmd)
|
477
478
|
rescue Puppet::ExecutionFailure => detail
|
478
|
-
|
479
|
+
fail("Could not add %s to group: %s, %s" % [new_member, @resource.name, detail])
|
479
480
|
end
|
480
481
|
end
|
481
482
|
end
|
482
483
|
end
|
483
|
-
|
484
|
+
|
484
485
|
def deletecmd
|
485
486
|
# JJM: Like addcmd, only called when deleting the object itself
|
486
487
|
# Note, this isn't used to delete properties of the object,
|
487
488
|
# at least that's how I understand it...
|
488
489
|
self.class.get_exec_preamble("-delete", @resource[:name])
|
489
490
|
end
|
490
|
-
|
491
|
+
|
491
492
|
def getinfo(refresh = false)
|
492
|
-
# JJM 2007-07-24:
|
493
|
+
# JJM 2007-07-24:
|
493
494
|
# Override the getinfo method, which is also defined in nameservice.rb
|
494
|
-
# This method returns and sets @infohash
|
495
|
-
# (NetInfo provider, user type...)
|
496
|
-
# @infohash = {:comment=>"Jeff McCune", :home=>"/Users/mccune",
|
497
|
-
# :shell=>"/bin/zsh", :password=>"********", :uid=>502, :gid=>502,
|
498
|
-
# :name=>"mccune"}
|
499
|
-
#
|
495
|
+
# This method returns and sets @infohash
|
500
496
|
# I'm not re-factoring the name "getinfo" because this method will be
|
501
497
|
# most likely called by nameservice.rb, which I didn't write.
|
502
498
|
if refresh or (! defined?(@property_value_cache_hash) or ! @property_value_cache_hash)
|
503
499
|
# JJM 2007-07-24: OK, there's a bit of magic that's about to
|
504
500
|
# happen... Let's see how strong my grip has become... =)
|
505
|
-
#
|
501
|
+
#
|
506
502
|
# self is a provider instance of some Puppet::Type, like
|
507
503
|
# Puppet::Type::User::ProviderDirectoryservice for the case of the
|
508
504
|
# user type and this provider.
|
509
|
-
#
|
505
|
+
#
|
510
506
|
# self.class looks like "user provider directoryservice", if that
|
511
507
|
# helps you ...
|
512
|
-
#
|
508
|
+
#
|
513
509
|
# self.class.resource_type is a reference to the Puppet::Type class,
|
514
510
|
# probably Puppet::Type::User or Puppet::Type::Group, etc...
|
515
|
-
#
|
511
|
+
#
|
516
512
|
# self.class.resource_type.validproperties is a class method,
|
517
513
|
# returning an Array of the valid properties of that specific
|
518
514
|
# Puppet::Type.
|
519
|
-
#
|
515
|
+
#
|
520
516
|
# So... something like [:comment, :home, :password, :shell, :uid,
|
521
517
|
# :groups, :ensure, :gid]
|
522
|
-
#
|
518
|
+
#
|
523
519
|
# Ultimately, we add :name to the list, delete :ensure from the
|
524
520
|
# list, then report on the remaining list. Pretty whacky, ehh?
|
525
521
|
type_properties = [:name] + self.class.resource_type.validproperties
|
@@ -533,4 +529,4 @@ class DirectoryService < Puppet::Provider::NameService
|
|
533
529
|
return @property_value_cache_hash
|
534
530
|
end
|
535
531
|
end
|
536
|
-
end
|
532
|
+
end
|