Collect ramoops data into BMC dump

- Add ramoops file monitor and support to enable ramoops data
  collection for kernel dump.

- Systemd will collect ramoops data and write it into
  /var/lib/systemd/pstore when a system kernel oops/panics.

- Today, need to grab everything in that directory, put it in a dump
  and then delete everything in that directory.

Tested:
- Simulate a kernel panic by creating similar data in the expected
  location.
  `dmesg > /var/lib/systemd/pstore/dmesg1.txt`
  `dmesg > /var/lib/systemd/pstore/dmesg2.txt`
  `dmesg > /var/lib/systemd/pstore/dmesg3.txt`
  `dmesg > /var/lib/systemd/pstore/dmesg4.txt`

  tar -tvf obmcdump_1_248.tar.xz:

  drwxr-xr-x 0/0         0 1970-01-01 00:01:32 obmcdump_1_248/
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg1.txt
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg2.txt
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg3.txt
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg4.txt
  -rw-r--r-- 0/0       162 1970-01-01 00:01:32 obmcdump_1_248/dreport.log
  -rw-r--r-- 0/0       294 1970-01-01 00:01:31 obmcdump_1_248/os-release
  -rw-r--r-- 0/0       278 1970-01-01 00:01:31 obmcdump_1_248/summary.log

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I05bca408f4dcc2b62350104a0c5f757d740dde22
diff --git a/tools/dreport.d/dreport b/tools/dreport.d/dreport
index d831191..3009b80 100755
--- a/tools/dreport.d/dreport
+++ b/tools/dreport.d/dreport
@@ -44,6 +44,7 @@
 declare -rx TYPE_CORE="core"
 declare -rx TYPE_ELOG="elog"
 declare -rx TYPE_CHECKSTOP="checkstop"
+declare -rx TYPE_RAMOOPS="ramoops"
 declare -rx SUMMARY_LOG="summary.log"
 declare -rx DREPORT_LOG="dreport.log"
 declare -rx TMP_DIR="/tmp"
@@ -91,6 +92,9 @@
             log_summary "Core: $optional_path"
             set_core_pid
             ;;
+        $TYPE_RAMOOPS)
+            log_summary "Ramoops: $optional_path"
+            ;;
         $TYPE_ELOG)
             log_summary "ELOG: $optional_path"
             elog_id=$(basename "$optional_path")
@@ -198,6 +202,7 @@
     if [[ ! ($dump_type = $TYPE_USER || \
              $dump_type = $TYPE_CORE || \
              $dump_type = $TYPE_ELOG || \
+             $dump_type = $TYPE_RAMOOPS || \
              $dump_type = $TYPE_CHECKSTOP) ]]; then
        log_error "Invalid -type, Only summary log is available"
        dump_type=$SUMMARY_DUMP
diff --git a/tools/dreport.d/plugins.d/osrelease b/tools/dreport.d/plugins.d/osrelease
index 7cf9a43..00cb22c 100644
--- a/tools/dreport.d/plugins.d/osrelease
+++ b/tools/dreport.d/plugins.d/osrelease
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# config: 1234 1
+# config: 12345 1
 # @brief: Collect OS release information.
 #
 
diff --git a/tools/dreport.d/plugins.d/ramoops b/tools/dreport.d/plugins.d/ramoops
new file mode 100644
index 0000000..66324f0
--- /dev/null
+++ b/tools/dreport.d/plugins.d/ramoops
@@ -0,0 +1,19 @@
+#!/bin/bash
+#
+# config: 5 1
+# @brief: Move the ramoops data file to the dreport packaging.
+#
+
+. $DREPORT_INCLUDE/functions
+
+desc="Ramoops file"
+
+for path in ${optional_path}/*
+do
+    if [ -f $path ]; then
+        # Remove the file from path after successful copy
+        if add_copy_file "$path" "$desc"; then
+            rm "$path"
+        fi
+    fi
+done
diff --git a/tools/dreport.d/sample.conf b/tools/dreport.d/sample.conf
index 45f5e59..9490d05 100644
--- a/tools/dreport.d/sample.conf
+++ b/tools/dreport.d/sample.conf
@@ -9,3 +9,4 @@
 2: user
 3: elog
 4: checkstop
+5: ramoops