diff options
Diffstat (limited to 'lib/chef/win32')
-rw-r--r-- | lib/chef/win32/api/error.rb | 1 | ||||
-rw-r--r-- | lib/chef/win32/api/net.rb | 10 | ||||
-rw-r--r-- | lib/chef/win32/error.rb | 18 | ||||
-rw-r--r-- | lib/chef/win32/net.rb | 63 |
4 files changed, 27 insertions, 65 deletions
diff --git a/lib/chef/win32/api/error.rb b/lib/chef/win32/api/error.rb index ecc1625353..0b10fc6e3d 100644 --- a/lib/chef/win32/api/error.rb +++ b/lib/chef/win32/api/error.rb @@ -848,6 +848,7 @@ class Chef ERROR_INVALID_COLORINDEX = 2022 ERROR_CONNECTED_OTHER_PASSWORD = 2108 ERROR_BAD_USERNAME = 2202 + ERROR_USER_NOT_FOUND = 2221 ERROR_NOT_CONNECTED = 2250 ERROR_OPEN_FILES = 2401 ERROR_ACTIVE_CONNECTIONS = 2402 diff --git a/lib/chef/win32/api/net.rb b/lib/chef/win32/api/net.rb index 848499b403..fdbe55579f 100644 --- a/lib/chef/win32/api/net.rb +++ b/lib/chef/win32/api/net.rb @@ -46,16 +46,6 @@ class Chef USE_LOTS_OF_FORCE = 2 #every windows API should support this flag NERR_Success = 0 - NERR_InvalidComputer = 2351 - NERR_NotPrimary = 2226 - NERR_SpeGroupOp = 2234 - NERR_LastAdmin = 2452 - NERR_BadUsername = 2202 - NERR_BadPassword = 2203 - NERR_PasswordTooShort = 2245 - NERR_UserNotFound = 2221 - NERR_GroupNotFound = 2220 - ERROR_ACCESS_DENIED = 5 ERROR_MORE_DATA = 234 ffi_lib "netapi32" diff --git a/lib/chef/win32/error.rb b/lib/chef/win32/error.rb index 1b3c104e85..8c3ff2f08f 100644 --- a/lib/chef/win32/error.rb +++ b/lib/chef/win32/error.rb @@ -59,13 +59,17 @@ class Chef # Chef::Exceptions::Win32APIError::: def self.raise!(message = nil, code = get_last_error) msg = format_message(code).strip - formatted_message = "" - formatted_message << message if message - formatted_message << "---- Begin Win32 API output ----\n" - formatted_message << "System Error Code: #{code}\n" - formatted_message << "System Error Message: #{msg}\n" - formatted_message << "---- End Win32 API output ----\n" - raise Chef::Exceptions::Win32APIError, msg + "\n" + formatted_message + if code == ERROR_USER_NOT_FOUND + raise Chef::Exceptions::UserIDNotFound, msg + else + formatted_message = "" + formatted_message << message if message + formatted_message << "---- Begin Win32 API output ----\n" + formatted_message << "System Error Code: #{code}\n" + formatted_message << "System Error Message: #{msg}\n" + formatted_message << "---- End Win32 API output ----\n" + raise Chef::Exceptions::Win32APIError, msg + "\n" + formatted_message + end end end end diff --git a/lib/chef/win32/net.rb b/lib/chef/win32/net.rb index 62eb869195..4ee278aa28 100644 --- a/lib/chef/win32/net.rb +++ b/lib/chef/win32/net.rb @@ -69,39 +69,6 @@ class Chef end end - def self.net_api_error!(code) - msg = case code - when NERR_InvalidComputer - "The user does not have access to the requested information." - when NERR_NotPrimary - "The operation is allowed only on the primary domain controller of the domain." - when NERR_SpeGroupOp - "This operation is not allowed on this special group." - when NERR_LastAdmin - "This operation is not allowed on the last administrative account." - when NERR_BadUsername - "The user name or group name parameter is invalid." - when NERR_BadPassword - "The password parameter is invalid." - when NERR_UserNotFound - raise Chef::Exceptions::UserIDNotFound, code - when NERR_PasswordTooShort - <<END -The password is shorter than required. (The password could also be too -long, be too recent in its change history, not have enough unique characters, -or not meet another password policy requirement.) -END - when NERR_GroupNotFound - "The group name could not be found." - when ERROR_ACCESS_DENIED - "The user does not have access to the requested information." - else - "Received unknown error code (#{code})" - end - - raise Chef::Exceptions::Win32NetAPIError.new(msg, code) - end - def self.net_local_group_add(server_name, group_name) server_name = wstring(server_name) group_name = wstring(group_name) @@ -111,7 +78,7 @@ END rc = NetLocalGroupAdd(server_name, 0, buf, nil) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -121,7 +88,7 @@ END rc = NetLocalGroupDel(server_name, group_name) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -153,7 +120,7 @@ END end if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end group_members @@ -170,7 +137,7 @@ END rc = NetUserAdd(server_name, 3, buf, nil) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -183,7 +150,7 @@ END rc = NetUserGetInfo(server_name, user_name, 3, ui3_p) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end ui3 = USER_INFO_3.new(ui3_p.read_pointer).as_ruby @@ -191,7 +158,7 @@ END rc = NetApiBufferFree(ui3_p.read_pointer) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end ui3 @@ -209,7 +176,7 @@ END rc = NetUserSetInfo(server_name, user_name, 3, buf, nil) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -219,7 +186,7 @@ END rc = NetUserDel(server_name, user_name) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -234,7 +201,7 @@ END rc = NetLocalGroupAddMembers(server_name, group_name, 3, buf, 1) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -257,7 +224,7 @@ END server_name, group_name, 3, lgrmi3s[0], members.size) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -270,7 +237,7 @@ END server_name, group_name, 3, lgrmi3s[0], members.size) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -283,7 +250,7 @@ END server_name, group_name, 3, lgrmi3s[0], members.size) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -303,7 +270,7 @@ END rc = NetUseDel(server_name, use_name, force_const) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end @@ -314,7 +281,7 @@ END rc = NetUseGetInfo(server_name, use_name, 2, ui2_p) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end ui2 = USE_INFO_2.new(ui2_p.read_pointer).as_ruby @@ -335,7 +302,7 @@ END rc = NetUseAdd(server_name, 2, buf, nil) if rc != NERR_Success - net_api_error!(rc) + Chef::ReservedNames::Win32::Error.raise!(nil, rc) end end end |