summaryrefslogtreecommitdiff
path: root/filter_plugins
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2024-05-08 23:50:15 +0200
committerChristian Pointner <equinox@spreadspace.org>2024-05-08 23:50:15 +0200
commit1e98ae0956ddffbec44ce0eac5f9a3e1fa45f434 (patch)
tree943ded901681f9ebbc4222f546a146d6de93624a /filter_plugins
parentadd raspi5 test host and fix raspios image network config (diff)
some more fixes for ubuntu-installer
Diffstat (limited to 'filter_plugins')
-rw-r--r--filter_plugins/os-version.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/filter_plugins/os-version.py b/filter_plugins/os-version.py
new file mode 100644
index 00000000..4c5c3a29
--- /dev/null
+++ b/filter_plugins/os-version.py
@@ -0,0 +1,83 @@
+from __future__ import (absolute_import, division, print_function)
+__metaclass__ = type
+
+from ansible import errors
+
+_ubuntu_release_names_ = {
+ "focal": 2004,
+ "groovy": 2010,
+ "hisrute": 2104,
+ "impish": 2110,
+ "jammy": 2204,
+ "kinetic": 2210,
+ "lunar": 2304,
+ "mantic": 2310,
+ "noble": 2404,
+ "oracular": 2410,
+}
+
+_debian_release_names_ = {
+ "buster": 10,
+ "bullseye": 11,
+ "bookworm": 12,
+ "trixie": 13,
+ "forky": 14,
+}
+
+
+def ubuntu_release_after(a, b):
+ try:
+ av = _ubuntu_release_names_[a]
+ bv = _ubuntu_release_names_[b]
+ return (av > bv)
+ except KeyError as e:
+ raise errors.AnsibleFilterError("unknown ubuntu release: %s" % str(e))
+ except Exception as e:
+ raise errors.AnsibleFilterError("ubuntu_release_after(): %s" % str(e))
+
+
+def ubuntu_release_before(a, b):
+ try:
+ av = _ubuntu_release_names_[a]
+ bv = _ubuntu_release_names_[b]
+ return (av < bv)
+ except KeyError as e:
+ raise errors.AnsibleFilterError("unknown ubuntu release: %s" % str(e))
+ except Exception as e:
+ raise errors.AnsibleFilterError("ubuntu_release_before(): %s" % str(e))
+
+
+def debian_release_after(a, b):
+ try:
+ av = _debian_release_names_[a]
+ bv = _debian_release_names_[b]
+ return (av > bv)
+ except KeyError as e:
+ raise errors.AnsibleFilterError("unknown debian release: %s" % str(e))
+ except Exception as e:
+ raise errors.AnsibleFilterError("debian_release_after(): %s" % str(e))
+
+
+def debian_release_before(a, b):
+ try:
+ av = _debian_release_names_[a]
+ bv = _debian_release_names_[b]
+ return (av < bv)
+ except KeyError as e:
+ raise errors.AnsibleFilterError("unknown debian release: %s" % str(e))
+ except Exception as e:
+ raise errors.AnsibleFilterError("debian_release_before(): %s" % str(e))
+
+
+class FilterModule(object):
+
+ ''' os version compare '''
+ filter_map = {
+ 'ubuntu_release_after': ubuntu_release_after,
+ 'ubuntu_release_before': ubuntu_release_before,
+ 'debian_release_after': debian_release_after,
+ 'debian_release_before': debian_release_before,
+ }
+
+ def filters(self):
+ return self.filter_map