xref: /openbmc/openpower-vpd-parser/vpd-manager/include/error_codes.hpp (revision 84c3d23f9bf584a8363d55b1e300b3e7f9fb352c)
1 #pragma once
2 
3 #include <string>
4 #include <unordered_map>
5 
6 namespace vpd
7 {
8 namespace error_code
9 {
10 // File exceptions
11 static constexpr auto FILE_NOT_FOUND = 1001;
12 static constexpr auto FILE_ACCESS_ERROR = 1002;
13 static constexpr auto EMPTY_FILE = 1003;
14 
15 // JSON exceptions
16 static constexpr auto INVALID_JSON = 2001;
17 static constexpr auto MISSING_FLAG = 2002;
18 static constexpr auto MISSING_ACTION_TAG = 2003;
19 static constexpr auto FRU_PATH_NOT_FOUND = 2004;
20 static constexpr auto JSON_PARSE_ERROR = 2005;
21 static constexpr auto JSON_MISSING_GPIO_INFO = 2006;
22 
23 // Generic errors.
24 static constexpr auto INVALID_INPUT_PARAMETER = 3001;
25 static constexpr auto DEVICE_NOT_PRESENT = 2006;
26 static constexpr auto DEVICE_PRESENCE_UNKNOWN = 2007;
27 static constexpr auto GPIO_LINE_EXCEPTION = 2008;
28 
29 const std::unordered_map<int, std::string> errorCodeMap = {
30     {FILE_NOT_FOUND, "File does not exist."},
31     {FILE_ACCESS_ERROR, "Failed to access the file."},
32     {EMPTY_FILE, "Empty file."},
33     {INVALID_JSON, "Either JSON is missing FRU tag or invalid JSON object."},
34     {MISSING_FLAG, "JSON is missing the flag to procees for the FRU."},
35     {MISSING_ACTION_TAG,
36      "JSON is missing the action tag to be performed for the FRU."},
37     {FRU_PATH_NOT_FOUND, "The FRU path is not found in the JSON."},
38     {JSON_PARSE_ERROR, "Error while parsing JSON file."},
39     {INVALID_INPUT_PARAMETER,
40      "Either one of the input parameter is invalid or empty."},
41     {JSON_MISSING_GPIO_INFO, "JSON missing required GPIO info."},
42     {DEVICE_NOT_PRESENT,
43      "Presence pin read successfully but device was absent."},
44     {DEVICE_PRESENCE_UNKNOWN, "Exception on presence line GPIO."},
45     {GPIO_LINE_EXCEPTION, "There was an exception in GPIO line."}};
46 } // namespace error_code
47 } // namespace vpd
48