Revamped code for VPD parser

The commit removes all the pre-existing code from the branch
and pushes the revamped code.

Major modification includes:
- Movement from multi exe to single daemon model.
- Multithreaded approach to parse FRU VPD.
- Better error handling.
- Refactored code for performance optimization.

Note: This code supports all the existing functionalities as it is.

Change-Id: I1ddce1f0725ac59020b72709689a1013643bda8b
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
diff --git a/configuration/ibm/backup_restore_50003000.json b/configuration/ibm/backup_restore_50003000.json
new file mode 100644
index 0000000..e3d6adb
--- /dev/null
+++ b/configuration/ibm/backup_restore_50003000.json
@@ -0,0 +1,158 @@
+{
+    "source": {
+        "hardwarePath": "/sys/bus/i2c/drivers/at24/8-0050/eeprom"
+    },
+    "destination": {
+        "inventoryPath": "/xyz/openbmc_project/inventory/system/chassis/motherboard"
+    },
+    "type": "IPZ",
+    "backupMap": [
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "BR",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "BR",
+            "defaultValue": [32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "TM",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "TM",
+            "defaultValue": [32, 32, 32, 32, 32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "SE",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "SE",
+            "defaultValue": [32, 32, 32, 32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "SU",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "SU",
+            "defaultValue": [32, 32, 32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "RB",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "RB",
+            "defaultValue": [32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "WN",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "WN",
+            "defaultValue": [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "RG",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "RG",
+            "defaultValue": [32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VSYS",
+            "sourceKeyword": "FV",
+            "destinationRecord": "VSYS",
+            "destinationKeyword": "FV",
+            "defaultValue": [
+                32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+                32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32
+            ],
+            "isPelRequired": false,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "VCEN",
+            "sourceKeyword": "FC",
+            "destinationRecord": "VCEN",
+            "destinationKeyword": "FC",
+            "defaultValue": [32, 32, 32, 32, 32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": false
+        },
+        {
+            "sourceRecord": "VCEN",
+            "sourceKeyword": "SE",
+            "destinationRecord": "VCEN",
+            "destinationKeyword": "SE",
+            "defaultValue": [32, 32, 32, 32, 32, 32, 32],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "LXR0",
+            "sourceKeyword": "LX",
+            "destinationRecord": "LXR0",
+            "destinationKeyword": "LX",
+            "defaultValue": [0, 0, 0, 0, 0, 0, 0, 0],
+            "isPelRequired": true,
+            "isManufactureResetRequired": false
+        },
+        {
+            "sourceRecord": "UTIL",
+            "sourceKeyword": "D0",
+            "destinationRecord": "UTIL",
+            "destinationKeyword": "D0",
+            "defaultValue": [0],
+            "isPelRequired": true,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "UTIL",
+            "sourceKeyword": "D1",
+            "destinationRecord": "UTIL",
+            "destinationKeyword": "D1",
+            "defaultValue": [0],
+            "isPelRequired": false,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "UTIL",
+            "sourceKeyword": "F0",
+            "destinationRecord": "UTIL",
+            "destinationKeyword": "F0",
+            "defaultValue": [0, 0, 0, 0, 0, 0, 0, 0],
+            "isPelRequired": false,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "UTIL",
+            "sourceKeyword": "F5",
+            "destinationRecord": "UTIL",
+            "destinationKeyword": "F5",
+            "defaultValue": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+            "isPelRequired": false,
+            "isManufactureResetRequired": true
+        },
+        {
+            "sourceRecord": "UTIL",
+            "sourceKeyword": "F6",
+            "destinationRecord": "UTIL",
+            "destinationKeyword": "F6",
+            "defaultValue": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+            "isPelRequired": false,
+            "isManufactureResetRequired": true
+        }
+    ]
+}