diff options
author | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-07-29 13:20:08 -0700 |
---|---|---|
committer | Jay Mundrawala <jdmundrawala@gmail.com> | 2015-07-29 13:20:08 -0700 |
commit | ed8410999f190de51e082c4c4f5a8a8e2704f7e2 (patch) | |
tree | 68e7526806cacaf9fa92ac0b480f4e40af59bf7b | |
parent | 7982fa19f67fb15b29ed8559ea81b5e19bc91380 (diff) | |
download | chef-ed8410999f190de51e082c4c4f5a8a8e2704f7e2.tar.gz |
Rewrite NetLocalGroupDel to use FFI
-rw-r--r-- | lib/chef/util/windows/net_group.rb | 7 | ||||
-rw-r--r-- | lib/chef/win32/api/net.rb | 6 | ||||
-rw-r--r-- | lib/chef/win32/net.rb | 10 |
3 files changed, 20 insertions, 3 deletions
diff --git a/lib/chef/util/windows/net_group.rb b/lib/chef/util/windows/net_group.rb index 24ee29257c..9e7d3cbc36 100644 --- a/lib/chef/util/windows/net_group.rb +++ b/lib/chef/util/windows/net_group.rb @@ -101,9 +101,10 @@ class Chef::Util::Windows::NetGroup < Chef::Util::Windows end
def local_delete
- rc = NetLocalGroupDel.call(nil, @name)
- if rc != NERR_Success
- raise ArgumentError, get_last_error(rc)
+ begin
+ Chef::ReservedNames::Win32::NetUser::net_local_group_del(nil, @groupname)
+ rescue Chef::Exceptions::Win32APIError => e
+ raise ArgumentError, e
end
end
end
diff --git a/lib/chef/win32/api/net.rb b/lib/chef/win32/api/net.rb index d2a05523ed..66059fc3eb 100644 --- a/lib/chef/win32/api/net.rb +++ b/lib/chef/win32/api/net.rb @@ -148,6 +148,12 @@ class Chef #); safe_attach_function :NetLocalGroupAdd, [ :LPCWSTR, :DWORD, :LPBYTE, :LPDWORD], :DWORD +#NET_API_STATUS NetLocalGroupDel( + #_In_ LPCWSTR servername, + #_In_ LPCWSTR groupname +#); + safe_attach_function :NetLocalGroupDel, [ :LPCWSTR, :LPCWSTR], :DWORD + # NET_API_STATUS NetUserEnum( # _In_ LPCWSTR servername, # _In_ DWORD level, diff --git a/lib/chef/win32/net.rb b/lib/chef/win32/net.rb index ce6b64e255..29a2bb2244 100644 --- a/lib/chef/win32/net.rb +++ b/lib/chef/win32/net.rb @@ -119,6 +119,16 @@ END end end + def self.net_local_group_del(server_name, group_name) + server_name = wstring(server_name) + group_name = wstring(group_name) + + rc = NetLocalGroupDel(server_name, group_name) + if rc != NERR_Success + net_api_error!(rc) + end + end + def self.net_user_add_l3(server_name, args) buf = default_user_info_3 |