summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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]