$OpenBSD: patch-salt_grains_core_py,v 1.9 2021/09/14 07:23:12 robert Exp $

- Unbreak minion without swap configured
- Fix swap_total calculation on OpenBSD

https://github.com/saltstack/salt/pull/58155

Index: salt/grains/core.py
--- salt/grains/core.py.orig
+++ salt/grains/core.py
@@ -552,13 +552,15 @@ def _bsd_memdata(osdata):
         if osdata["kernel"] in ["OpenBSD", "NetBSD"]:
             swapctl = salt.utils.path.which("swapctl")
             swap_data = __salt__["cmd.run"]("{} -sk".format(swapctl))
-            if swap_data == "no swap devices configured":
+            if re.match(r"(swapctl: )?no swap devices configured", swap_data):
                 swap_total = 0
             else:
                 swap_total = swap_data.split(" ")[1]
         else:
             swap_total = __salt__["cmd.run"]("{} -n vm.swap_total".format(sysctl))
-        grains["swap_total"] = int(swap_total) // 1024 // 1024
+        grains["swap_total"] = int(swap_total) // 1024
+        if osdata["kernel"] != "OpenBSD":
+            grains["swap_total"] //= 1024
     return grains
 
 
