Lock Management : Add Support for Mutltiple HMC's

- The Lock Structure already had the HMC-ID field which
  stores the corresponding unique Identifier that tells
  us which HMC has acquired the Lock.

- Now, that the Know you client functionality is up, we can
  leverage the clientId field in the bmcweb session store to
  fill the lock structure with the corresponding hmc identifier.

NOTE : Also note that a Single HMC can have mutliple session that
can acquire different locks, So when the ownership of any lock is
tied up to its cliendId as well as the SessionId.

- Release Lock call on any Transaction ID can only be successful if
  the transactionID of corresponding lock has the complete owner-ship
  as per the NOTE mentioned above.

Tested By:

1. CREATE Session with Client ID as mentioned below:

'{"UserName":"root", "Password":"0penBmc", "Oem":{"OpenBMC" : {"ClientID":<unique id>}}}'

2. Make sure the GetLockList of the above session populates the CliendID field
   as per data mentioned in the login Request.

3. Release Lock on transaction ID with same HMC-ID but with different
   sessionID's should be successful only when both the HMC-ID(mapped to
   X-Auth tokens in the session store) & Session ID(from the session store)
   of the ReleaseLock request matches with the ownwership of the lock pertaining
   to the transaction ID in the request.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: I60161bea6007782a397fc60f19d44c2211d4cf7f
diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index e9805d6..a7ac761 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -317,8 +317,9 @@
 
             segInfo.push_back(std::make_pair(lockFlags, segmentLength));
         }
-        lockRequestStructure.push_back(make_tuple(
-            req.session->uniqueId, "hmc-id", lockType, resourceId, segInfo));
+        lockRequestStructure.push_back(
+            make_tuple(req.session->uniqueId, req.session->clientId, lockType,
+                       resourceId, segInfo));
     }
 
     // print lock request into journal
@@ -426,13 +427,11 @@
         BMCWEB_LOG_DEBUG << listTransactionIds[i];
     }
 
-    std::string clientId = "hmc-id";
-    std::string sessionId = req.session->uniqueId;
-
     // validate the request ids
 
     auto varReleaselock = crow::ibm_mc_lock::Lock::getInstance().releaseLock(
-        listTransactionIds, std::make_pair(clientId, sessionId));
+        listTransactionIds,
+        std::make_pair(req.session->clientId, req.session->uniqueId));
 
     if (!varReleaselock.first)
     {