File: //lib/python3.6/site-packages/cloudinit/distros/aliyun.py
# vi: ts=4 expandtab
#
# Copyright (C) 2016 Alibaba Cloud Inc.
#
# Author: KaiHuan <kaihuan.pkh@alibaba-inc.com>
import os
import re
from cloudinit.distros import rhel, get_lsb_release
from cloudinit import log as logging
from cloudinit import util
from cloudinit.distros import rhel_util
LOG = logging.getLogger(__name__)
class ImageType(object):
IMAGE_QBOOT = 'qboot'
IMAGE_NORMAL = 'normal'
IMAGE_UNKNOW = 'unknow'
class Distro(rhel.Distro):
def __init__(self, name, cfg, path):
rhel.Distro.__init__(self, name, cfg, path)
self.cname = 'aliyunlinux'
self.rpmgpgkey_path = '/etc/pki/rpm-gpg/RPM-GPG-KEY-aliyun-release'
self.image_id_type = ImageType.IMAGE_NORMAL
# some hack code for ALinux7
if self.major_version == '17':
self.cname = 'ALinux'
self._release = '7.01'
self.rpmgpgkey_path = None
if self.major_version in ('2', '3'):
self.rpmgpgkey_path = None
def get_fn_release(self):
partterns = (
r'Aliyun Linux release\d* (\d+.\d+).*',
r'Alibaba Cloud Linux \(Aliyun Linux\) release\d* (\d+.\d+).*',
r'Alibaba Cloud Linux release\d* (\d+.\d+).*')
for parttern in partterns:
reg = re.compile(parttern)
check_files = ('/etc/issue',
'/etc/issue.net',
'/etc/system-release')
for fn in check_files:
if os.path.exists(fn):
out = reg.findall(util.load_file(fn).strip())
if out:
return out[0]
return ''
def get_image_type(self):
check_files = ('/etc/image-id',)
reg = re.compile("Quick Boot")
for fn in check_files:
if os.path.exists(fn):
out = reg.search(util.load_file(fn).strip())
if out:
self.image_id_type = ImageType.IMAGE_QBOOT
break
return self.image_id_type