meta-quanta: gbs: populated the JSON according to the installed drives

Add the @nvmeList@ template and dynamically detect for which
drives we should have and populated the JSON accordingly

Signed-off-by: George Hung <george.hung@quantatw.com>
Change-Id: Id0f6cefe80ae72dc8d3601d0a03dd1039341175c
diff --git a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in
index f152db9..a5ff497 100644
--- a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in
+++ b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/config-margin.json.in
@@ -391,22 +391,7 @@
                     "zoneSetpoint": 10000,
                     "target": "/xyz/openbmc_project/extsensors/margin/nvme",
                     "components": [
-                        "nvme0",
-                        "nvme1",
-                        "nvme2",
-                        "nvme3",
-                        "nvme4",
-                        "nvme5",
-                        "nvme6",
-                        "nvme7",
-                        "nvme8",
-                        "nvme9",
-                        "nvme10",
-                        "nvme11",
-                        "nvme12",
-                        "nvme13",
-                        "nvme14",
-                        "nvme15"
+                        @nvmeList@
                     ]
                 },
                 {
diff --git a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh
index 23742a6..992e40a 100644
--- a/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh
+++ b/meta-quanta/meta-gbs/recipes-quanta/fans/read-margin-temp/read-margin-temp-wait.sh
@@ -15,29 +15,37 @@
 
 nvmePath="/xyz/openbmc_project/sensors/temperature/nvme"
 nvmeInventoryPath="/xyz/openbmc_project/inventory/system/chassis/motherboard/nvme"
+nvmeList=""
 # Get and Set WCTEMP
 for ((i = 0; i < 16; i++)); do
     name="@WCTemp$(printf "%02d" $i)@"
     wcTemp=72000
-    presentState=$(busctl get-property \
+    presentState="$(busctl get-property \
         xyz.openbmc_project.Inventory.Manager \
         ${nvmeInventoryPath}${i} \
         xyz.openbmc_project.Inventory.Item \
-        Present | awk '{print $2}')
+        Present | awk '{print $2}')"
 
-    if [[ $presentState == "true" ]]; then
-        wcTemp=$(
+    if [[ "$presentState" == "true" ]]; then
+        wcTemp="$(
             busctl get-property xyz.openbmc_project.nvme.manager \
                 ${nvmePath}${i} \
                 xyz.openbmc_project.Sensor.Threshold.Critical \
                 CriticalHigh | awk '{print $2}'
-        )
-        wcTemp=$((wcTemp * 1000))
+        )"
+        wcTemp="$((wcTemp * 1000))"
+        if [[ -z "$nvmeList" ]]; then
+            nvmeList="\"nvme"${i}"\""
+        else
+            nvmeList="${nvmeList}"", \"nvme"${i}"\""
+        fi
     fi
 
-    sed -i "s/$name/${wcTemp}/g" $TEMP_FILE
+    sed -i "s/$name/${wcTemp}/g" "$TEMP_FILE"
 done
 
+sed -i "s/@nvmeList@/${nvmeList}/g" "$TEMP_FILE"
+
 # Use shell parameter expansion to trim the ".in" suffix
 mv "$TEMP_FILE" "${MARGIN_TABLE_FILE_IN%".in"}"