Initial patch for RBC BIOS Config Manager

ResetBIOSSettings is not implemented as part of this patch apart from
that GetAttribute, SetAttribute and setters for BaseBIOSTable,
PendingAttributes is implemeted.

Interface:
xyz.openbmc_project.BIOSConfig.Manager
Properties:
.BaseBIOSTable                         property  a{s(sbsssvva(sv))} 1 "testAttributeName" "xyz.openbmc_pr... emits-change writable
.PendingAttributes                     property  a{s(sv)}           2 "test1" "xyz.openbmc_project.BIOSCo... emits-change writable
.ResetBIOSSettings                     property  s                  "xyz.openbmc_project.BIOSConfig.Manag... emits-change writable
Methods:
.GetAttribute                          method    s                  svv                                      -
.SetAttribute                          method    sv                 -                                        -

Tested:
1. Service is working well.
2. All the dbus methods and properties are shown correctly.
3. Unit test done.
    a). Tree
root@intel-obmc:~# busctl tree xyz.openbmc_project.BIOSConfigManager
`-/xyz
  `-/xyz/openbmc_project
    `-/xyz/openbmc_project/bios_config
      `-/xyz/openbmc_project/bios_config/manager
    b). Instrospect
root@intel-obmc:~# busctl introspect xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager
NAME                                   TYPE      SIGNATURE          RESULT/VALUE                             FLAGS
org.freedesktop.DBus.Introspectable    interface -                  -                                        -
.Introspect                            method    -                  s                                        -
org.freedesktop.DBus.Peer              interface -                  -                                        -
.GetMachineId                          method    -                  s                                        -
.Ping                                  method    -                  -                                        -
org.freedesktop.DBus.Properties        interface -                  -                                        -
.Get                                   method    ss                 v                                        -
.GetAll                                method    s                  a{sv}                                    -
.Set                                   method    ssv                -                                        -
.PropertiesChanged                     signal    sa{sv}as           -                                        -
xyz.openbmc_project.BIOSConfig.Manager interface -                  -                                        -
.GetAttribute                          method    s                  svv                                      -
.SetAttribute                          method    sv                 -                                        -
.BaseBIOSTable                         property  a{s(sbsssvva(sv))} 2 "attr0" "xyz.openbmc_project.BIOSCo... emits-change writable
.PendingAttributes                     property  a{s(sv)}           1 "test1" "xyz.openbmc_project.BIOSCo... emits-change writable
.ResetBIOSSettings                     property  s                  "xyz.openbmc_project.BIOSConfig.Manag... emits-change writable
    c). Method: GetAttribute/SetAttribute
root@intel-obmc:~# busctl call  xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager SetAttribute sv test1 s "value"
root@intel-obmc:~# busctl call  xyz.openbmc_project.BIOSConfigManager /xyz/openbmc_project/bios_config/manager xyz.openbmc_project.BIOSConfig.Manager GetAttribute s test1
svv "xyz.openbmc_project.BIOSConfig.Manager.AttributeType.String" x 0 s "value"
    d). Service
root@intel-obmc:~# systemctl status xyz.openbmc_project.biosconfig_manager
* xyz.openbmc_project.biosconfig_manager.service - BIOS Config Manager - For Remote BIOS configuration update
     Loaded: loaded (8;;file://intel-obmc/lib/systemd/system/xyz.openbmc_project.biosconfig_manager.service/lib/systemd/system/xyz.openbmc_project.biosconfig_manager.service8;;; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/xyz.openbmc_project.biosconfig_manager.service.d
             `-8;;file://intel-obmc/etc/systemd/system/xyz.openbmc_project.biosconfig_manager.service.d/watchdog.confwatchdog.conf8;;
     Active: active (running) since Thu 1970-01-01 00:00:56 UTC; 25min ago
   Main PID: 394 (biosconfig-mana)
     CGroup: /system.slice/xyz.openbmc_project.biosconfig_manager.service
             `-394 /usr/bin/biosconfig-manager

Jan 01 00:00:56 intel-obmc systemd[1]: Started BIOS Config Manager - For Remote BIOS configuration update.

Change-Id: I7a7312ffbdf000aab254c77ed5e4f9a8d4ec4d45
Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>
9 files changed