pldm: improve PDR config JSON files

Add the PDR type to the JOSN files so that the PDR type in the code is
unassociated with the JSON file name.
Rename 11.json become state_effecter_pdr.json.

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I3194989ecd80ea0d8befa91971bd58ff851dd375
diff --git a/libpldmresponder/examples/pdr/11.json b/libpldmresponder/examples/pdr/11.json
deleted file mode 100644
index a037ad4..0000000
--- a/libpldmresponder/examples/pdr/11.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-    "entries" : [{
-        "type" : 33,
-        "instance" : 0,
-        "container" : 0,
-        "effecters" : [{
-            "set" : {
-                "id" : 196,
-                "size" : 1,
-                "states" : [1]
-            },
-            "dbus" : "/foo/bar"
-        }]
-    },
-    {
-        "type" : 100,
-        "instance" : 0,
-        "container" : 0,
-        "effecters" : [{
-            "set" : {
-                "id" : 197,
-                "size" : 1,
-                "states" : [1]
-            },
-            "dbus" : "/foo/bar"
-        },
-        {
-            "set" : {
-                "id" : 198,
-                "size" : 2,
-                "states" : [1,2,5,15]
-            },
-            "dbus" : "/foo/bar/baz"
-        }]
-    }]
-}
diff --git a/libpldmresponder/examples/pdr/state_effecter_pdr.json b/libpldmresponder/examples/pdr/state_effecter_pdr.json
new file mode 100644
index 0000000..2b5d946
--- /dev/null
+++ b/libpldmresponder/examples/pdr/state_effecter_pdr.json
@@ -0,0 +1,52 @@
+{
+  "pdrType": 11,
+  "entries": [
+    {
+      "type": 33,
+      "instance": 0,
+      "container": 0,
+      "effecters": [
+        {
+          "set": {
+            "id": 196,
+            "size": 1,
+            "states": [
+              1
+            ]
+          },
+          "dbus": "/foo/bar"
+        }
+      ]
+    },
+    {
+      "type": 100,
+      "instance": 0,
+      "container": 0,
+      "effecters": [
+        {
+          "set": {
+            "id": 197,
+            "size": 1,
+            "states": [
+              1
+            ]
+          },
+          "dbus": "/foo/bar"
+        },
+        {
+          "set": {
+            "id": 198,
+            "size": 2,
+            "states": [
+              1,
+              2,
+              5,
+              15
+            ]
+          },
+          "dbus": "/foo/bar/baz"
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/libpldmresponder/pdr.hpp b/libpldmresponder/pdr.hpp
index b32f878..9432f3e 100644
--- a/libpldmresponder/pdr.hpp
+++ b/libpldmresponder/pdr.hpp
@@ -276,7 +276,6 @@
               }
           }}};
 
-    auto eraseLen = strlen(".json");
     Type pdrType{};
     for (const auto& dirEntry : fs::directory_iterator(dir))
     {
@@ -285,9 +284,7 @@
             auto json = readJson(dirEntry.path().string());
             if (!json.empty())
             {
-                auto fileName = dirEntry.path().filename().string();
-                fileName.erase(fileName.end() - eraseLen);
-                pdrType = stoi(fileName);
+                pdrType = json.value("pdrType", 0);
                 generators.at(pdrType)(json, repo);
             }
         }
diff --git a/test/pdr_jsons/state_effecter/good/11.json b/test/pdr_jsons/state_effecter/good/11.json
deleted file mode 100644
index 6a9944b..0000000
--- a/test/pdr_jsons/state_effecter/good/11.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-    "entries" : [{
-        "type" : 33,
-        "instance" : 0,
-        "container" : 0,
-        "effecters" : [{
-            "set" : {
-                "id" : 196,
-                "size" : 1,
-                "states" : [1]
-            },
-            "dbus" : "/foo/bar"
-        },
-        {
-            "set" : {
-                "id" : 196,
-                "size" : 1,
-                "states" : [1, 2]
-            },
-            "dbus" : "/foo/bar"
-        }]
-    },
-    {
-        "type" : 100,
-        "instance" : 0,
-        "container" : 0,
-        "effecters" : [{
-            "set" : {
-                "id" : 197,
-                "size" : 1,
-                "states" : [1]
-            },
-            "dbus" : "/foo/bar"
-        },
-        {
-            "set" : {
-                "id" : 198,
-                "size" : 2,
-                "states" : [1,2,5,15]
-            },
-            "dbus" : "/foo/bar/baz"
-        }]
-    }]
-}
diff --git a/test/pdr_jsons/state_effecter/good/state_effecter_pdr.json b/test/pdr_jsons/state_effecter/good/state_effecter_pdr.json
new file mode 100644
index 0000000..90e068d
--- /dev/null
+++ b/test/pdr_jsons/state_effecter/good/state_effecter_pdr.json
@@ -0,0 +1,63 @@
+{
+    "pdrType": 11,
+    "entries": [
+        {
+            "type": 33,
+            "instance": 0,
+            "container": 0,
+            "effecters": [
+                {
+                    "set": {
+                        "id": 196,
+                        "size": 1,
+                        "states": [
+                            1
+                        ]
+                    },
+                    "dbus": "/foo/bar"
+                },
+                {
+                    "set": {
+                        "id": 196,
+                        "size": 1,
+                        "states": [
+                            1,
+                            2
+                        ]
+                    },
+                    "dbus": "/foo/bar"
+                }
+            ]
+        },
+        {
+            "type": 100,
+            "instance": 0,
+            "container": 0,
+            "effecters": [
+                {
+                    "set": {
+                        "id": 197,
+                        "size": 1,
+                        "states": [
+                            1
+                        ]
+                    },
+                    "dbus": "/foo/bar"
+                },
+                {
+                    "set": {
+                        "id": 198,
+                        "size": 2,
+                        "states": [
+                            1,
+                            2,
+                            5,
+                            15
+                        ]
+                    },
+                    "dbus": "/foo/bar/baz"
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/test/pdr_jsons/state_effecter/malformed/11.json b/test/pdr_jsons/state_effecter/malformed/11.json
deleted file mode 100644
index 541fdd4..0000000
--- a/test/pdr_jsons/state_effecter/malformed/11.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-    "entries" : [{
-        "type" : 33
-        "instance" : 0,
-        "container" : 0,
-        "effecters" : [{
-            "set" : {
-                "id" : 196,
-                "size" : 1,
-                "states" : [1]
-            }
-        }]
-    },
-    {
-        "type" : 100,
-        "instance" : 0,
-        "container" : 0,
-        "effecters" : [{
-            "set" : {
-                "id" : 197,
-                "size" : 1,
-                "states" : [1]
-            }
-        },
-        {
-            "set" : {
-                "id" : 198,
-                "size" : 2,
-                "states" : [1,2,5,15]
-            }
-        }]
-    }]
-}
diff --git a/test/pdr_jsons/state_effecter/malformed/state_effecter_pdr.json b/test/pdr_jsons/state_effecter/malformed/state_effecter_pdr.json
new file mode 100644
index 0000000..3f4276e
--- /dev/null
+++ b/test/pdr_jsons/state_effecter/malformed/state_effecter_pdr.json
@@ -0,0 +1,49 @@
+{
+    "pdrType": 11,
+    "entries": [
+        {
+            "type": 33
+            "instance": 0,
+            "container": 0,
+            "effecters": [
+                {
+                    "set": {
+                        "id": 196,
+                        "size": 1,
+                        "states": [
+                            1
+                        ]
+                    }
+                }
+            ]
+        },
+        {
+            "type": 100,
+            "instance": 0,
+            "container": 0,
+            "effecters": [
+                {
+                    "set": {
+                        "id": 197,
+                        "size": 1,
+                        "states": [
+                            1
+                        ]
+                    }
+                },
+                {
+                    "set": {
+                        "id": 198,
+                        "size": 2,
+                        "states": [
+                            1,
+                            2,
+                            5,
+                            15
+                        ]
+                    }
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file