Add check for globals

We don't follow this cpp core guidelines rule well.  This is something
that we should aspire to cleaning up in the future, but for the moment,
lets turn the rule on in clang-tidy to stop the bleeding, add ignores
for the things that we know need some better abstractions, and work on
these over time.

Most of this commit is just adding NOLINTNEXTLINE exceptions for all of
our globals.  There was one case in the sensor code where clang
correctly noted that those globals weren't actually const, which got
missed because of the use of auto.

Tested: CI should be good enough for this.  Passes clang-tidy.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ieda08fee69a3b209d4b3e9771809a6c41524f066
diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index 0838f0a..3bad070 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -24,9 +24,11 @@
         interfaces;
 };
 
-static boost::container::flat_map<crow::websocket::Connection*,
-                                  DbusWebsocketSession>
-    sessions;
+using SessionMap = boost::container::flat_map<crow::websocket::Connection*,
+                                              DbusWebsocketSession>;
+
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
+static SessionMap sessions;
 
 inline int onPropertyUpdate(sd_bus_message* m, void* userdata,
                             sd_bus_error* retError)
diff --git a/include/dbus_singleton.hpp b/include/dbus_singleton.hpp
index 2830216..f9b50b0 100644
--- a/include/dbus_singleton.hpp
+++ b/include/dbus_singleton.hpp
@@ -9,6 +9,7 @@
 
 // Initialze before using!
 // Please see webserver_main for the example how this variable is initialzed,
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 extern sdbusplus::asio::connection* systemBus;
 
 } // namespace connections
diff --git a/include/forward_unauthorized.hpp b/include/forward_unauthorized.hpp
index 2fc3ee4..850a0b7 100644
--- a/include/forward_unauthorized.hpp
+++ b/include/forward_unauthorized.hpp
@@ -6,6 +6,7 @@
 namespace forward_unauthorized
 {
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static bool hasWebuiRoute = false;
 
 inline void sendUnauthorized(std::string_view url,
diff --git a/include/hostname_monitor.hpp b/include/hostname_monitor.hpp
index 3fb42e4..cb84ad6 100644
--- a/include/hostname_monitor.hpp
+++ b/include/hostname_monitor.hpp
@@ -11,6 +11,7 @@
 {
 namespace hostname_monitor
 {
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static std::unique_ptr<sdbusplus::bus::match_t> hostnameSignalMonitor;
 
 inline void installCertificate(const std::filesystem::path& certPath)
diff --git a/include/image_upload.hpp b/include/image_upload.hpp
index 4defbb6..bdb7b95 100644
--- a/include/image_upload.hpp
+++ b/include/image_upload.hpp
@@ -16,6 +16,7 @@
 namespace image_upload
 {
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static std::unique_ptr<sdbusplus::bus::match_t> fwUpdateMatcher;
 
 inline void
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index 79975d2..1a067ac 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -150,9 +150,10 @@
     bool doingWrite{false};
 };
 
-static boost::container::flat_map<crow::websocket::Connection*,
-                                  std::unique_ptr<KvmSession>>
-    sessions;
+using SessionMap = boost::container::flat_map<crow::websocket::Connection*,
+                                              std::unique_ptr<KvmSession>>;
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
+static SessionMap sessions;
 
 inline void requestRoutes(App& app)
 {
diff --git a/include/nbd_proxy.hpp b/include/nbd_proxy.hpp
index ac3a811..68491cb 100644
--- a/include/nbd_proxy.hpp
+++ b/include/nbd_proxy.hpp
@@ -34,7 +34,7 @@
 using boost::asio::local::stream_protocol;
 
 static constexpr auto nbdBufferSize = 131088;
-static const char* requiredPrivilegeString = "ConfigureManager";
+constexpr const char* requiredPrivilegeString = "ConfigureManager";
 
 struct NbdProxyServer : std::enable_shared_from_this<NbdProxyServer>
 {
@@ -247,9 +247,10 @@
     crow::websocket::Connection& connection;
 };
 
-static boost::container::flat_map<crow::websocket::Connection*,
-                                  std::shared_ptr<NbdProxyServer>>
-    sessions;
+using SessionMap = boost::container::flat_map<crow::websocket::Connection*,
+                                              std::shared_ptr<NbdProxyServer>>;
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
+static SessionMap sessions;
 
 inline void requestRoutes(App& app)
 {
diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp
index d5eaf81..b8f6943 100644
--- a/include/obmc_console.hpp
+++ b/include/obmc_console.hpp
@@ -12,13 +12,18 @@
 namespace obmc_console
 {
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static std::unique_ptr<boost::asio::local::stream_protocol::socket> hostSocket;
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static std::array<char, 4096> outputBuffer;
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static std::string inputBuffer;
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static boost::container::flat_set<crow::websocket::Connection*> sessions;
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static bool doingWrite = false;
 
 inline void doWrite()
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index ebf0a69..1d3bf96 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -14,6 +14,7 @@
 namespace obmc_vm
 {
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static crow::websocket::Connection* session = nullptr;
 
 // The max network block device buffer size is 128kb plus 16bytes
@@ -157,6 +158,7 @@
         inputBuffer;
 };
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static std::shared_ptr<Handler> handler;
 
 inline void requestRoutes(App& app)
diff --git a/include/webroutes.hpp b/include/webroutes.hpp
index 757a272..ec1bb23 100644
--- a/include/webroutes.hpp
+++ b/include/webroutes.hpp
@@ -6,6 +6,7 @@
 namespace webroutes
 {
 
+// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
 static boost::container::flat_set<std::string> routes;
 
 } // namespace webroutes