summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Shafer <andrew@reductivelabs.com>2008-10-01 18:00:17 -0600
committerAndrew Shafer <andrew@reductivelabs.com>2008-10-01 19:07:55 -0600
commit2fba85af73f7a5de31cc13de64f0243df99fef1a (patch)
tree621fa26dd595a33b217bf3e0e77962ced2a9ff48
parent4a863c38ced0e2581454888b15275aa1eb381e56 (diff)
downloadpuppet-2fba85af73f7a5de31cc13de64f0243df99fef1a.tar.gz
puppet-2fba85af73f7a5de31cc13de64f0243df99fef1a.tar.xz
puppet-2fba85af73f7a5de31cc13de64f0243df99fef1a.zip
Some small clarifying refactors and change to objectadd to allow subclasses of
with a uid not need to be a single class us use modify I don't like logic about subclasses in a parent class, but not in a position to address.
-rw-r--r--lib/puppet/provider/nameservice.rb63
-rw-r--r--lib/puppet/provider/nameservice/objectadd.rb11
2 files changed, 25 insertions, 49 deletions
diff --git a/lib/puppet/provider/nameservice.rb b/lib/puppet/provider/nameservice.rb
index 9764b5cf8..c1e21af08 100644
--- a/lib/puppet/provider/nameservice.rb
+++ b/lib/puppet/provider/nameservice.rb
@@ -179,11 +179,33 @@ class Puppet::Provider::NameService < Puppet::Provider
end
def create
- self.ensure = :present
+ if exists?
+ info "already exists"
+ # The object already exists
+ return nil
+ end
+
+ begin
+ execute(self.addcmd)
+ rescue Puppet::ExecutionFailure => detail
+ raise Puppet::Error, "Could not create %s %s: %s" %
+ [@resource.class.name, @resource.name, detail]
+ end
end
def delete
- self.ensure = :absent
+ unless exists?
+ info "already absent"
+ # the object already doesn't exist
+ return nil
+ end
+
+ begin
+ execute(self.deletecmd)
+ rescue Puppet::ExecutionFailure => detail
+ raise Puppet::Error, "Could not delete %s %s: %s" %
+ [@resource.class.name, @resource.name, detail]
+ end
end
def ensure
@@ -194,43 +216,6 @@ class Puppet::Provider::NameService < Puppet::Provider
end
end
- # This is only used when creating or destroying the object.
- def ensure=(value)
- cmd = nil
- event = nil
- case value
- when :absent
- # we need to remove the object...
- unless exists?
- info "already absent"
- # the object already doesn't exist
- return nil
- end
-
- # again, needs to be set by the ind. property or its
- # parent
- cmd = self.deletecmd
- type = "delete"
- when :present
- if exists?
- info "already exists"
- # The object already exists
- return nil
- end
-
- # blah blah, define elsewhere, blah blah
- cmd = self.addcmd
- type = "create"
- end
-
- begin
- execute(cmd)
- rescue Puppet::ExecutionFailure => detail
- raise Puppet::Error, "Could not %s %s %s: %s" %
- [type, @resource.class.name, @resource.name, detail]
- end
- end
-
# Does our object exist?
def exists?
if getinfo(true)
diff --git a/lib/puppet/provider/nameservice/objectadd.rb b/lib/puppet/provider/nameservice/objectadd.rb
index b7efe8388..256368ee1 100644
--- a/lib/puppet/provider/nameservice/objectadd.rb
+++ b/lib/puppet/provider/nameservice/objectadd.rb
@@ -2,15 +2,6 @@ require 'puppet/provider/nameservice'
class Puppet::Provider::NameService
class ObjectAdd < Puppet::Provider::NameService
- # Does the object already exist?
- def self.exists?(obj)
- if obj.getinfo(true)
- return true
- else
- return false
- end
- end
-
def deletecmd
[command(:delete), @resource[:name]]
end
@@ -23,7 +14,7 @@ class ObjectAdd < Puppet::Provider::NameService
def modifycmd(param, value)
cmd = [command(:modify), flag(param), value]
- if @resource.allowdupe? && ((param == :uid and self.class.name == :useradd) || (param == :gid and self.class.name == :groupadd))
+ if @resource.allowdupe? && ((param == :uid) || (param == :gid and self.class.name == :groupadd))
cmd << "-o"
end
cmd << @resource[:name]