Skip to content

Commit

Permalink
Add OSMorphing Support for Amazon Linux
Browse files Browse the repository at this point in the history
This patch adds Amazon Linux OS detection and core OSMorphing tools
  • Loading branch information
Dany9966 committed Dec 11, 2023
1 parent 0fb2114 commit 8871e3e
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
21 changes: 21 additions & 0 deletions coriolis/osmorphing/amazon.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2023 Cloudbase Solutions Srl
# All Rights Reserved.

from coriolis.osmorphing import redhat
from coriolis.osmorphing.osdetect import amazon as amazon_detect


AMAZON_DISTRO_NAME_IDENTIFIER = amazon_detect.AMAZON_DISTRO_NAME


class BaseAmazonLinuxOSMorphingTools(redhat.BaseRedHatMorphingTools):

UEFI_GRUB_LOCATION = "/boot/efi/EFI/amzn"

@classmethod
def check_os_supported(cls, detected_os_info):
if detected_os_info['distribution_name'] != (
AMAZON_DISTRO_NAME_IDENTIFIER):
return False
return cls._version_supported_util(
detected_os_info['release_version'], minimum=2)
27 changes: 27 additions & 0 deletions coriolis/osmorphing/osdetect/amazon.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2023 Cloudbase Solutions Srl
# All Rights Reserved.

from coriolis import constants
from coriolis.osmorphing.osdetect import base


AMAZON_DISTRO_IDENTIFIER = "amzn"
AMAZON_DISTRO_NAME = "Amazon Linux"


class AmazonLinuxOSDetectTools(base.BaseLinuxOSDetectTools):

def detect_os(self):
info = {}
os_release = self._get_os_release()
osid = os_release.get("ID")
osname = os_release.get("NAME")
if osid == AMAZON_DISTRO_IDENTIFIER or osname == AMAZON_DISTRO_NAME:
version = os_release.get("VERSION")
friendly_name = "%s %s" % (AMAZON_DISTRO_NAME, version)
info = {
"os_type": constants.OS_TYPE_LINUX,
"distribution_name": AMAZON_DISTRO_NAME,
"release_version": version,
"friendly_release_name": friendly_name}
return info
2 changes: 2 additions & 0 deletions coriolis/osmorphing/osdetect/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from coriolis import constants
from coriolis import exception
from coriolis.osmorphing.osdetect import base
from coriolis.osmorphing.osdetect import amazon
from coriolis.osmorphing.osdetect import centos
from coriolis.osmorphing.osdetect import coreos
from coriolis.osmorphing.osdetect import debian
Expand All @@ -22,6 +23,7 @@


LINUX_OS_DETECTION_TOOLS = [
amazon.AmazonLinuxOSDetectTools,
centos.CentOSOSDetectTools,
coreos.CoreOSOSDetectTools,
debian.DebianOSDetectTools,
Expand Down

0 comments on commit 8871e3e

Please sign in to comment.