68 lines
2.7 KiB
Python
68 lines
2.7 KiB
Python
# -*- coding:utf-8 -*-
|
|
#############################################################################
|
|
# Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
|
# Portions Copyright (c) 2007 Agendaless Consulting and Contributors.
|
|
#
|
|
# openGauss is licensed under Mulan PSL v2.
|
|
# You can use this software according to the terms
|
|
# and conditions of the Mulan PSL v2.
|
|
# You may obtain a copy of Mulan PSL v2 at:
|
|
#
|
|
# http://license.coscl.org.cn/MulanPSL2
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OF ANY KIND,
|
|
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
# See the Mulan PSL v2 for more details.
|
|
# ----------------------------------------------------------------------------
|
|
# Description : glable os platform instance.
|
|
# ############################################################################
|
|
|
|
from gspylib.common.ErrorCode import ErrorCode
|
|
from os_platform.common import SUPPORT_WHOLE_PLATFORM_LIST, SUSE, \
|
|
SUPPORT_RHEL_SERIES_PLATFORM_LIST
|
|
from os_platform.linux_distro import LinuxDistro
|
|
from os_platform.rhel_platform import RHELPlatform
|
|
from os_platform.sles_platform import SLESPlatform
|
|
|
|
|
|
class UserPlatform(object):
|
|
"""
|
|
manage Red Hat Enterprise Linux command,config or service for muti-platform
|
|
"""
|
|
def __init__(self):
|
|
"""
|
|
function : Check support OS version and init OS class
|
|
"""
|
|
# now we support this platform:
|
|
# RHEL/CentOS "6.4", "6.5", "6.6", "6.7", "6.8", "6.9",
|
|
# "7.0", "7.1", "7.2", "7.3", "7.4", "7.5 "64bit
|
|
# EulerOS "2.0", "2.3" 64bit
|
|
# SuSE11 sp1/2/3/4 64bit
|
|
# SuSE12 sp0/1/2/3 64bit
|
|
# Kylin "10" 64bit
|
|
# Ubuntu "18.04" 64bit
|
|
dist_name = LinuxDistro.linux_distribution()[0]
|
|
if dist_name.lower() not in SUPPORT_WHOLE_PLATFORM_LIST:
|
|
raise Exception(ErrorCode.GAUSS_519["GAUSS_51900"] +
|
|
"Supported platforms are: %s." % str(
|
|
SUPPORT_WHOLE_PLATFORM_LIST))
|
|
|
|
if dist_name.lower() == SUSE:
|
|
# SuSE11.X SUSE12.X
|
|
self.userPlatform = SLESPlatform()
|
|
elif dist_name.lower() in SUPPORT_RHEL_SERIES_PLATFORM_LIST:
|
|
# RHEL6.X RHEL7.X
|
|
self.userPlatform = RHELPlatform()
|
|
else:
|
|
# EULEROS 2.0/2.3
|
|
self.userPlatform = RHELPlatform()
|
|
try:
|
|
self.userPlatform.getCurrentPlatForm()
|
|
except Exception as excep:
|
|
raise Exception(str(excep))
|
|
|
|
# global platform class
|
|
g_Platform = UserPlatform().userPlatform
|