diff --git a/include/ibm/locks.hpp b/include/ibm/locks.hpp
index fd27ef9..99b9cc3 100644
--- a/include/ibm/locks.hpp
+++ b/include/ibm/locks.hpp
@@ -187,7 +187,6 @@
 
 inline RcGetLockList Lock::getLockList(const ListOfSessionIds& listSessionId)
 {
-
     std::vector<std::pair<uint32_t, LockRequests>> lockList;
 
     if (!lockTable.empty())
@@ -241,7 +240,6 @@
 
 inline RcAcquireLock Lock::acquireLock(const LockRequests& lockRequestStructure)
 {
-
     // validate the lock request
 
     for (const auto& lockRecord : lockRequestStructure)
@@ -363,7 +361,6 @@
 
 inline bool Lock::isValidLockRequest(const LockRequest& refLockRecord)
 {
-
     // validate the locktype
 
     if (!((boost::equals(std::get<2>(refLockRecord), "Read") ||
@@ -392,7 +389,6 @@
 
     for (const auto& p : std::get<4>(refLockRecord))
     {
-
         // validate the lock flags
         // Allowed lockflags are locksame,lockall & dontlock
 
@@ -552,7 +548,6 @@
     uint32_t i = 0;
     for (const auto& p : std::get<4>(refLockRecord1))
     {
-
         // return conflict when any of them is try to lock all resources
         // under the current resource level.
         if (boost::equals(p.first, "LockAll") ||
diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index e1b7f83..51f5298 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -36,11 +36,11 @@
 constexpr size_t maxSaveareaDirSize =
     25000000; // Allow save area dir size to be max 25MB
 constexpr size_t minSaveareaFileSize =
-    100; // Allow save area file size of minimum 100B
+    100;      // Allow save area file size of minimum 100B
 constexpr size_t maxSaveareaFileSize =
-    500000; // Allow save area file size upto 500KB
+    500000;   // Allow save area file size upto 500KB
 constexpr size_t maxBroadcastMsgSize =
-    1000; // Allow Broadcast message size upto 1KB
+    1000;     // Allow Broadcast message size upto 1KB
 
 inline void handleFilePut(const crow::Request& req,
                           const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -323,8 +323,8 @@
         return;
     }
 
-    std::string contentDispositionParam =
-        "attachment; filename=\"" + fileID + "\"";
+    std::string contentDispositionParam = "attachment; filename=\"" + fileID +
+                                          "\"";
     asyncResp->res.addHeader(boost::beast::http::field::content_disposition,
                              contentDispositionParam);
     std::string fileData;
@@ -685,7 +685,6 @@
 
 inline void requestRoutes(App& app)
 {
-
     // allowed only for admin
     BMCWEB_ROUTE(app, "/ibm/v1/")
         .privileges({{"ConfigureComponents", "ConfigureManager"}})
