puppet 0.24.5 → 0.24.6
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 +206 -0
- data/Rakefile +53 -0
- data/bin/filebucket +0 -0
- data/bin/puppet +32 -11
- data/bin/puppetca +1 -0
- data/bin/puppetd +0 -0
- data/bin/puppetdoc +0 -0
- data/bin/puppetmasterd +0 -0
- data/bin/puppetrun +16 -8
- data/bin/ralsh +0 -0
- data/conf/debian/rules +0 -0
- data/conf/gentoo/init.d/puppetmaster +0 -0
- data/conf/osx/PackageInfo.plist +36 -0
- data/conf/osx/createpackage.sh +167 -0
- data/conf/osx/preflight +12 -0
- data/conf/redhat/client.init +1 -1
- data/conf/redhat/puppet.spec +34 -6
- data/conf/redhat/server.init +42 -7
- data/conf/redhat/server.sysconfig +22 -0
- data/conf/solaris/smf/svc-puppetd +0 -0
- data/conf/solaris/smf/svc-puppetmasterd +0 -0
- data/examples/etc/init.d/sleeper +0 -0
- data/examples/mac_dscl.pp +0 -0
- data/examples/mac_dscl_revert.pp +0 -0
- data/examples/mac_netinfo.pp +0 -0
- data/examples/mac_pkgdmg.pp +0 -0
- data/ext/bin/sleeper +0 -0
- data/ext/module_puppet +0 -0
- data/ext/nagios/check_puppet.rb +0 -0
- data/ext/passenger/README +63 -0
- data/ext/passenger/apache2.conf +29 -0
- data/ext/passenger/config.ru +40 -0
- data/ext/puppet-test +0 -0
- data/ext/puppetlast +6 -31
- data/ext/puppetstoredconfigclean.rb +87 -0
- data/install.rb +75 -20
- data/lib/puppet.rb +1 -1
- data/lib/puppet/daemon.rb +0 -0
- data/lib/puppet/defaults.rb +3 -7
- data/lib/puppet/external/base64.rb +0 -0
- data/lib/puppet/external/nagios.rb +0 -0
- data/lib/puppet/external/nagios/base.rb +0 -0
- data/lib/puppet/file_serving/fileset.rb +2 -2
- data/lib/puppet/file_serving/metadata.rb +3 -3
- data/lib/puppet/indirector/facts/facter.rb +3 -2
- data/lib/puppet/indirector/yaml.rb +10 -1
- data/lib/puppet/module.rb +36 -12
- data/lib/puppet/network/authstore.rb +0 -0
- data/lib/puppet/network/client/master.rb +12 -11
- data/lib/puppet/network/handler/filebucket.rb +0 -0
- data/lib/puppet/network/handler/fileserver.rb +38 -46
- data/lib/puppet/network/handler/master.rb +1 -1
- data/lib/puppet/network/handler/report.rb +0 -0
- data/lib/puppet/network/handler/resource.rb +0 -0
- data/lib/puppet/network/handler/runner.rb +0 -0
- data/lib/puppet/network/http_server/rack.rb +148 -0
- data/lib/puppet/network/rights.rb +0 -0
- data/lib/puppet/network/xmlrpc/client.rb +5 -5
- data/lib/puppet/node.rb +5 -9
- data/lib/puppet/node/environment.rb +1 -17
- data/lib/puppet/node/facts.rb +0 -0
- data/lib/puppet/parameter.rb +1 -28
- data/lib/puppet/parser/ast.rb +6 -0
- data/lib/puppet/parser/ast/arithmetic_operator.rb +41 -0
- data/lib/puppet/parser/ast/boolean_operator.rb +48 -0
- data/lib/puppet/parser/ast/collexpr.rb +6 -1
- data/lib/puppet/parser/ast/comparison_operator.rb +37 -0
- data/lib/puppet/parser/ast/minus.rb +23 -0
- data/lib/puppet/parser/ast/nop.rb +11 -0
- data/lib/puppet/parser/ast/not.rb +19 -0
- data/lib/puppet/parser/ast/resource_override.rb +23 -16
- data/lib/puppet/parser/ast/resource_reference.rb +10 -6
- data/lib/puppet/parser/ast/vardef.rb +2 -2
- data/lib/puppet/parser/collector.rb +2 -1
- data/lib/puppet/parser/functions.rb +7 -217
- data/lib/puppet/parser/functions/defined.rb +27 -0
- data/lib/puppet/parser/functions/fail.rb +4 -0
- data/lib/puppet/parser/functions/file.rb +21 -0
- data/lib/puppet/parser/functions/fqdn_rand.rb +15 -0
- data/lib/puppet/parser/functions/generate.rb +35 -0
- data/lib/puppet/parser/functions/include.rb +26 -0
- data/lib/puppet/parser/functions/realize.rb +14 -0
- data/lib/puppet/parser/functions/search.rb +7 -0
- data/lib/puppet/parser/functions/sha1.rb +6 -0
- data/lib/puppet/parser/functions/tag.rb +6 -0
- data/lib/puppet/parser/functions/tagged.rb +18 -0
- data/lib/puppet/parser/functions/template.rb +22 -0
- data/lib/puppet/parser/lexer.rb +15 -5
- data/lib/puppet/parser/parser.rb +1073 -715
- data/lib/puppet/parser/parser_support.rb +18 -13
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/resource/param.rb +10 -2
- data/lib/puppet/parser/scope.rb +63 -5
- data/lib/puppet/parser/templatewrapper.rb +61 -15
- data/lib/puppet/property.rb +7 -1
- data/lib/puppet/property/keyvalue.rb +96 -0
- data/lib/puppet/property/list.rb +78 -0
- data/lib/puppet/provider/confine.rb +1 -1
- data/lib/puppet/provider/confine/variable.rb +10 -1
- data/lib/puppet/provider/cron/crontab.rb +0 -0
- data/lib/puppet/provider/mailalias/aliases.rb +0 -0
- data/lib/puppet/provider/maillist/mailman.rb +0 -0
- data/lib/puppet/provider/mount/parsed.rb +0 -0
- data/lib/puppet/provider/nameservice.rb +24 -39
- data/lib/puppet/provider/nameservice/directoryservice.rb +12 -3
- data/lib/puppet/provider/nameservice/netinfo.rb +12 -2
- data/lib/puppet/provider/nameservice/objectadd.rb +1 -10
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/apple.rb +0 -0
- data/lib/puppet/provider/package/apt.rb +14 -21
- data/lib/puppet/provider/package/aptitude.rb +0 -0
- data/lib/puppet/provider/package/blastwave.rb +2 -0
- data/lib/puppet/provider/package/darwinport.rb +0 -0
- data/lib/puppet/provider/package/dpkg.rb +33 -51
- data/lib/puppet/provider/package/fink.rb +1 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -0
- data/lib/puppet/provider/package/gem.rb +0 -0
- data/lib/puppet/provider/package/hpux.rb +46 -0
- data/lib/puppet/provider/package/openbsd.rb +0 -0
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +3 -1
- data/lib/puppet/provider/package/ports.rb +3 -3
- data/lib/puppet/provider/package/rpm.rb +8 -1
- data/lib/puppet/provider/package/rug.rb +2 -2
- data/lib/puppet/provider/package/sun.rb +2 -0
- data/lib/puppet/provider/package/sunfreeware.rb +3 -0
- data/lib/puppet/provider/package/yum.rb +24 -17
- data/lib/puppet/provider/package/yumhelper.py +92 -11
- data/lib/puppet/provider/parsedfile.rb +0 -0
- data/lib/puppet/provider/port/parsed.rb +0 -0
- data/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
- data/lib/puppet/provider/selmodule/semodule.rb +143 -0
- data/lib/puppet/provider/service/base.rb +0 -0
- data/lib/puppet/provider/service/daemontools.rb +154 -0
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/freebsd.rb +2 -0
- data/lib/puppet/provider/service/gentoo.rb +2 -0
- data/lib/puppet/provider/service/init.rb +0 -0
- data/lib/puppet/provider/service/redhat.rb +1 -1
- data/lib/puppet/provider/service/runit.rb +93 -0
- data/lib/puppet/provider/service/smf.rb +2 -0
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +7 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -0
- data/lib/puppet/provider/user/hpux.rb +30 -0
- data/lib/puppet/provider/user/user_role_add.rb +156 -0
- data/lib/puppet/provider/user/useradd.rb +23 -14
- data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +17 -0
- data/lib/puppet/rails/database/schema.rb +0 -8
- data/lib/puppet/rails/resource.rb +6 -6
- data/lib/puppet/reference/configuration.rb +0 -7
- data/lib/puppet/reports.rb +0 -0
- data/lib/puppet/reports/rrdgraph.rb +3 -2
- data/lib/puppet/sslcertificates.rb +0 -0
- data/lib/puppet/sslcertificates/inventory.rb +3 -2
- data/lib/puppet/sslcertificates/support.rb +3 -0
- data/lib/puppet/transaction/report.rb +1 -7
- data/lib/puppet/transportable.rb +10 -7
- data/lib/puppet/type.rb +2110 -14
- data/lib/puppet/type/cron.rb +0 -0
- data/lib/puppet/type/exec.rb +0 -0
- data/lib/puppet/type/file.rb +12 -2
- data/lib/puppet/type/file/checksum.rb +4 -0
- data/lib/puppet/type/file/content.rb +0 -0
- data/lib/puppet/type/file/ensure.rb +0 -0
- data/lib/puppet/type/file/group.rb +30 -43
- data/lib/puppet/type/file/mode.rb +0 -0
- data/lib/puppet/type/file/owner.rb +0 -0
- data/lib/puppet/type/file/selcontext.rb +104 -0
- data/lib/puppet/type/file/source.rb +0 -0
- data/lib/puppet/type/file/type.rb +0 -0
- data/lib/puppet/type/filebucket.rb +0 -0
- data/lib/puppet/type/group.rb +0 -8
- data/lib/puppet/type/host.rb +0 -0
- data/lib/puppet/type/mailalias.rb +0 -0
- data/lib/puppet/type/maillist.rb +0 -0
- data/lib/puppet/type/mount.rb +0 -0
- data/lib/puppet/type/package.rb +2 -2
- data/lib/puppet/type/port.rb +0 -0
- data/lib/puppet/type/schedule.rb +0 -0
- data/lib/puppet/type/selboolean.rb +31 -0
- data/lib/puppet/type/selmodule.rb +54 -0
- data/lib/puppet/type/ssh_authorized_key.rb +3 -3
- data/lib/puppet/type/sshkey.rb +0 -0
- data/lib/puppet/type/tidy.rb +0 -0
- data/lib/puppet/type/user.rb +153 -137
- data/lib/puppet/type/yumrepo.rb +18 -2
- data/lib/puppet/type/zone.rb +5 -1
- data/lib/puppet/util.rb +7 -7
- data/lib/puppet/util/filetype.rb +7 -0
- data/lib/puppet/util/instance_loader.rb +0 -0
- data/lib/puppet/util/ldap/connection.rb +11 -1
- data/lib/puppet/util/ldap/manager.rb +1 -1
- data/lib/puppet/util/loadedfile.rb +0 -0
- data/lib/puppet/util/log.rb +42 -43
- data/lib/puppet/util/metric.rb +23 -9
- data/lib/puppet/util/posix.rb +69 -18
- data/lib/puppet/util/selinux.rb +139 -0
- data/lib/puppet/util/settings.rb +5 -7
- data/lib/puppet/util/user_attr.rb +21 -0
- data/test/certmgr/ca.rb +0 -0
- data/test/certmgr/certmgr.rb +0 -0
- data/test/certmgr/inventory.rb +0 -0
- data/test/certmgr/support.rb +0 -0
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys1 +3 -0
- data/test/data/snippets/append.pp +11 -0
- data/test/data/snippets/arithmetic_expression.pp +8 -0
- data/test/data/snippets/arraytrailingcomma.pp +3 -0
- data/test/data/snippets/emptyifelse.pp +9 -0
- data/test/data/snippets/funccomma.pp +5 -0
- data/test/data/snippets/ifexpression.rb +6 -0
- data/test/data/snippets/subclass_name_duplication.pp +0 -0
- data/test/executables/filebucket.rb +0 -0
- data/test/executables/puppetbin.rb +0 -0
- data/test/executables/puppetca.rb +0 -0
- data/test/executables/puppetd.rb +0 -0
- data/test/executables/puppetmasterd.rb +0 -0
- data/test/executables/puppetmodule.rb +0 -0
- data/test/language/ast.rb +0 -0
- data/test/language/ast/casestatement.rb +0 -0
- data/test/language/ast/resource.rb +0 -0
- data/test/language/ast/resource_reference.rb +0 -28
- data/test/language/ast/selector.rb +0 -0
- data/test/language/ast/variable.rb +0 -0
- data/test/language/functions.rb +91 -12
- data/test/language/parser.rb +21 -0
- data/test/language/resource.rb +0 -0
- data/test/language/scope.rb +28 -0
- data/test/language/snippets.rb +14 -0
- data/test/language/transportable.rb +0 -0
- data/test/lib/puppettest.rb +0 -0
- data/test/lib/puppettest/reporttesting.rb +0 -2
- data/test/lib/puppettest/runnable_test.rb +2 -0
- data/test/lib/puppettest/support/resources.rb +0 -0
- data/test/network/authconfig.rb +0 -0
- data/test/network/authorization.rb +0 -0
- data/test/network/authstore.rb +0 -0
- data/test/network/client/ca.rb +0 -0
- data/test/network/client/client.rb +0 -0
- data/test/network/client/dipper.rb +0 -0
- data/test/network/client/master.rb +2 -6
- data/test/network/client/resource.rb +0 -0
- data/test/network/client_request.rb +0 -0
- data/test/network/daemon.rb +0 -0
- data/test/network/handler/bucket.rb +0 -0
- data/test/network/handler/ca.rb +0 -0
- data/test/network/handler/fileserver.rb +8 -0
- data/test/network/handler/handler.rb +0 -0
- data/test/network/handler/master.rb +3 -1
- data/test/network/handler/report.rb +0 -0
- data/test/network/handler/resource.rb +0 -0
- data/test/network/handler/runner.rb +0 -0
- data/test/network/rights.rb +0 -0
- data/test/network/server/mongrel_test.rb +0 -0
- data/test/network/server/webrick.rb +0 -0
- data/test/network/xmlrpc/client.rb +0 -0
- data/test/network/xmlrpc/processor.rb +0 -0
- data/test/network/xmlrpc/server.rb +0 -0
- data/test/network/xmlrpc/webrick_servlet.rb +0 -0
- data/test/other/dsl.rb +0 -0
- data/test/other/events.rb +0 -0
- data/test/other/overrides.rb +0 -0
- data/test/other/provider.rb +0 -0
- data/test/other/puppet.rb +0 -0
- data/test/other/relationships.rb +0 -0
- data/test/other/report.rb +2 -4
- data/test/other/transactions.rb +1 -1
- data/test/puppet/conffiles.rb +0 -0
- data/test/puppet/defaults.rb +0 -0
- data/test/puppet/errortest.rb +0 -0
- data/test/puppet/tc_suidmanager.rb +0 -0
- data/test/rails/ast.rb +0 -0
- data/test/rails/configuration.rb +0 -0
- data/test/rails/host.rb +0 -0
- data/test/rails/rails.rb +0 -0
- data/test/rails/railsparameter.rb +0 -0
- data/test/rails/railsresource.rb +0 -0
- data/test/ral/manager/attributes.rb +0 -0
- data/test/ral/manager/instances.rb +0 -0
- data/test/ral/manager/manager.rb +0 -0
- data/test/ral/manager/provider.rb +0 -0
- data/test/ral/manager/type.rb +0 -0
- data/test/ral/providers/cron/crontab.rb +0 -0
- data/test/ral/providers/group.rb +14 -13
- data/test/ral/providers/host/netinfo.rb +0 -0
- data/test/ral/providers/host/parsed.rb +0 -0
- data/test/ral/providers/mailalias/aliases.rb +0 -0
- data/test/ral/providers/mount/netinfo.rb +0 -0
- data/test/ral/providers/nameservice.rb +0 -0
- data/test/ral/providers/package.rb +0 -31
- data/test/ral/providers/package/aptitude.rb +1 -2
- data/test/ral/providers/package/aptrpm.rb +2 -2
- data/test/ral/providers/parsedfile.rb +0 -0
- data/test/ral/providers/port/parsed.rb +0 -0
- data/test/ral/providers/provider.rb +0 -0
- data/test/ral/providers/service/base.rb +0 -0
- data/test/ral/providers/service/debian.rb +0 -0
- data/test/ral/providers/sshkey/parsed.rb +0 -0
- data/test/ral/providers/user.rb +8 -8
- data/test/ral/providers/user/useradd.rb +0 -0
- data/test/ral/type/basic.rb +0 -0
- data/test/ral/type/cron.rb +0 -0
- data/test/ral/type/exec.rb +0 -0
- data/test/ral/type/file.rb +0 -0
- data/test/ral/type/file/target.rb +0 -0
- data/test/ral/type/filebucket.rb +0 -0
- data/test/ral/type/fileignoresource.rb +0 -0
- data/test/ral/type/filesources.rb +1 -3
- data/test/ral/type/group.rb +0 -0
- data/test/ral/type/host.rb +0 -0
- data/test/ral/type/mailalias.rb +1 -2
- data/test/ral/type/parameter.rb +0 -0
- data/test/ral/type/port.rb +0 -0
- data/test/ral/type/property.rb +0 -0
- data/test/ral/type/resources.rb +0 -0
- data/test/ral/type/service.rb +0 -0
- data/test/ral/type/sshkey.rb +0 -0
- data/test/ral/type/tidy.rb +0 -0
- data/test/ral/type/user.rb +0 -50
- data/test/ral/type/yumrepo.rb +7 -1
- data/test/ral/type/zone.rb +0 -0
- data/test/test +0 -0
- data/test/util/autoload.rb +0 -0
- data/test/util/classgen.rb +0 -0
- data/test/util/execution.rb +0 -0
- data/test/util/features.rb +0 -0
- data/test/util/fileparsing.rb +0 -0
- data/test/util/filetype.rb +0 -0
- data/test/util/inifile.rb +0 -0
- data/test/util/instance_loader.rb +0 -0
- data/test/util/log.rb +0 -59
- data/test/util/metrics.rb +0 -0
- data/test/util/package.rb +0 -0
- data/test/util/pidlock.rb +0 -0
- data/test/util/settings.rb +0 -0
- data/test/util/storage.rb +0 -0
- data/test/util/subclass_loader.rb +0 -0
- data/test/util/utiltest.rb +0 -0
- metadata +54 -19
- data/lib/puppet/metatype/attributes.rb +0 -685
- data/lib/puppet/metatype/closure.rb +0 -49
- data/lib/puppet/metatype/container.rb +0 -50
- data/lib/puppet/metatype/evaluation.rb +0 -163
- data/lib/puppet/metatype/instances.rb +0 -305
- data/lib/puppet/metatype/metaparams.rb +0 -423
- data/lib/puppet/metatype/providers.rb +0 -247
- data/lib/puppet/metatype/relationships.rb +0 -115
- data/lib/puppet/metatype/schedules.rb +0 -33
- data/lib/puppet/metatype/tags.rb +0 -38
- data/lib/puppet/util/plist.rb +0 -23
- data/lib/puppet/util/plist/generator.rb +0 -225
- data/lib/puppet/util/plist/parser.rb +0 -226
- data/test/ral/providers/package/apt.rb +0 -169
- data/test/ral/providers/package/dpkg.rb +0 -64
- data/test/util/posixtest.rb +0 -169
data/lib/puppet/type/sshkey.rb
CHANGED
File without changes
|
data/lib/puppet/type/tidy.rb
CHANGED
File without changes
|
data/lib/puppet/type/user.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'etc'
|
2
2
|
require 'facter'
|
3
|
+
require 'puppet/property/list'
|
4
|
+
require 'puppet/property/keyvalue'
|
3
5
|
|
4
6
|
module Puppet
|
5
7
|
newtype(:user) do
|
@@ -21,6 +23,9 @@ module Puppet
|
|
21
23
|
"The provider can modify user passwords, by accepting a password
|
22
24
|
hash."
|
23
25
|
|
26
|
+
feature :manages_solaris_rbac,
|
27
|
+
"The provider can manage roles and normal users"
|
28
|
+
|
24
29
|
newproperty(:ensure, :parent => Puppet::Property::Ensure) do
|
25
30
|
newvalue(:present, :event => :user_created) do
|
26
31
|
provider.create
|
@@ -30,6 +35,10 @@ module Puppet
|
|
30
35
|
provider.delete
|
31
36
|
end
|
32
37
|
|
38
|
+
newvalue(:role, :event => :role_created, :required_features => :manages_solaris_rbac) do
|
39
|
+
provider.create_role
|
40
|
+
end
|
41
|
+
|
33
42
|
desc "The basic state that the object should be in."
|
34
43
|
|
35
44
|
# If they're talking about the thing at all, they generally want to
|
@@ -44,30 +53,15 @@ module Puppet
|
|
44
53
|
|
45
54
|
def retrieve
|
46
55
|
if provider.exists?
|
47
|
-
|
56
|
+
if provider.respond_to?(:is_role?) and provider.is_role?
|
57
|
+
return :role
|
58
|
+
else
|
59
|
+
return :present
|
60
|
+
end
|
48
61
|
else
|
49
62
|
return :absent
|
50
63
|
end
|
51
64
|
end
|
52
|
-
|
53
|
-
# The default 'sync' method only selects among a list of registered
|
54
|
-
# values.
|
55
|
-
def sync
|
56
|
-
# if self.insync?
|
57
|
-
# self.info "already in sync"
|
58
|
-
# return nil
|
59
|
-
#else
|
60
|
-
#self.info "%s vs %s" % [self.is.inspect, self.should.inspect]
|
61
|
-
# end
|
62
|
-
unless self.class.values
|
63
|
-
self.devfail "No values defined for %s" %
|
64
|
-
self.class.name
|
65
|
-
end
|
66
|
-
|
67
|
-
# Set ourselves to whatever our should value is.
|
68
|
-
self.set(self.should)
|
69
|
-
end
|
70
|
-
|
71
65
|
end
|
72
66
|
|
73
67
|
newproperty(:uid) do
|
@@ -95,50 +89,26 @@ module Puppet
|
|
95
89
|
newproperty(:gid) do
|
96
90
|
desc "The user's primary group. Can be specified numerically or
|
97
91
|
by name."
|
98
|
-
|
99
|
-
def found?
|
100
|
-
defined? @found and @found
|
101
|
-
end
|
102
92
|
|
103
|
-
munge do |
|
104
|
-
|
105
|
-
|
106
|
-
when String
|
107
|
-
if gid =~ /^[-0-9]+$/
|
108
|
-
gid = Integer(gid)
|
109
|
-
else
|
110
|
-
method = :getgrnam
|
111
|
-
end
|
112
|
-
when Symbol
|
113
|
-
unless gid == :auto or gid == :absent
|
114
|
-
self.devfail "Invalid GID %s" % gid
|
115
|
-
end
|
116
|
-
# these are treated specially by sync()
|
117
|
-
return gid
|
118
|
-
end
|
119
|
-
|
120
|
-
if group = Puppet::Util.gid(gid)
|
121
|
-
@found = true
|
122
|
-
return group
|
93
|
+
munge do |value|
|
94
|
+
if value.is_a?(String) and value =~ /^[-0-9]+$/
|
95
|
+
Integer(value)
|
123
96
|
else
|
124
|
-
|
125
|
-
return gid
|
97
|
+
value
|
126
98
|
end
|
127
99
|
end
|
128
100
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
next unless val
|
138
|
-
Puppet::Util.gid(val)
|
139
|
-
}
|
101
|
+
def sync
|
102
|
+
found = false
|
103
|
+
@should.each do |value|
|
104
|
+
if number = Puppet::Util.gid(value)
|
105
|
+
provider.gid = number
|
106
|
+
found = true
|
107
|
+
break
|
108
|
+
end
|
140
109
|
end
|
141
|
-
|
110
|
+
|
111
|
+
fail "Could not find group(s) %s" % @should.join(",") unless found
|
142
112
|
end
|
143
113
|
end
|
144
114
|
|
@@ -158,63 +128,21 @@ module Puppet
|
|
158
128
|
|
159
129
|
newproperty(:password, :required_features => :manages_passwords) do
|
160
130
|
desc "The user's password, in whatever encrypted format the local machine requires. Be sure to enclose any value that includes a dollar sign ($) in single quotes (\')."
|
161
|
-
end
|
162
|
-
|
163
|
-
newproperty(:groups) do
|
164
|
-
desc "The groups of which the user is a member. The primary
|
165
|
-
group should not be listed. Multiple groups should be
|
166
|
-
specified as an array."
|
167
|
-
|
168
|
-
def should_to_s(newvalue)
|
169
|
-
self.should
|
170
|
-
end
|
171
|
-
|
172
|
-
def is_to_s(currentvalue)
|
173
|
-
currentvalue.join(",")
|
174
|
-
end
|
175
131
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
current_value = retrieve
|
180
|
-
|
181
|
-
unless defined? @should and @should
|
182
|
-
return nil
|
183
|
-
end
|
184
|
-
|
185
|
-
if @resource[:membership] == :inclusive
|
186
|
-
return @should.sort.join(",")
|
132
|
+
def change_to_s(currentvalue, newvalue)
|
133
|
+
if currentvalue == :absent
|
134
|
+
return "created password"
|
187
135
|
else
|
188
|
-
|
189
|
-
if current_value.is_a?(Array)
|
190
|
-
members += current_value
|
191
|
-
end
|
192
|
-
return members.uniq.sort.join(",")
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
def retrieve
|
197
|
-
if tmp = provider.groups and tmp != :absent
|
198
|
-
return tmp.split(",")
|
199
|
-
else
|
200
|
-
return :absent
|
136
|
+
return "changed password"
|
201
137
|
end
|
202
138
|
end
|
139
|
+
end
|
203
140
|
|
204
|
-
def insync?(is)
|
205
|
-
unless defined? @should and @should
|
206
|
-
return true
|
207
|
-
end
|
208
|
-
unless defined? is and is
|
209
|
-
return true
|
210
|
-
end
|
211
|
-
tmp = is
|
212
|
-
if is.is_a? Array
|
213
|
-
tmp = is.sort.join(",")
|
214
|
-
end
|
215
141
|
|
216
|
-
|
217
|
-
|
142
|
+
newproperty(:groups, :parent => Puppet::Property::List) do
|
143
|
+
desc "The groups of which the user is a member. The primary
|
144
|
+
group should not be listed. Multiple groups should be
|
145
|
+
specified as an array."
|
218
146
|
|
219
147
|
validate do |value|
|
220
148
|
if value =~ /^\d+$/
|
@@ -226,29 +154,6 @@ module Puppet
|
|
226
154
|
end
|
227
155
|
end
|
228
156
|
|
229
|
-
# these three properties are all implemented differently on each platform,
|
230
|
-
# so i'm disabling them for now
|
231
|
-
|
232
|
-
# FIXME Puppet::Property::UserLocked is currently non-functional
|
233
|
-
#newproperty(:locked) do
|
234
|
-
# desc "The expected return code. An error will be returned if the
|
235
|
-
# executed command returns something else."
|
236
|
-
#end
|
237
|
-
|
238
|
-
# FIXME Puppet::Property::UserExpire is currently non-functional
|
239
|
-
#newproperty(:expire) do
|
240
|
-
# desc "The expected return code. An error will be returned if the
|
241
|
-
# executed command returns something else."
|
242
|
-
# @objectaddflag = "-e"
|
243
|
-
#end
|
244
|
-
|
245
|
-
# FIXME Puppet::Property::UserInactive is currently non-functional
|
246
|
-
#newproperty(:inactive) do
|
247
|
-
# desc "The expected return code. An error will be returned if the
|
248
|
-
# executed command returns something else."
|
249
|
-
# @objectaddflag = "-f"
|
250
|
-
#end
|
251
|
-
|
252
157
|
newparam(:name) do
|
253
158
|
desc "User name. While limitations are determined for
|
254
159
|
each operating system, it is generally a good idea to keep to
|
@@ -260,7 +165,7 @@ module Puppet
|
|
260
165
|
desc "Whether specified groups should be treated as the only groups
|
261
166
|
of which the user is a member or whether they should merely
|
262
167
|
be treated as the minimum membership list."
|
263
|
-
|
168
|
+
|
264
169
|
newvalues(:inclusive, :minimum)
|
265
170
|
|
266
171
|
defaultto :minimum
|
@@ -268,7 +173,7 @@ module Puppet
|
|
268
173
|
|
269
174
|
newparam(:allowdupe, :boolean => true) do
|
270
175
|
desc "Whether to allow duplicate UIDs."
|
271
|
-
|
176
|
+
|
272
177
|
newvalues(:true, :false)
|
273
178
|
|
274
179
|
defaultto false
|
@@ -309,7 +214,7 @@ module Puppet
|
|
309
214
|
gobj.should(:gid) == group
|
310
215
|
}
|
311
216
|
autos << obj
|
312
|
-
|
217
|
+
|
313
218
|
end
|
314
219
|
else
|
315
220
|
autos << group
|
@@ -330,7 +235,7 @@ module Puppet
|
|
330
235
|
current_value = :absent
|
331
236
|
|
332
237
|
if absent
|
333
|
-
|
238
|
+
prophash[property] = :absent
|
334
239
|
else
|
335
240
|
current_value = property.retrieve
|
336
241
|
prophash[property] = current_value
|
@@ -338,11 +243,122 @@ module Puppet
|
|
338
243
|
|
339
244
|
if property.name == :ensure and current_value == :absent
|
340
245
|
absent = true
|
341
|
-
# next
|
342
246
|
end
|
343
247
|
prophash
|
344
248
|
}
|
345
249
|
end
|
250
|
+
|
251
|
+
newproperty(:roles, :parent => Puppet::Property::List, :required_features => :manages_solaris_rbac) do
|
252
|
+
desc "The roles the user has. Multiple roles should be
|
253
|
+
specified as an array."
|
254
|
+
|
255
|
+
def membership
|
256
|
+
:role_membership
|
257
|
+
end
|
258
|
+
|
259
|
+
validate do |value|
|
260
|
+
if value =~ /^\d+$/
|
261
|
+
raise ArgumentError, "Role names must be provided, not numbers"
|
262
|
+
end
|
263
|
+
if value.include?(",")
|
264
|
+
raise ArgumentError, "Role names must be provided as an array, not a comma-separated list"
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
newparam(:role_membership) do
|
270
|
+
desc "Whether specified roles should be treated as the only roles
|
271
|
+
of which the user is a member or whether they should merely
|
272
|
+
be treated as the minimum membership list."
|
273
|
+
|
274
|
+
newvalues(:inclusive, :minimum)
|
275
|
+
|
276
|
+
defaultto :minimum
|
277
|
+
end
|
278
|
+
|
279
|
+
newproperty(:auths, :parent => Puppet::Property::List, :required_features => :manages_solaris_rbac) do
|
280
|
+
desc "The auths the user has. Multiple auths should be
|
281
|
+
specified as an array."
|
282
|
+
|
283
|
+
def membership
|
284
|
+
:auth_membership
|
285
|
+
end
|
286
|
+
|
287
|
+
validate do |value|
|
288
|
+
if value =~ /^\d+$/
|
289
|
+
raise ArgumentError, "Auth names must be provided, not numbers"
|
290
|
+
end
|
291
|
+
if value.include?(",")
|
292
|
+
raise ArgumentError, "Auth names must be provided as an array, not a comma-separated list"
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
newparam(:auth_membership) do
|
298
|
+
desc "Whether specified auths should be treated as the only auths
|
299
|
+
of which the user is a member or whether they should merely
|
300
|
+
be treated as the minimum membership list."
|
301
|
+
|
302
|
+
newvalues(:inclusive, :minimum)
|
303
|
+
|
304
|
+
defaultto :minimum
|
305
|
+
end
|
306
|
+
|
307
|
+
newproperty(:profiles, :parent => Puppet::Property::List, :required_features => :manages_solaris_rbac) do
|
308
|
+
desc "The profiles the user has. Multiple profiles should be
|
309
|
+
specified as an array."
|
310
|
+
|
311
|
+
def membership
|
312
|
+
:profile_membership
|
313
|
+
end
|
314
|
+
|
315
|
+
validate do |value|
|
316
|
+
if value =~ /^\d+$/
|
317
|
+
raise ArgumentError, "Profile names must be provided, not numbers"
|
318
|
+
end
|
319
|
+
if value.include?(",")
|
320
|
+
raise ArgumentError, "Profile names must be provided as an array, not a comma-separated list"
|
321
|
+
end
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
325
|
+
newparam(:profile_membership) do
|
326
|
+
desc "Whether specified roles should be treated as the only roles
|
327
|
+
of which the user is a member or whether they should merely
|
328
|
+
be treated as the minimum membership list."
|
329
|
+
|
330
|
+
newvalues(:inclusive, :minimum)
|
331
|
+
|
332
|
+
defaultto :minimum
|
333
|
+
end
|
334
|
+
|
335
|
+
newproperty(:keys, :parent => Puppet::Property::KeyValue, :required_features => :manages_solaris_rbac) do
|
336
|
+
desc "Specify user attributes in an array of keyvalue pairs"
|
337
|
+
|
338
|
+
def membership
|
339
|
+
:key_membership
|
340
|
+
end
|
341
|
+
|
342
|
+
validate do |value|
|
343
|
+
unless value.include?("=")
|
344
|
+
raise ArgumentError, "key value pairs must be seperated by an ="
|
345
|
+
end
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
newparam(:key_membership) do
|
350
|
+
desc "Whether specified key value pairs should be treated as the only attributes
|
351
|
+
of the user or whether they should merely
|
352
|
+
be treated as the minimum list."
|
353
|
+
|
354
|
+
newvalues(:inclusive, :minimum)
|
355
|
+
|
356
|
+
defaultto :minimum
|
357
|
+
end
|
358
|
+
|
359
|
+
newproperty(:project, :required_features => :manages_solaris_rbac) do
|
360
|
+
desc "The name of the project associated with a user"
|
361
|
+
end
|
346
362
|
end
|
347
363
|
end
|
348
364
|
|
data/lib/puppet/type/yumrepo.rb
CHANGED
@@ -346,7 +346,23 @@ module Puppet
|
|
346
346
|
newvalue(%r{[1-9][0-9]?}) { }
|
347
347
|
end
|
348
348
|
|
349
|
-
|
350
|
-
|
349
|
+
newproperty(:proxy, :parent => Puppet::IniProperty) do
|
350
|
+
desc "URL to the proxy server for this repository.\n#{ABSENT_DOC}"
|
351
|
+
newvalue(:absent) { self.should = :absent }
|
352
|
+
# Should really check that it's a valid URL
|
353
|
+
newvalue(/.*/) { }
|
354
|
+
end
|
355
|
+
|
356
|
+
newproperty(:proxy_username, :parent => Puppet::IniProperty) do
|
357
|
+
desc "Username for this proxy.\n#{ABSENT_DOC}"
|
358
|
+
newvalue(:absent) { self.should = :absent }
|
359
|
+
newvalue(/.*/) { }
|
360
|
+
end
|
361
|
+
|
362
|
+
newproperty(:proxy_password, :parent => Puppet::IniProperty) do
|
363
|
+
desc "Password for this proxy.\n#{ABSENT_DOC}"
|
364
|
+
newvalue(:absent) { self.should = :absent }
|
365
|
+
newvalue(/.*/) { }
|
366
|
+
end
|
351
367
|
end
|
352
368
|
end
|
data/lib/puppet/type/zone.rb
CHANGED
@@ -377,7 +377,11 @@ end
|
|
377
377
|
result = setstatus(hash)
|
378
378
|
result
|
379
379
|
else
|
380
|
-
|
380
|
+
# Return all properties as absent.
|
381
|
+
return properties().inject({}) do | prophash, property|
|
382
|
+
prophash[property] = :absent
|
383
|
+
prophash
|
384
|
+
end
|
381
385
|
end
|
382
386
|
end
|
383
387
|
|
data/lib/puppet/util.rb
CHANGED
@@ -220,19 +220,18 @@ module Util
|
|
220
220
|
|
221
221
|
def binary(bin)
|
222
222
|
if bin =~ /^\//
|
223
|
-
if FileTest.
|
223
|
+
if FileTest.file? bin and FileTest.executable? bin
|
224
224
|
return bin
|
225
225
|
else
|
226
226
|
return nil
|
227
227
|
end
|
228
228
|
else
|
229
|
-
|
230
|
-
x
|
231
|
-
|
232
|
-
|
233
|
-
|
229
|
+
x = %x{which #{bin} 2>/dev/null}.chomp
|
230
|
+
if x == ""
|
231
|
+
return nil
|
232
|
+
else
|
233
|
+
return x
|
234
234
|
end
|
235
|
-
return nil
|
236
235
|
end
|
237
236
|
end
|
238
237
|
module_function :binary
|
@@ -321,6 +320,7 @@ module Util
|
|
321
320
|
$stdin.reopen("/dev/null")
|
322
321
|
$stdout.reopen(output_file)
|
323
322
|
$stderr.reopen(output_file)
|
323
|
+
3.upto(256){|fd| IO::new(fd).close rescue nil}
|
324
324
|
if arguments[:gid]
|
325
325
|
Process.egid = arguments[:gid]
|
326
326
|
Process.gid = arguments[:gid] unless @@os == "Darwin"
|