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
@@ -0,0 +1,147 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Unit testing for the macauthorization provider
|
4
|
+
#
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet'
|
9
|
+
require 'facter/util/plist'
|
10
|
+
|
11
|
+
provider_class = Puppet::Type.type(:macauthorization).provider(:macauthorization)
|
12
|
+
|
13
|
+
describe provider_class do
|
14
|
+
|
15
|
+
before :each do
|
16
|
+
# Create a mock resource
|
17
|
+
@resource = stub 'resource'
|
18
|
+
|
19
|
+
@authname = "foo.spam.eggs.puppettest"
|
20
|
+
@authplist = {}
|
21
|
+
|
22
|
+
@rules = {@authname => @authplist}
|
23
|
+
|
24
|
+
authdb = {}
|
25
|
+
authdb["rules"] = { "foorule" => "foo" }
|
26
|
+
authdb["rights"] = { "fooright" => "foo" }
|
27
|
+
|
28
|
+
# Stub out Plist::parse_xml
|
29
|
+
Plist.stubs(:parse_xml).returns(authdb)
|
30
|
+
|
31
|
+
# A catch all; no parameters set
|
32
|
+
@resource.stubs(:[]).returns(nil)
|
33
|
+
|
34
|
+
# But set name, ensure
|
35
|
+
@resource.stubs(:[]).with(:name).returns @authname
|
36
|
+
@resource.stubs(:[]).with(:ensure).returns :present
|
37
|
+
@resource.stubs(:ref).returns "MacAuthorization[#{@authname}]"
|
38
|
+
|
39
|
+
@provider = provider_class.new(@resource)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should have a create method" do
|
43
|
+
@provider.should respond_to(:create)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should have a destroy method" do
|
47
|
+
@provider.should respond_to(:destroy)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should have an exists? method" do
|
51
|
+
@provider.should respond_to(:exists?)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should have a flush method" do
|
55
|
+
@provider.should respond_to(:flush)
|
56
|
+
end
|
57
|
+
|
58
|
+
properties = [ :allow_root, :authenticate_user, :auth_class, :comment,
|
59
|
+
:group, :k_of_n, :mechanisms, :rule, :session_owner,
|
60
|
+
:shared, :timeout, :tries, :auth_type ]
|
61
|
+
|
62
|
+
properties.each do |prop|
|
63
|
+
it "should have a #{prop.to_s} method" do
|
64
|
+
@provider.should respond_to(prop.to_s)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should have a #{prop.to_s}= method" do
|
68
|
+
@provider.should respond_to(prop.to_s + "=")
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe "when destroying a right" do
|
73
|
+
before :each do
|
74
|
+
@resource.stubs(:[]).with(:auth_type).returns(:right)
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should call the internal method destroy_right" do
|
78
|
+
@provider.expects(:destroy_right)
|
79
|
+
@provider.destroy
|
80
|
+
end
|
81
|
+
it "should call the external command 'security authorizationdb remove @authname" do
|
82
|
+
@provider.expects(:security).with("authorizationdb", :remove, @authname)
|
83
|
+
@provider.destroy
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "when destroying a rule" do
|
88
|
+
before :each do
|
89
|
+
@resource.stubs(:[]).with(:auth_type).returns(:rule)
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should call the internal method destroy_rule" do
|
93
|
+
@provider.expects(:destroy_rule)
|
94
|
+
@provider.destroy
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "when flushing a right" do
|
99
|
+
before :each do
|
100
|
+
@resource.stubs(:[]).with(:auth_type).returns(:right)
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should call the internal method flush_right" do
|
104
|
+
@provider.expects(:flush_right)
|
105
|
+
@provider.flush
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should call the internal method set_right" do
|
109
|
+
@provider.expects(:set_right)
|
110
|
+
@provider.flush
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should read and write to the auth database with the right arguments" do
|
114
|
+
@provider.expects(:execute).with() { |cmds, args|
|
115
|
+
cmds.include?("read") and
|
116
|
+
cmds.include?(@authname) and
|
117
|
+
args[:combine] == false
|
118
|
+
}.once
|
119
|
+
|
120
|
+
@provider.expects(:execute).with() { |cmds, args|
|
121
|
+
cmds.include?("write") and
|
122
|
+
cmds.include?(@authname) and
|
123
|
+
args[:combine] == false and
|
124
|
+
args[:stdinfile] != nil
|
125
|
+
}.once
|
126
|
+
@provider.flush
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
|
131
|
+
describe "when flushing a rule" do
|
132
|
+
before :each do
|
133
|
+
@resource.stubs(:[]).with(:auth_type).returns(:rule)
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should call the internal method flush_rule" do
|
137
|
+
@provider.expects(:flush_rule)
|
138
|
+
@provider.flush
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should call the internal method set_rule" do
|
142
|
+
@provider.expects(:set_rule)
|
143
|
+
@provider.flush
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|
@@ -0,0 +1,175 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#--
|
3
|
+
# Copyright (C) 2008 Jeffrey J McCune.
|
4
|
+
|
5
|
+
# This program and entire repository is free software; you can
|
6
|
+
# redistribute it and/or modify it under the terms of the GNU
|
7
|
+
# General Public License as published by the Free Software
|
8
|
+
# Foundation; either version 2 of the License, or any later version.
|
9
|
+
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU General Public License for more details.
|
14
|
+
|
15
|
+
# You should have received a copy of the GNU General Public License
|
16
|
+
# along with this program; if not, write to the Free Software
|
17
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
|
19
|
+
# Author: Jeff McCune <mccune.jeff@gmail.com>
|
20
|
+
|
21
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
22
|
+
|
23
|
+
provider_class = Puppet::Type.type(:mcx).provider(:mcxcontent)
|
24
|
+
|
25
|
+
# describe creates a new ExampleGroup object.
|
26
|
+
describe provider_class do
|
27
|
+
|
28
|
+
# :each executes before each test.
|
29
|
+
# :all executes once for the test group and before :each.
|
30
|
+
before :each do
|
31
|
+
# Create a mock resource
|
32
|
+
@resource = stub 'resource'
|
33
|
+
|
34
|
+
@provider = provider_class.new
|
35
|
+
@attached_to = "/Users/foobar"
|
36
|
+
@ds_path = "/Local/Default/Users/foobar"
|
37
|
+
|
38
|
+
# A catch all; no parameters set
|
39
|
+
@resource.stubs(:[]).returns(nil)
|
40
|
+
|
41
|
+
# But set name, ensure and enable
|
42
|
+
@resource.stubs(:[]).with(:name).returns @attached_to
|
43
|
+
@resource.stubs(:[]).with(:ensure).returns :present
|
44
|
+
@resource.stubs(:ref).returns "Mcx[#{@attached_to}]"
|
45
|
+
|
46
|
+
# stub out the provider methods that actually touch the filesystem
|
47
|
+
# or execute commands
|
48
|
+
@provider.class.stubs(:execute).returns('')
|
49
|
+
@provider.stubs(:execute).returns('')
|
50
|
+
@provider.stubs(:resource).returns @resource
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should have a create method." do
|
54
|
+
@provider.should respond_to(:create)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should have a destroy method." do
|
58
|
+
@provider.should respond_to(:destroy)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should have an exists? method." do
|
62
|
+
@provider.should respond_to(:exists?)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should have an content method." do
|
66
|
+
@provider.should respond_to(:content)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should have an content= method." do
|
70
|
+
@provider.should respond_to(:content=)
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "when managing the resource" do
|
74
|
+
it "should execute external command dscl from :create" do
|
75
|
+
@provider.class.expects(:dscl).returns('').once
|
76
|
+
@provider.create
|
77
|
+
end
|
78
|
+
it "should execute external command dscl from :destroy" do
|
79
|
+
@provider.class.expects(:dscl).with('localhost', '-mcxdelete', @ds_path).returns('').once
|
80
|
+
@provider.destroy
|
81
|
+
end
|
82
|
+
it "should execute external command dscl from :exists?" do
|
83
|
+
@provider.class.expects(:dscl).with('localhost', '-mcxexport', @ds_path).returns('').once
|
84
|
+
@provider.exists?
|
85
|
+
end
|
86
|
+
it "should execute external command dscl from :content" do
|
87
|
+
@provider.class.expects(:dscl).with('localhost', '-mcxexport', @ds_path).returns('')
|
88
|
+
@provider.content
|
89
|
+
end
|
90
|
+
it "should execute external command dscl from :content=" do
|
91
|
+
@provider.class.expects(:dscl).returns('')
|
92
|
+
@provider.content=''
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe "when creating and parsing the name for ds_type" do
|
97
|
+
before :each do
|
98
|
+
@resource.stubs(:[]).with(:name).returns "/Foo/bar"
|
99
|
+
end
|
100
|
+
it "should not accept /Foo/bar" do
|
101
|
+
lambda { @provider.create }.should raise_error(MCXContentProviderException)
|
102
|
+
end
|
103
|
+
it "should accept /Foo/bar with ds_type => user" do
|
104
|
+
@resource.stubs(:[]).with(:ds_type).returns "user"
|
105
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
106
|
+
end
|
107
|
+
it "should accept /Foo/bar with ds_type => group" do
|
108
|
+
@resource.stubs(:[]).with(:ds_type).returns "group"
|
109
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
110
|
+
end
|
111
|
+
it "should accept /Foo/bar with ds_type => computer" do
|
112
|
+
@resource.stubs(:[]).with(:ds_type).returns "computer"
|
113
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
114
|
+
end
|
115
|
+
it "should accept :name => /Foo/bar with ds_type => computerlist" do
|
116
|
+
@resource.stubs(:[]).with(:ds_type).returns "computerlist"
|
117
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "when creating and :name => foobar" do
|
122
|
+
before :each do
|
123
|
+
@resource.stubs(:[]).with(:name).returns "foobar"
|
124
|
+
end
|
125
|
+
it "should not accept unspecified :ds_type and :ds_name" do
|
126
|
+
lambda { @provider.create }.should raise_error(MCXContentProviderException)
|
127
|
+
end
|
128
|
+
it "should not accept unspecified :ds_type" do
|
129
|
+
@resource.stubs(:[]).with(:ds_type).returns "user"
|
130
|
+
lambda { @provider.create }.should raise_error(MCXContentProviderException)
|
131
|
+
end
|
132
|
+
it "should not accept unspecified :ds_name" do
|
133
|
+
@resource.stubs(:[]).with(:ds_name).returns "foo"
|
134
|
+
lambda { @provider.create }.should raise_error(MCXContentProviderException)
|
135
|
+
end
|
136
|
+
it "should accept :ds_type => user, ds_name => foo" do
|
137
|
+
@resource.stubs(:[]).with(:ds_type).returns "user"
|
138
|
+
@resource.stubs(:[]).with(:ds_name).returns "foo"
|
139
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
140
|
+
end
|
141
|
+
it "should accept :ds_type => group, ds_name => foo" do
|
142
|
+
@resource.stubs(:[]).with(:ds_type).returns "group"
|
143
|
+
@resource.stubs(:[]).with(:ds_name).returns "foo"
|
144
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
145
|
+
end
|
146
|
+
it "should accept :ds_type => computer, ds_name => foo" do
|
147
|
+
@resource.stubs(:[]).with(:ds_type).returns "computer"
|
148
|
+
@resource.stubs(:[]).with(:ds_name).returns "foo"
|
149
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
150
|
+
end
|
151
|
+
it "should accept :ds_type => computerlist, ds_name => foo" do
|
152
|
+
@resource.stubs(:[]).with(:ds_type).returns "computerlist"
|
153
|
+
@resource.stubs(:[]).with(:ds_name).returns "foo"
|
154
|
+
lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
|
155
|
+
end
|
156
|
+
it "should not accept :ds_type => bogustype, ds_name => foo" do
|
157
|
+
@resource.stubs(:[]).with(:ds_type).returns "bogustype"
|
158
|
+
@resource.stubs(:[]).with(:ds_name).returns "foo"
|
159
|
+
lambda { @provider.create }.should raise_error(MCXContentProviderException)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
describe "when gathering existing instances" do
|
164
|
+
it "should define an instances class method." do
|
165
|
+
@provider.class.should respond_to(:instances)
|
166
|
+
end
|
167
|
+
it "should call external command dscl -list /Local/Default/<ds_type> on each known ds_type" do
|
168
|
+
@provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/Users").returns('')
|
169
|
+
@provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/Groups").returns('')
|
170
|
+
@provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/Computers").returns('')
|
171
|
+
@provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/ComputerLists").returns('')
|
172
|
+
@provider.class.instances
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
require 'puppet/provider/mount'
|
6
|
+
|
7
|
+
describe Puppet::Provider::Mount do
|
8
|
+
before :each do
|
9
|
+
@mounter = Object.new
|
10
|
+
@mounter.extend(Puppet::Provider::Mount)
|
11
|
+
|
12
|
+
@name = "/"
|
13
|
+
|
14
|
+
@resource = stub 'resource'
|
15
|
+
@resource.stubs(:[]).with(:name).returns(@name)
|
16
|
+
|
17
|
+
@mounter.stubs(:resource).returns(@resource)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe Puppet::Provider::Mount, " when mounting" do
|
21
|
+
|
22
|
+
it "should use the 'mountcmd' method to mount" do
|
23
|
+
@mounter.stubs(:options).returns(nil)
|
24
|
+
@mounter.expects(:mountcmd)
|
25
|
+
|
26
|
+
@mounter.mount
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should flush before mounting if a flush method exists" do
|
30
|
+
@mounter.meta_def(:flush) { }
|
31
|
+
@mounter.expects(:flush)
|
32
|
+
@mounter.stubs(:mountcmd)
|
33
|
+
@mounter.stubs(:options).returns(nil)
|
34
|
+
|
35
|
+
@mounter.mount
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should add the options following '-o' if they exist and are not set to :absent" do
|
39
|
+
@mounter.stubs(:options).returns("ro")
|
40
|
+
@mounter.expects(:mountcmd).with { |*ary| ary[0] == "-o" and ary[1] == "ro" }
|
41
|
+
|
42
|
+
@mounter.mount
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should specify the filesystem name to the mount command" do
|
46
|
+
@mounter.stubs(:options).returns(nil)
|
47
|
+
@mounter.expects(:mountcmd).with { |*ary| ary[-1] == @name }
|
48
|
+
|
49
|
+
@mounter.mount
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe Puppet::Provider::Mount, " when remounting" do
|
54
|
+
|
55
|
+
it "should use '-o remount' if the resource specifies it supports remounting" do
|
56
|
+
@mounter.stubs(:info)
|
57
|
+
@resource.stubs(:[]).with(:remounts).returns(:true)
|
58
|
+
@mounter.expects(:mountcmd).with("-o", "remount", @name)
|
59
|
+
@mounter.remount
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should unmount and mount if the resource does not specify it supports remounting" do
|
63
|
+
@mounter.stubs(:info)
|
64
|
+
@resource.stubs(:[]).with(:remounts).returns(false)
|
65
|
+
@mounter.expects(:unmount)
|
66
|
+
@mounter.expects(:mount)
|
67
|
+
@mounter.remount
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should log that it is remounting" do
|
71
|
+
@resource.stubs(:[]).with(:remounts).returns(:true)
|
72
|
+
@mounter.stubs(:mountcmd)
|
73
|
+
@mounter.expects(:info).with("Remounting")
|
74
|
+
@mounter.remount
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe Puppet::Provider::Mount, " when unmounting" do
|
79
|
+
|
80
|
+
it "should call the :umount command with the resource name" do
|
81
|
+
@mounter.expects(:umount).with(@name)
|
82
|
+
@mounter.unmount
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe Puppet::Provider::Mount, " when determining if it is mounted" do
|
87
|
+
|
88
|
+
it "should parse the results of running the mount command with no arguments" do
|
89
|
+
Facter.stubs(:value).returns("whatever")
|
90
|
+
@mounter.expects(:mountcmd).returns("")
|
91
|
+
|
92
|
+
@mounter.mounted?
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should match ' on /private/var/automount<name>' if the operating system is Darwin" do
|
96
|
+
Facter.stubs(:value).with("operatingsystem").returns("Darwin")
|
97
|
+
@mounter.expects(:mountcmd).returns("/dev/whatever on /private/var/automount/\ndevfs on /dev")
|
98
|
+
|
99
|
+
@mounter.should be_mounted
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should match ' on <name>' if the operating system is Darwin" do
|
103
|
+
Facter.stubs(:value).with("operatingsystem").returns("Darwin")
|
104
|
+
@mounter.expects(:mountcmd).returns("/dev/disk03 on / (local, journaled)\ndevfs on /dev")
|
105
|
+
|
106
|
+
@mounter.should be_mounted
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should match '^<name> on' if the operating system is Solaris" do
|
110
|
+
Facter.stubs(:value).with("operatingsystem").returns("Solaris")
|
111
|
+
@mounter.expects(:mountcmd).returns("/ on /dev/dsk/whatever\n/var on /dev/dsk/other")
|
112
|
+
|
113
|
+
@mounter.should be_mounted
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should match ' on <name>' if the operating system is not Darwin or Solaris" do
|
117
|
+
Facter.stubs(:value).with("operatingsystem").returns("Debian")
|
118
|
+
@mounter.expects(:mountcmd).returns("/dev/dsk/whatever on / and stuff\n/dev/other/disk on /var and stuff")
|
119
|
+
|
120
|
+
@mounter.should be_mounted
|
121
|
+
end
|
122
|
+
|
123
|
+
it "should not be considered mounted if it did not match the mount output" do
|
124
|
+
Facter.stubs(:value).with("operatingsystem").returns("Debian")
|
125
|
+
@mounter.expects(:mountcmd).returns("/dev/dsk/whatever on /something/else and stuff\n/dev/other/disk on /var and stuff")
|
126
|
+
|
127
|
+
@mounter.should_not be_mounted
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|