- 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
@@ -609,13 +609,16 @@ def _bsd_memdata(osdata):
         if osdata["kernel"] in ["OpenBSD", "NetBSD"]:
             swapctl = salt.utils.path.which("swapctl")
             swap_data = __salt__["cmd.run"](f"{swapctl} -sk")
-            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"](f"{sysctl} -n vm.swap_total")
-        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
 
 
@@ -2782,10 +2785,12 @@ def os_data():
             # derive osrelease from kernelversion prior to that
             grains["osrelease"] = grains["kernelrelease"].split("-")[0]
         grains.update(_bsd_cpudata(grains))
+        grains["osfullname"] = "{} {}".format(grains["kernel"], grains["osrelease"])
     elif grains["kernel"] in ("OpenBSD", "NetBSD"):
         grains["os_family"] = grains["os"] = grains["kernel"]
         grains.update(_bsd_cpudata(grains))
         grains["osrelease"] = grains["kernelrelease"].split("-")[0]
+        grains["osfullname"] = "{} {}".format(grains["kernel"], grains["osrelease"])
         if grains["kernel"] == "NetBSD":
             grains.update(_netbsd_gpu_data())
     else:
