om仓迁移
This commit is contained in:
126
script/gspylib/common/VersionInfo.py
Normal file
126
script/gspylib/common/VersionInfo.py
Normal file
@ -0,0 +1,126 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
#############################################################################
|
||||
# Copyright (c) 2020 Huawei Technologies Co.,Ltd.
|
||||
#
|
||||
# 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.
|
||||
#############################################################################
|
||||
"""
|
||||
This file is for Gauss version things.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
|
||||
sys.path.append(sys.path[0] + "/../../")
|
||||
from gspylib.common.ErrorCode import ErrorCode
|
||||
|
||||
|
||||
class VersionInfo():
|
||||
"""
|
||||
Info about current version
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
# package version
|
||||
__PACKAGE_VERSION = ""
|
||||
# OM version string
|
||||
COMMON_VERSION = "Gauss200 OM VERSION"
|
||||
# It will be replaced with the product version, such as "Gauss200",
|
||||
# while being packaged by mpp_package.sh
|
||||
PRODUCT_NAME = "__GAUSS_PRODUCT_STRING__"
|
||||
PRODUCT_NAME_PACKAGE = "-".join(PRODUCT_NAME.split())
|
||||
__COMPATIBLE_VERSION = []
|
||||
COMMITID = ""
|
||||
|
||||
@staticmethod
|
||||
def getPackageVersion():
|
||||
"""
|
||||
function: Get the current version from version.cfg
|
||||
input : NA
|
||||
output: String
|
||||
"""
|
||||
if (VersionInfo.__PACKAGE_VERSION != ""):
|
||||
return VersionInfo.__PACKAGE_VERSION
|
||||
# obtain version file
|
||||
versionFile = VersionInfo.get_version_file()
|
||||
version, number, commitid = VersionInfo.get_version_info(versionFile)
|
||||
# the 2 value is package version
|
||||
VersionInfo.__PACKAGE_VERSION = version
|
||||
return VersionInfo.__PACKAGE_VERSION
|
||||
|
||||
@staticmethod
|
||||
def getCommitid():
|
||||
if VersionInfo.COMMITID != "":
|
||||
return VersionInfo.COMMITID
|
||||
versionFile = VersionInfo.get_version_file()
|
||||
version, number, commitid = VersionInfo.get_version_info(versionFile)
|
||||
# the 2 value is package version
|
||||
VersionInfo.COMMITID = commitid
|
||||
return VersionInfo.COMMITID
|
||||
|
||||
@staticmethod
|
||||
def get_version_file():
|
||||
"""
|
||||
function: Get version.cfg file
|
||||
input : NA
|
||||
output: String
|
||||
"""
|
||||
# obtain version file
|
||||
dirName = os.path.dirname(os.path.realpath(__file__))
|
||||
versionFile = os.path.join(dirName, "./../../../", "version.cfg")
|
||||
versionFile = os.path.realpath(versionFile)
|
||||
if (not os.path.exists(versionFile)):
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50201"] % versionFile)
|
||||
if (not os.path.isfile(versionFile)):
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50210"] % versionFile)
|
||||
return versionFile
|
||||
|
||||
@staticmethod
|
||||
def get_version_info(versionFile):
|
||||
|
||||
# the infomation of versionFile like this:
|
||||
# openGauss-1.0
|
||||
# XX.0
|
||||
# ae45cfgt
|
||||
if not os.path.exists(versionFile):
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50201"] % versionFile)
|
||||
if not os.path.isfile(versionFile):
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50210"] % versionFile)
|
||||
with open(versionFile, 'r') as fp:
|
||||
retLines = fp.readlines()
|
||||
if len(retLines) < 3:
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50222"] % versionFile)
|
||||
|
||||
version = re.compile(r'[0-9]+\.[0-9]+\.[0-9]+').search(
|
||||
retLines[0].strip()).group()
|
||||
number = retLines[1].strip()
|
||||
commitId = retLines[2].strip()
|
||||
|
||||
if version is None:
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50222"] %
|
||||
"version.cfg" + "Does not have version "
|
||||
"such as openGauss-1.0")
|
||||
try:
|
||||
float(number)
|
||||
except Exception as e:
|
||||
raise Exception(str(e) + ErrorCode.GAUSS_516["GAUSS_51628"]
|
||||
% number)
|
||||
|
||||
if not (commitId.isalnum() and len(commitId) == 8):
|
||||
raise Exception(ErrorCode.GAUSS_502["GAUSS_50222"] % versionFile
|
||||
+ " Commit id is wrong.")
|
||||
return version, number, commitId
|
Reference in New Issue
Block a user