puppet 0.24.6 → 0.24.7
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 +115 -0
- data/Rakefile +43 -14
- data/bin/puppetca +6 -5
- data/bin/puppetdoc +109 -15
- data/bin/ralsh +3 -1
- data/conf/redhat/puppet.spec +74 -48
- data/examples/mcx_dock_absent.pp +4 -0
- data/examples/mcx_dock_default.pp +118 -0
- data/examples/mcx_dock_full.pp +125 -0
- data/examples/mcx_dock_invalid.pp +9 -0
- data/examples/mcx_nogroup.pp +118 -0
- data/examples/mcx_notexists_absent.pp +4 -0
- data/ext/emacs/puppet-mode.el +1 -1
- data/lib/puppet.rb +1 -1
- data/lib/puppet/external/nagios/base.rb +114 -71
- data/lib/puppet/feature/base.rb +6 -0
- data/lib/puppet/indirector/yaml.rb +12 -3
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/network/client/master.rb +1 -1
- data/lib/puppet/network/xmlrpc/client.rb +3 -1
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +15 -0
- data/lib/puppet/parser/ast/astarray.rb +1 -2
- data/lib/puppet/parser/ast/casestatement.rb +2 -0
- data/lib/puppet/parser/ast/collection.rb +2 -0
- data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
- data/lib/puppet/parser/ast/definition.rb +2 -0
- data/lib/puppet/parser/ast/else.rb +3 -0
- data/lib/puppet/parser/ast/function.rb +19 -12
- data/lib/puppet/parser/ast/hostclass.rb +9 -1
- data/lib/puppet/parser/ast/ifstatement.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +3 -0
- data/lib/puppet/parser/ast/resource.rb +3 -0
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
- data/lib/puppet/parser/ast/resource_override.rb +3 -0
- data/lib/puppet/parser/ast/vardef.rb +3 -0
- data/lib/puppet/parser/functions.rb +14 -0
- data/lib/puppet/parser/functions/inline_template.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +3 -2
- data/lib/puppet/parser/lexer.rb +56 -7
- data/lib/puppet/parser/parser.rb +114 -98
- data/lib/puppet/parser/parser_support.rb +24 -4
- data/lib/puppet/parser/resource/reference.rb +4 -3
- data/lib/puppet/parser/templatewrapper.rb +30 -22
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/list.rb +7 -2
- data/lib/puppet/property/ordered_list.rb +22 -0
- data/lib/puppet/provider/augeas/augeas.rb +189 -0
- data/lib/puppet/provider/computer/computer.rb +22 -0
- data/lib/puppet/provider/confine.rb +4 -1
- data/lib/puppet/provider/confine/variable.rb +13 -2
- data/lib/puppet/provider/confine_collection.rb +4 -1
- data/lib/puppet/provider/confiner.rb +1 -1
- data/lib/puppet/provider/group/directoryservice.rb +6 -3
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/group/ldap.rb +11 -9
- data/lib/puppet/provider/group/netinfo.rb +8 -4
- data/lib/puppet/provider/group/pw.rb +5 -1
- data/lib/puppet/provider/host/netinfo.rb +5 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
- data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
- data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -3
- data/lib/puppet/provider/package/apt.rb +6 -0
- data/lib/puppet/provider/package/rpm.rb +2 -0
- data/lib/puppet/provider/package/yum.rb +5 -1
- data/lib/puppet/provider/package/yumhelper.py +9 -0
- data/lib/puppet/provider/service/base.rb +9 -6
- data/lib/puppet/provider/service/daemontools.rb +25 -15
- data/lib/puppet/provider/service/debian.rb +6 -2
- data/lib/puppet/provider/service/freebsd.rb +5 -2
- data/lib/puppet/provider/service/gentoo.rb +6 -3
- data/lib/puppet/provider/service/init.rb +31 -21
- data/lib/puppet/provider/service/launchd.rb +195 -0
- data/lib/puppet/provider/service/redhat.rb +5 -2
- data/lib/puppet/provider/service/runit.rb +30 -20
- data/lib/puppet/provider/service/smf.rb +7 -4
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/netinfo.rb +9 -3
- data/lib/puppet/provider/user/user_role_add.rb +43 -6
- data/lib/puppet/provider/zfs/solaris.rb +45 -0
- data/lib/puppet/provider/zone/solaris.rb +8 -4
- data/lib/puppet/provider/zpool/solaris.rb +116 -0
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/lib/puppet/rails/database/schema.rb +1 -0
- data/lib/puppet/rails/host.rb +4 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +15 -6
- data/lib/puppet/transaction/change.rb +3 -5
- data/lib/puppet/transportable.rb +1 -0
- data/lib/puppet/type/augeas.rb +155 -0
- data/lib/puppet/type/computer.rb +62 -0
- data/lib/puppet/type/exec.rb +2 -1
- data/lib/puppet/type/file.rb +1 -1
- data/lib/puppet/type/file/ensure.rb +8 -5
- data/lib/puppet/type/file/mode.rb +0 -14
- data/lib/puppet/type/file/owner.rb +32 -64
- data/lib/puppet/type/file/selcontext.rb +3 -8
- data/lib/puppet/type/group.rb +27 -45
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +141 -0
- data/lib/puppet/type/mcx.rb +115 -0
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/lib/puppet/type/ssh_authorized_key.rb +16 -0
- data/lib/puppet/type/tidy.rb +43 -14
- data/lib/puppet/type/user.rb +25 -1
- data/lib/puppet/type/zfs.rb +51 -0
- data/lib/puppet/type/zone.rb +8 -0
- data/lib/puppet/type/zpool.rb +93 -0
- data/lib/puppet/util.rb +17 -38
- data/lib/puppet/util/file_locking.rb +44 -0
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/log.rb +1 -16
- data/lib/puppet/util/metric.rb +0 -5
- data/lib/puppet/util/rdoc.rb +85 -0
- data/lib/puppet/util/rdoc/code_objects.rb +219 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
- data/lib/puppet/util/rdoc/parser.rb +437 -0
- data/lib/puppet/util/selinux.rb +135 -63
- data/lib/puppet/util/settings.rb +136 -126
- data/lib/puppet/util/storage.rb +4 -2
- data/spec/Rakefile +91 -0
- data/spec/integration/checksum.rb +47 -0
- data/spec/integration/defaults.rb +47 -0
- data/spec/integration/file_serving/configuration.rb +43 -0
- data/spec/integration/file_serving/content.rb +18 -0
- data/spec/integration/file_serving/metadata.rb +18 -0
- data/spec/integration/indirector/direct_file_server.rb +80 -0
- data/spec/integration/indirector/file_content/file_server.rb +18 -0
- data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
- data/spec/integration/indirector/module_files.rb +57 -0
- data/spec/integration/indirector/node/ldap.rb +15 -0
- data/spec/integration/indirector/rest.rb +464 -0
- data/spec/integration/network/server/mongrel.rb +48 -0
- data/spec/integration/network/server/webrick.rb +48 -0
- data/spec/integration/node.rb +93 -0
- data/spec/integration/node/catalog.rb +54 -0
- data/spec/integration/node/facts.rb +45 -0
- data/spec/integration/provider/package.rb +26 -0
- data/spec/integration/provider/service/init.rb +32 -0
- data/spec/integration/reference/providers.rb +17 -0
- data/spec/integration/reports.rb +14 -0
- data/spec/integration/transaction/report.rb +26 -0
- data/spec/integration/type/package.rb +22 -0
- data/spec/integration/util/file_locking.rb +36 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
- data/spec/monkey_patches/alias_should_to_must.rb +5 -0
- data/spec/shared_behaviours/file_server_terminus.rb +42 -0
- data/spec/shared_behaviours/file_serving.rb +64 -0
- data/spec/shared_behaviours/memory_terminus.rb +32 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/unit/executables/client/certhandler.rb +122 -0
- data/spec/unit/file_serving/configuration.rb +224 -0
- data/spec/unit/file_serving/configuration/parser.rb +135 -0
- data/spec/unit/file_serving/content.rb +71 -0
- data/spec/unit/file_serving/file_base.rb +124 -0
- data/spec/unit/file_serving/fileset.rb +239 -0
- data/spec/unit/file_serving/indirection_hooks.rb +124 -0
- data/spec/unit/file_serving/metadata.rb +187 -0
- data/spec/unit/file_serving/mount.rb +143 -0
- data/spec/unit/file_serving/terminus_helper.rb +76 -0
- data/spec/unit/indirector.rb +152 -0
- data/spec/unit/indirector/catalog/compiler.rb +156 -0
- data/spec/unit/indirector/catalog/yaml.rb +25 -0
- data/spec/unit/indirector/checksum/file.rb +139 -0
- data/spec/unit/indirector/code.rb +33 -0
- data/spec/unit/indirector/direct_file_server.rb +89 -0
- data/spec/unit/indirector/envelope.rb +47 -0
- data/spec/unit/indirector/exec.rb +51 -0
- data/spec/unit/indirector/facts/facter.rb +76 -0
- data/spec/unit/indirector/facts/yaml.rb +26 -0
- data/spec/unit/indirector/file.rb +154 -0
- data/spec/unit/indirector/file_content/file.rb +18 -0
- data/spec/unit/indirector/file_content/file_server.rb +18 -0
- data/spec/unit/indirector/file_content/modules.rb +18 -0
- data/spec/unit/indirector/file_content/rest.rb +11 -0
- data/spec/unit/indirector/file_metadata/file.rb +52 -0
- data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
- data/spec/unit/indirector/file_metadata/modules.rb +42 -0
- data/spec/unit/indirector/file_metadata/rest.rb +9 -0
- data/spec/unit/indirector/file_server.rb +184 -0
- data/spec/unit/indirector/indirection.rb +731 -0
- data/spec/unit/indirector/ldap.rb +143 -0
- data/spec/unit/indirector/memory.rb +29 -0
- data/spec/unit/indirector/module_files.rb +259 -0
- data/spec/unit/indirector/node/exec.rb +69 -0
- data/spec/unit/indirector/node/ldap.rb +424 -0
- data/spec/unit/indirector/node/memory.rb +19 -0
- data/spec/unit/indirector/node/plain.rb +19 -0
- data/spec/unit/indirector/node/rest.rb +13 -0
- data/spec/unit/indirector/node/yaml.rb +25 -0
- data/spec/unit/indirector/plain.rb +29 -0
- data/spec/unit/indirector/report/processor.rb +81 -0
- data/spec/unit/indirector/request.rb +87 -0
- data/spec/unit/indirector/rest.rb +372 -0
- data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
- data/spec/unit/indirector/terminus.rb +245 -0
- data/spec/unit/indirector/yaml.rb +145 -0
- data/spec/unit/module.rb +247 -0
- data/spec/unit/network/client.rb +45 -0
- data/spec/unit/network/client/master.rb +442 -0
- data/spec/unit/network/handler/fileserver.rb +179 -0
- data/spec/unit/network/http.rb +35 -0
- data/spec/unit/network/http/mongrel.rb +117 -0
- data/spec/unit/network/http/mongrel/rest.rb +377 -0
- data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
- data/spec/unit/network/http/webrick.rb +127 -0
- data/spec/unit/network/http/webrick/rest.rb +323 -0
- data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
- data/spec/unit/network/http_pool.rb +238 -0
- data/spec/unit/network/server.rb +316 -0
- data/spec/unit/network/xmlrpc/client.rb +13 -0
- data/spec/unit/node.rb +167 -0
- data/spec/unit/node/catalog.rb +864 -0
- data/spec/unit/node/environment.rb +37 -0
- data/spec/unit/node/facts.rb +44 -0
- data/spec/unit/other/checksum.rb +92 -0
- data/spec/unit/other/pgraph.rb +210 -0
- data/spec/unit/other/transaction.rb +33 -0
- data/spec/unit/other/transbucket.rb +172 -0
- data/spec/unit/other/transobject.rb +92 -0
- data/spec/unit/parameter.rb +24 -0
- data/spec/unit/parser/ast.rb +37 -0
- data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
- data/spec/unit/parser/ast/astarray.rb +66 -0
- data/spec/unit/parser/ast/boolean_operator.rb +53 -0
- data/spec/unit/parser/ast/collexpr.rb +92 -0
- data/spec/unit/parser/ast/comparison_operator.rb +92 -0
- data/spec/unit/parser/ast/definition.rb +195 -0
- data/spec/unit/parser/ast/function.rb +77 -0
- data/spec/unit/parser/ast/hostclass.rb +148 -0
- data/spec/unit/parser/ast/minus.rb +36 -0
- data/spec/unit/parser/ast/node.rb +125 -0
- data/spec/unit/parser/ast/nop.rb +20 -0
- data/spec/unit/parser/ast/not.rb +30 -0
- data/spec/unit/parser/ast/resource_override.rb +51 -0
- data/spec/unit/parser/ast/resource_reference.rb +63 -0
- data/spec/unit/parser/ast/vardef.rb +47 -0
- data/spec/unit/parser/collector.rb +426 -0
- data/spec/unit/parser/compiler.rb +561 -0
- data/spec/unit/parser/functions.rb +83 -0
- data/spec/unit/parser/functions/inline_template.rb +59 -0
- data/spec/unit/parser/functions/template.rb +62 -0
- data/spec/unit/parser/interpreter.rb +138 -0
- data/spec/unit/parser/lexer.rb +646 -0
- data/spec/unit/parser/parser.rb +228 -0
- data/spec/unit/parser/resource.rb +336 -0
- data/spec/unit/parser/resource/reference.rb +95 -0
- data/spec/unit/parser/scope.rb +87 -0
- data/spec/unit/parser/templatewrapper.rb +129 -0
- data/spec/unit/property.rb +35 -0
- data/spec/unit/property/keyvalue.rb +168 -0
- data/spec/unit/property/list.rb +156 -0
- data/spec/unit/property/ordered_list.rb +64 -0
- data/spec/unit/provider/augeas/augeas.rb +238 -0
- data/spec/unit/provider/confine.rb +78 -0
- data/spec/unit/provider/confine/exists.rb +81 -0
- data/spec/unit/provider/confine/false.rb +53 -0
- data/spec/unit/provider/confine/feature.rb +60 -0
- data/spec/unit/provider/confine/true.rb +53 -0
- data/spec/unit/provider/confine/variable.rb +107 -0
- data/spec/unit/provider/confine_collection.rb +134 -0
- data/spec/unit/provider/confiner.rb +63 -0
- data/spec/unit/provider/group/groupadd.rb +31 -0
- data/spec/unit/provider/group/ldap.rb +105 -0
- data/spec/unit/provider/ldap.rb +248 -0
- data/spec/unit/provider/macauthorization.rb +147 -0
- data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
- data/spec/unit/provider/mount.rb +130 -0
- data/spec/unit/provider/mount/parsed.rb +185 -0
- data/spec/unit/provider/package/apt.rb +138 -0
- data/spec/unit/provider/package/dpkg.rb +163 -0
- data/spec/unit/provider/package/gem.rb +87 -0
- data/spec/unit/provider/package/hpux.rb +52 -0
- data/spec/unit/provider/selboolean.rb +37 -0
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule.rb +66 -0
- data/spec/unit/provider/service/daemontools.rb +124 -0
- data/spec/unit/provider/service/launchd.rb +134 -0
- data/spec/unit/provider/service/runit.rb +117 -0
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
- data/spec/unit/provider/user/hpux.rb +25 -0
- data/spec/unit/provider/user/ldap.rb +279 -0
- data/spec/unit/provider/user/user_role_add.rb +249 -0
- data/spec/unit/provider/user/useradd.rb +115 -0
- data/spec/unit/provider/zfs/solaris.rb +87 -0
- data/spec/unit/provider/zone/solaris.rb +42 -0
- data/spec/unit/provider/zpool/solaris.rb +179 -0
- data/spec/unit/rails.rb +125 -0
- data/spec/unit/relationship.rb +149 -0
- data/spec/unit/reports.rb +61 -0
- data/spec/unit/resource_reference.rb +73 -0
- data/spec/unit/simple_graph.rb +280 -0
- data/spec/unit/transaction/change.rb +187 -0
- data/spec/unit/transaction/event.rb +25 -0
- data/spec/unit/transaction/report.rb +40 -0
- data/spec/unit/type.rb +64 -0
- data/spec/unit/type/augeas.rb +113 -0
- data/spec/unit/type/computer.rb +82 -0
- data/spec/unit/type/exec.rb +91 -0
- data/spec/unit/type/file.rb +155 -0
- data/spec/unit/type/file/ensure.rb +21 -0
- data/spec/unit/type/file/group.rb +118 -0
- data/spec/unit/type/file/owner.rb +132 -0
- data/spec/unit/type/file/selinux.rb +82 -0
- data/spec/unit/type/group.rb +40 -0
- data/spec/unit/type/macauthorization.rb +78 -0
- data/spec/unit/type/mcx.rb +108 -0
- data/spec/unit/type/mount.rb +219 -0
- data/spec/unit/type/nagios.rb +63 -0
- data/spec/unit/type/noop_metaparam.rb +38 -0
- data/spec/unit/type/package.rb +246 -0
- data/spec/unit/type/resources.rb +27 -0
- data/spec/unit/type/schedule.rb +339 -0
- data/spec/unit/type/selboolean.rb +47 -0
- data/spec/unit/type/selmodule.rb +18 -0
- data/spec/unit/type/service.rb +254 -0
- data/spec/unit/type/ssh_authorized_key.rb +106 -0
- data/spec/unit/type/tidy.rb +68 -0
- data/spec/unit/type/user.rb +260 -0
- data/spec/unit/type/zfs.rb +45 -0
- data/spec/unit/type/zone.rb +20 -0
- data/spec/unit/type/zpool.rb +110 -0
- data/spec/unit/util/checksums.rb +99 -0
- data/spec/unit/util/constant_inflector.rb +70 -0
- data/spec/unit/util/file_locking.rb +115 -0
- data/spec/unit/util/ldap/connection.rb +169 -0
- data/spec/unit/util/ldap/generator.rb +54 -0
- data/spec/unit/util/ldap/manager.rb +654 -0
- data/spec/unit/util/loadedfile.rb +65 -0
- data/spec/unit/util/log.rb +107 -0
- data/spec/unit/util/metric.rb +95 -0
- data/spec/unit/util/nagios_maker.rb +128 -0
- data/spec/unit/util/posix.rb +256 -0
- data/spec/unit/util/resource_template.rb +58 -0
- data/spec/unit/util/selinux.rb +219 -0
- data/spec/unit/util/settings.rb +847 -0
- data/spec/unit/util/storage.rb +248 -0
- data/spec/unit/util/tagging.rb +92 -0
- data/spec/unit/util/uri_helper.rb +41 -0
- data/spec/unit/util/user_attr.rb +47 -0
- data/spec/unit/util/warnings.rb +35 -0
- data/test/certmgr/support.rb +0 -6
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
- data/test/data/snippets/multilinecomments.pp +6 -0
- data/test/data/snippets/multipleclass.pp +9 -0
- data/test/language/functions.rb +11 -1
- data/test/language/snippets.rb +16 -0
- data/test/lib/puppettest/runnable_test.rb +1 -1
- data/test/network/handler/fileserver.rb +5 -0
- data/test/other/report.rb +0 -4
- data/test/ral/type/resources.rb +2 -19
- data/test/util/settings.rb +4 -4
- data/test/util/storage.rb +0 -24
- data/test/util/utiltest.rb +0 -33
- metadata +319 -26
- data/conf/debian/README.source +0 -2
- data/conf/debian/TODO.Debian +0 -1
- data/conf/debian/changelog +0 -257
- data/conf/debian/compat +0 -1
- data/conf/debian/control +0 -45
- data/conf/debian/copyright +0 -17
- data/conf/debian/docs +0 -1
- data/conf/debian/fileserver.conf +0 -12
- data/conf/debian/puppet.NEWS +0 -63
- data/conf/debian/puppet.conf +0 -8
- data/conf/debian/puppet.dirs +0 -7
- data/conf/debian/puppet.files +0 -6
- data/conf/debian/puppet.init +0 -64
- data/conf/debian/puppet.logrotate +0 -11
- data/conf/debian/puppet.postinst +0 -9
- data/conf/debian/puppet.postrm +0 -21
- data/conf/debian/puppet.preinst +0 -25
- data/conf/debian/puppetmaster.files +0 -4
- data/conf/debian/puppetmaster.init +0 -58
- data/conf/debian/rules +0 -115
- data/conf/debian/watch +0 -2
- data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -1,8 +1,11 @@
|
|
1
1
|
# Manage Red Hat services. Start/stop uses /sbin/service and enable/disable uses chkconfig
|
2
2
|
|
3
3
|
Puppet::Type.type(:service).provide :redhat, :parent => :init do
|
4
|
-
desc "Red Hat's (and probably many others) form of ``init``-style service
|
5
|
-
|
4
|
+
desc "Red Hat's (and probably many others) form of ``init``-style service management:
|
5
|
+
|
6
|
+
Uses ``chkconfig`` for service enabling and disabling.
|
7
|
+
|
8
|
+
"
|
6
9
|
|
7
10
|
commands :chkconfig => "/sbin/chkconfig", :service => "/sbin/service"
|
8
11
|
|
@@ -2,26 +2,36 @@
|
|
2
2
|
#
|
3
3
|
# author Brice Figureau <brice-puppet@daysofwonder.com>
|
4
4
|
Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
|
5
|
-
desc "Runit service management.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
5
|
+
desc """Runit service management.
|
6
|
+
|
7
|
+
This provider manages daemons running supervised by Runit.
|
8
|
+
It tries to detect the service directory, with by order of preference:
|
9
|
+
|
10
|
+
* /service
|
11
|
+
* /var/service
|
12
|
+
* /etc/service
|
13
|
+
|
14
|
+
The daemon directory should be placed in a directory that can be
|
15
|
+
by default in:
|
16
|
+
|
17
|
+
* /etc/sv
|
18
|
+
|
19
|
+
or this can be overriden in the service resource parameters::
|
20
|
+
|
21
|
+
service {
|
22
|
+
\"myservice\":
|
23
|
+
provider => \"runit\", path => \"/path/to/daemons\";
|
24
|
+
}
|
25
|
+
|
26
|
+
This provider supports out of the box:
|
27
|
+
|
28
|
+
* start/stop
|
29
|
+
* enable/disable
|
30
|
+
* restart
|
31
|
+
* status
|
32
|
+
|
33
|
+
|
34
|
+
"""
|
25
35
|
|
26
36
|
commands :sv => "/usr/bin/sv"
|
27
37
|
|
@@ -1,9 +1,12 @@
|
|
1
1
|
# Solaris 10 SMF-style services.
|
2
2
|
Puppet::Type.type(:service).provide :smf, :parent => :base do
|
3
|
-
desc "Support for Sun's new Service Management Framework.
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
desc "Support for Sun's new Service Management Framework.
|
4
|
+
|
5
|
+
Starting a service is effectively equivalent to enabling it, so there is
|
6
|
+
only support for starting and stopping services, which also enables and
|
7
|
+
disables them, respectively.
|
8
|
+
|
9
|
+
"
|
7
10
|
|
8
11
|
defaultfor :operatingsystem => :solaris
|
9
12
|
|
@@ -19,7 +19,7 @@ Puppet::Type.type(:ssh_authorized_key).provide(:parsed,
|
|
19
19
|
if record[:options].nil?
|
20
20
|
record[:options] = [:absent]
|
21
21
|
else
|
22
|
-
record[:options] = record[:options]
|
22
|
+
record[:options] = Puppet::Type::Ssh_authorized_key::ProviderParsed.parse_options(record[:options])
|
23
23
|
end
|
24
24
|
},
|
25
25
|
:pre_gen => proc { |record|
|
@@ -71,5 +71,25 @@ Puppet::Type.type(:ssh_authorized_key).provide(:parsed,
|
|
71
71
|
File.chown(Puppet::Util.uid(user), nil, @property_hash[:target])
|
72
72
|
end
|
73
73
|
end
|
74
|
+
|
75
|
+
# parse sshv2 option strings, wich is a comma separated list of
|
76
|
+
# either key="values" elements or bare-word elements
|
77
|
+
def self.parse_options(options)
|
78
|
+
result = []
|
79
|
+
scanner = StringScanner.new(options)
|
80
|
+
while !scanner.eos?
|
81
|
+
scanner.skip(/[ \t]*/)
|
82
|
+
# scan a long option
|
83
|
+
if out = scanner.scan(/[-a-z0-9A-Z_]+=\".*?\"/) or out = scanner.scan(/[-a-z0-9A-Z_]+/)
|
84
|
+
result << out
|
85
|
+
else
|
86
|
+
# found an unscannable token, let's abort
|
87
|
+
break
|
88
|
+
end
|
89
|
+
# eat a comma
|
90
|
+
scanner.skip(/[ \t]*,[ \t]*/)
|
91
|
+
end
|
92
|
+
result
|
93
|
+
end
|
74
94
|
end
|
75
95
|
|
@@ -19,6 +19,7 @@ Puppet::Type.type(:user).provide :directoryservice, :parent => Puppet::Provider:
|
|
19
19
|
|
20
20
|
commands :dscl => "/usr/bin/dscl"
|
21
21
|
confine :operatingsystem => :darwin
|
22
|
+
defaultfor :operatingsystem => :darwin
|
22
23
|
|
23
24
|
# JJM: DirectoryService can manage passwords.
|
24
25
|
# This needs to be a special option to dscl though (-passwd)
|
@@ -1,5 +1,8 @@
|
|
1
|
-
# Manage NetInfo POSIX objects.
|
2
|
-
#
|
1
|
+
# Manage NetInfo POSIX objects.
|
2
|
+
#
|
3
|
+
# This provider has been deprecated. You should be using the directoryservice
|
4
|
+
# nameservice provider instead.
|
5
|
+
|
3
6
|
require 'puppet/provider/nameservice/netinfo'
|
4
7
|
|
5
8
|
Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameService::NetInfo do
|
@@ -15,7 +18,6 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
15
18
|
options :comment, :key => "realname"
|
16
19
|
options :password, :key => "passwd"
|
17
20
|
|
18
|
-
defaultfor :operatingsystem => :darwin
|
19
21
|
|
20
22
|
autogen_defaults :home => "/var/empty", :shell => "/usr/bin/false", :password => '********'
|
21
23
|
|
@@ -36,6 +38,8 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
36
38
|
# The list of all groups the user is a member of. Different
|
37
39
|
# user mgmt systems will need to override this method.
|
38
40
|
def groups
|
41
|
+
warnonce "The NetInfo provider is deprecated; use directoryservice instead"
|
42
|
+
|
39
43
|
groups = []
|
40
44
|
|
41
45
|
user = @resource[:name]
|
@@ -59,6 +63,8 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
|
|
59
63
|
# This is really lame. We have to iterate over each
|
60
64
|
# of the groups and add us to them.
|
61
65
|
def groups=(groups)
|
66
|
+
warnonce "The NetInfo provider is deprecated; use directoryservice instead"
|
67
|
+
|
62
68
|
case groups
|
63
69
|
when Fixnum:
|
64
70
|
groups = [groups.to_s]
|
@@ -22,17 +22,15 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd do
|
|
22
22
|
value !~ /\s/
|
23
23
|
end
|
24
24
|
|
25
|
-
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac
|
26
|
-
|
27
|
-
if Puppet.features.libshadow?
|
28
|
-
has_feature :manages_passwords
|
29
|
-
end
|
25
|
+
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_passwords
|
30
26
|
|
31
27
|
#must override this to hand the keyvalue pairs
|
32
28
|
def add_properties
|
33
29
|
cmd = []
|
34
30
|
Puppet::Type.type(:user).validproperties.each do |property|
|
35
|
-
|
31
|
+
#skip the password because we can't create it with the solaris useradd
|
32
|
+
next if [:ensure, :password].include?(property)
|
33
|
+
# 1680 Now you can set the hashed passwords on solaris:lib/puppet/provider/user/user_role_add.rb
|
36
34
|
# the value needs to be quoted, mostly because -c might
|
37
35
|
# have spaces in it
|
38
36
|
if value = @resource.should(property) and value != ""
|
@@ -87,6 +85,10 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd do
|
|
87
85
|
else
|
88
86
|
run(addcmd, "create")
|
89
87
|
end
|
88
|
+
# added to handle case when password is specified
|
89
|
+
if @resource[:password]
|
90
|
+
self.password = @resource[:password]
|
91
|
+
end
|
90
92
|
end
|
91
93
|
|
92
94
|
def destroy
|
@@ -152,5 +154,40 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd do
|
|
152
154
|
def keys=(keys_hash)
|
153
155
|
run([command(:modify)] + build_keys_cmd(keys_hash) << @resource[:name], "modify attribute key pairs")
|
154
156
|
end
|
157
|
+
|
158
|
+
#Read in /etc/shadow, find the line for this user (skipping comments, because who knows) and return the hashed pw (the second entry)
|
159
|
+
#No abstraction, all esoteric knowledge of file formats, yay
|
160
|
+
def password
|
161
|
+
#got perl?
|
162
|
+
if ary = File.readlines("/etc/shadow").reject { |r| r =~ /^[^\w]/}.collect { |l| l.split(':')[0..1] }.find { |user, passwd| user == @resource[:name] }
|
163
|
+
pass = ary[1]
|
164
|
+
end
|
165
|
+
pass
|
166
|
+
end
|
167
|
+
|
168
|
+
#Read in /etc/shadow, find the line for our used and rewrite it with the new pw
|
169
|
+
#Smooth like 80 grit
|
170
|
+
def password=(cryptopw)
|
171
|
+
begin
|
172
|
+
File.open("/etc/shadow", "r") do |shadow|
|
173
|
+
File.open("/etc/shadow_tmp", "w", 0600) do |shadow_tmp|
|
174
|
+
while line = shadow.gets do
|
175
|
+
line_arr = line.split(':')
|
176
|
+
if line_arr[0] == @resource[:name]
|
177
|
+
line_arr[1] = cryptopw
|
178
|
+
line = line_arr.join(':')
|
179
|
+
end
|
180
|
+
shadow_tmp.print line
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
File.rename("/etc/shadow_tmp", "/etc/shadow")
|
185
|
+
rescue => detail
|
186
|
+
fail "Could not write temporary shadow file: %s" % detail
|
187
|
+
ensure
|
188
|
+
# Make sure this *always* gets deleted
|
189
|
+
File.unlink("/etc/shadow_tmp") if File.exist?("/etc/shadow_tmp")
|
190
|
+
end
|
191
|
+
end
|
155
192
|
end
|
156
193
|
|
@@ -0,0 +1,45 @@
|
|
1
|
+
Puppet::Type.type(:zfs).provide(:solaris) do
|
2
|
+
desc "Provider for Solaris zfs."
|
3
|
+
|
4
|
+
commands :zfs => "/usr/sbin/zfs"
|
5
|
+
defaultfor :operatingsystem => :solaris
|
6
|
+
|
7
|
+
def add_properties
|
8
|
+
properties = []
|
9
|
+
Puppet::Type.type(:zfs).validproperties.each do |property|
|
10
|
+
next if property == :ensure
|
11
|
+
if value = @resource[property] and value != ""
|
12
|
+
properties << "-o" << "#{property}=#{value}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
properties
|
16
|
+
end
|
17
|
+
|
18
|
+
def create
|
19
|
+
zfs *([:create] + add_properties + [@resource[:name]])
|
20
|
+
end
|
21
|
+
|
22
|
+
def delete
|
23
|
+
zfs(:destroy, @resource[:name])
|
24
|
+
end
|
25
|
+
|
26
|
+
def exists?
|
27
|
+
if zfs(:list).split("\n").detect { |line| line.split("\s")[0] == @resource[:name] }
|
28
|
+
true
|
29
|
+
else
|
30
|
+
false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
[:mountpoint, :compression, :copies, :quota, :reservation, :sharenfs, :snapdir].each do |field|
|
35
|
+
define_method(field) do
|
36
|
+
zfs(:get, "-H", "-o", "value", field, @resource[:name]).strip
|
37
|
+
end
|
38
|
+
|
39
|
+
define_method(field.to_s + "=") do |should|
|
40
|
+
zfs(:set, "#{field}=#{should}", @resource[:name])
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
@@ -12,6 +12,7 @@ Puppet::Type.type(:zone).provide(:solaris) do
|
|
12
12
|
|
13
13
|
properties = {}
|
14
14
|
line.split(":").each_with_index { |value, index|
|
15
|
+
next unless fields[index]
|
15
16
|
properties[fields[index]] = value
|
16
17
|
}
|
17
18
|
|
@@ -35,9 +36,8 @@ Puppet::Type.type(:zone).provide(:solaris) do
|
|
35
36
|
# Perform all of our configuration steps.
|
36
37
|
def configure
|
37
38
|
# If the thing is entirely absent, then we need to create the config.
|
38
|
-
|
39
|
-
|
40
|
-
} % @resource[:path]
|
39
|
+
# Is there someway to get this on one line?
|
40
|
+
str = "create -b #{@resource[:create_args]}\nset zonepath=%s\n" % @resource[:path]
|
41
41
|
|
42
42
|
# Then perform all of our configuration steps. It's annoying
|
43
43
|
# that we need this much internal info on the resource.
|
@@ -65,7 +65,11 @@ set zonepath=%s
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def install
|
68
|
-
|
68
|
+
if @resource[:install_args]
|
69
|
+
zoneadm :install, @resource[:install_args].split(" ")
|
70
|
+
else
|
71
|
+
zoneadm :install
|
72
|
+
end
|
69
73
|
end
|
70
74
|
|
71
75
|
# Look up the current status.
|
@@ -0,0 +1,116 @@
|
|
1
|
+
Puppet::Type.type(:zpool).provide(:solaris) do
|
2
|
+
desc "Provider for Solaris zpool."
|
3
|
+
|
4
|
+
commands :zpool => "/usr/sbin/zpool"
|
5
|
+
defaultfor :operatingsystem => :solaris
|
6
|
+
|
7
|
+
def process_zpool_data(pool_array)
|
8
|
+
if pool_array == []
|
9
|
+
return Hash.new(:absent)
|
10
|
+
end
|
11
|
+
#get the name and get rid of it
|
12
|
+
pool = Hash.new
|
13
|
+
pool[:pool] = pool_array[0]
|
14
|
+
pool_array.shift
|
15
|
+
|
16
|
+
tmp = []
|
17
|
+
|
18
|
+
#order matters here :(
|
19
|
+
pool_array.reverse.each do |value|
|
20
|
+
sym = nil
|
21
|
+
case value
|
22
|
+
when "spares": sym = :spare
|
23
|
+
when "logs": sym = :log
|
24
|
+
when "mirror", "raidz1", "raidz2":
|
25
|
+
sym = value == "mirror" ? :mirror : :raidz
|
26
|
+
pool[:raid_parity] = "raidz2" if value == "raidz2"
|
27
|
+
else
|
28
|
+
tmp << value
|
29
|
+
sym = :disk if value == pool_array.first
|
30
|
+
end
|
31
|
+
|
32
|
+
if sym
|
33
|
+
pool[sym] = pool[sym] ? pool[sym].unshift(tmp.reverse.join(' ')) : [tmp.reverse.join(' ')]
|
34
|
+
tmp.clear
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
pool
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_pool_data
|
42
|
+
#this is all voodoo dependent on the output from zpool
|
43
|
+
zpool_data = %x{ zpool status #{@resource[:pool]}}.split("\n").select { |line| line.index("\t") == 0 }.collect { |l| l.strip.split("\s")[0] }
|
44
|
+
zpool_data.shift
|
45
|
+
zpool_data
|
46
|
+
end
|
47
|
+
|
48
|
+
def current_pool
|
49
|
+
unless (defined?(@current_pool) and @current_pool)
|
50
|
+
@current_pool = process_zpool_data(get_pool_data)
|
51
|
+
end
|
52
|
+
@current_pool
|
53
|
+
end
|
54
|
+
|
55
|
+
def flush
|
56
|
+
@current_pool= nil
|
57
|
+
end
|
58
|
+
|
59
|
+
#Adds log and spare
|
60
|
+
def build_named(name)
|
61
|
+
if prop = @resource[name.intern]
|
62
|
+
[name] + prop.collect { |p| p.split(' ') }.flatten
|
63
|
+
else
|
64
|
+
[]
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
#query for parity and set the right string
|
69
|
+
def raidzarity
|
70
|
+
@resource[:raid_parity] ? @resource[:raid_parity] : "raidz1"
|
71
|
+
end
|
72
|
+
|
73
|
+
#handle mirror or raid
|
74
|
+
def handle_multi_arrays(prefix, array)
|
75
|
+
array.collect{ |a| [prefix] + a.split(' ') }.flatten
|
76
|
+
end
|
77
|
+
|
78
|
+
#builds up the vdevs for create command
|
79
|
+
def build_vdevs
|
80
|
+
if disk = @resource[:disk]
|
81
|
+
disk.collect { |d| d.split(' ') }.flatten
|
82
|
+
elsif mirror = @resource[:mirror]
|
83
|
+
handle_multi_arrays("mirror", mirror)
|
84
|
+
elsif raidz = @resource[:raidz]
|
85
|
+
handle_multi_arrays(raidzarity, raidz)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def create
|
90
|
+
zpool(*([:create, @resource[:pool]] + build_vdevs + build_named("spare") + build_named("log")))
|
91
|
+
end
|
92
|
+
|
93
|
+
def delete
|
94
|
+
zpool :destroy, @resource[:pool]
|
95
|
+
end
|
96
|
+
|
97
|
+
def exists?
|
98
|
+
if current_pool[:pool] == :absent
|
99
|
+
false
|
100
|
+
else
|
101
|
+
true
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
[:disk, :mirror, :raidz, :log, :spare].each do |field|
|
106
|
+
define_method(field) do
|
107
|
+
current_pool[field]
|
108
|
+
end
|
109
|
+
|
110
|
+
define_method(field.to_s + "=") do |should|
|
111
|
+
Puppet.warning "NO CHANGES BEING MADE: zpool %s does not match, should be '%s' currently is '%s'" % [field, should, current_pool[field]]
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|