phosphor-state-manager: Support multi-host for persist files

phosphor-host-state-manager and phosphor-chassis-state-manager store
informations in files then restore that on service starting.
Since state-managers already change to multi-host now, information
should store into different files from each service instance.

forbackward capability, if there are legacy persist file exist,
rename it to the new file format of instance ;0',i.e, rename files:
'requestedHostTransition' to 'host0-PersistData',
'POHCounter' to 'chassis-POHCounter',
'chassisStateChangeTime' to 'chassis0-StateChangeTime'

Changes:
a.phosphor-host-state-manager:
'/var/lib/phosphor-state-manager/requestedHostTransition'
this file not only store requestedHostTransition now,
rename to PersistData and add host-N prefix for each service.
For example, bus xyz.openbmc_project.State.Host1 store data to
'/var/lib/phosphor-state-manager/host1-PersistData'
 xyz.openbmc_project.State.Host2 store date to
'/var/lib/phosphor-state-manager/host2-PersistData'

b.phosphor-chassis-state-manager:

There are two files to store informations
'/var/lib/phosphor-state-manager/POHCounter',
'/var/lib/phosphor-state-manager/chassisStateChangeTime'
change to:
'/var/lib/phosphor-state-manager/chassis1-POHCounter',
'/var/lib/phosphor-state-manager/chassis2-POHCounter'
...
'/var/lib/phosphor-state-manager/chassis1-StateChangeTime'
'/var/lib/phosphor-state-manager/chassis2-StateChangeTime'
...  for each service.

Tested on Bletchley HW,

set xyz.openbmc_project.State.Host1 RequestedHostTransition to On
'busctl set-property xyz.openbmc_project.State.Host1 /xyz/openbmc_project/state/host1
	xyz.openbmc_project.State.Host RequestedHostTransition s "xyz.openbmc_project.State.Host.Transition.On"'

This request will store in file:
'cat /var/lib/phosphor-state-manager/host1-PersistData'
{
    "value0": {
        "cereal_class_version": 1,
        "value0": "xyz.openbmc_project.State.Host.Transition.On",
        "value1": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
        "value2": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive"
    }

restart xyz.openbmc_project.State.Host1~Host6 or reboot BMC, 'RequestedHostTransition' for host1 still "On"
'busctl get-property xyz.openbmc_project.State.Host1 /xyz/openbmc_project/state/host1
	xyz.openbmc_project.State.Host RequestedHostTransition'
s "xyz.openbmc_project.State.Host.Transition.On"
'RequestedHostTransition' of the rest 5 Hosts are default value  "xyz.openbmc_project.State.Host.Transition.Off"

Also, set POHCounter of xyz.openbmc_project.State.Chassis2
'busctl set-property xyz.openbmc_project.State.Chassis2	/xyz/openbmc_project/state/chassis2
	xyz.openbmc_project.State.PowerOnHours POHCounter u 5'
it will restore after service restart or BMC reboot,
'busctl get-property  xyz.openbmc_project.State.Chassis2 /xyz/openbmc_project/state/chassis2
	xyz.openbmc_project.State.PowerOnHours POHCounter'
u 5

Change-Id: I739c62707bb805e7c25f399a2fea06beee5543a0
Signed-off-by: Allen.Wang <Allen_Wang@quantatw.com>
diff --git a/host_state_manager.cpp b/host_state_manager.cpp
index 78899a0..9639a4b 100644
--- a/host_state_manager.cpp
+++ b/host_state_manager.cpp
@@ -92,7 +92,7 @@
         server::Host::requestedHostTransition(Transition::Off);
     }
 
-    if (!deserialize(HOST_STATE_PERSIST_PATH))
+    if (!deserialize())
     {
         // set to default value.
         server::Host::requestedHostTransition(Transition::Off);
@@ -361,16 +361,18 @@
     return rebootCount;
 }
 
-fs::path Host::serialize(const fs::path& dir)
+fs::path Host::serialize()
 {
-    std::ofstream os(dir.c_str(), std::ios::binary);
+    fs::path path{fmt::format(HOST_STATE_PERSIST_PATH, id)};
+    std::ofstream os(path.c_str(), std::ios::binary);
     cereal::JSONOutputArchive oarchive(os);
     oarchive(*this);
-    return dir;
+    return path;
 }
 
-bool Host::deserialize(const fs::path& path)
+bool Host::deserialize()
 {
+    fs::path path{fmt::format(HOST_STATE_PERSIST_PATH, id)};
     try
     {
         if (fs::exists(path))
@@ -406,6 +408,7 @@
     executeTransition(value);
 
     auto retVal = server::Host::requestedHostTransition(value);
+
     serialize();
     return retVal;
 }