From: Joel Rosario <[email protected]>

Signed-off-by: James Turnbull <[email protected]>
---
Local-branch: tickets/master/6693
 lib/puppet/provider/group/groupadd_win.rb |   21 +++++++++++++++------
 lib/puppet/provider/user/useradd_win.rb   |   25 +++++++++++++++++--------
 2 files changed, 32 insertions(+), 14 deletions(-)

diff --git a/lib/puppet/provider/group/groupadd_win.rb 
b/lib/puppet/provider/group/groupadd_win.rb
index 398b076..6d15d9d 100644
--- a/lib/puppet/provider/group/groupadd_win.rb
+++ b/lib/puppet/provider/group/groupadd_win.rb
@@ -6,24 +6,33 @@ Puppet::Type.type(:group).provide :groupadd_win do
 
     has_features :manages_members
 
+    def group
+        @group = Puppet::Util::Windows::Group.new(name) unless defined?(@group)
+        @group
+    end
+    
+    def name
+        @resource[:name]
+    end
+
     def members
-        Puppet::Util::Windows::Group.new(@resource[:name]).members
+        group.members
     end
 
     def members=(members)
-        Puppet::Util::Windows::Group.new(@resource[:name]).set_members(members)
+        group.set_members(members)
     end
 
     def create
-        group = Puppet::Util::Windows::Group.create(@resource[:name])
-        group.set_members(@resource[:members])
+        @group = Puppet::Util::Windows::Group.create(name)
+        @group.set_members(@resource[:members])
     end
 
     def exists?
-        Puppet::Util::Windows::Group.exists?(@resource[:name])
+        Puppet::Util::Windows::Group.exists?(name)
     end
 
     def delete
-        Puppet::Util::Windows::Group.delete(@resource[:name])
+        Puppet::Util::Windows::Group.delete(name)
     end
 end
diff --git a/lib/puppet/provider/user/useradd_win.rb 
b/lib/puppet/provider/user/useradd_win.rb
index e839104..33e27d4 100644
--- a/lib/puppet/provider/user/useradd_win.rb
+++ b/lib/puppet/provider/user/useradd_win.rb
@@ -8,33 +8,42 @@ Puppet::Type.type(:user).provide :useradd_win do
 
     has_features :manages_passwords
 
+    def user
+        @user = Puppet::Util::Windows::User.new(name) unless defined?(@user)
+        @user
+    end
+
+    def name
+        @resource[:name]
+    end
+
     def password
-        name, password = @resource[:name], @resource[:password]
-        Puppet::Util::Windows::User.new(name).password_is?(password) ?password 
:"" rescue :absent
+        password = @resource[:password]
+        user.password_is?(password) ?password :"" rescue :absent
     end
 
     def password=(pwd)
-        Puppet::Util::Windows::User.new(@resource[:name]).password = 
@resource[:password]
+        user.password = @resource[:password]
     end
 
     def groups
-        Puppet::Util::Windows::User.new(@resource[:name]).groups.join(',') 
rescue :absent
+        user.groups.join(',') rescue :absent
     end
 
     def groups=(groups)
-        Puppet::Util::Windows::User.new(@resource[:name]).set_groups(groups)
+        user.set_groups(groups, @resource[:membership] || false)
     end
 
     def create
-        user = Puppet::Util::Windows::User.create(@resource[:name], 
@resource[:password])
+        @user = Puppet::Util::Windows::User.create(name, @resource[:password])
         user.set_groups(@resource[:groups], @resource[:membership] == :minimum)
     end
 
     def exists?
-        return Puppet::Util::Windows::User.exists?(@resource[:name])
+        return Puppet::Util::Windows::User.exists?(name)
     end
 
     def delete
-        Puppet::Util::Windows::User.delete(@resource[:name])
+        Puppet::Util::Windows::User.delete(name)
     end
 end
-- 
1.7.1

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to