coolany eae422baf3 适配CM组件
Signed-off-by: coolany <kyosang@163.com>

support cgroup

追加合入
2022-03-05 18:51:52 +08:00

151 lines
5.5 KiB
Python

# -*- 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.
# ----------------------------------------------------------------------------
import sys
import os
localDirPath = os.path.dirname(os.path.realpath(__file__))
sys.path.append(sys.path[0] + "/../../")
from base_utils.os.cmd_util import CmdUtil
class fileManage():
"""
Class to handle OS file operations
"""
SHELL_CMD_DICT = {
"deleteFile": "(if [ -f '%s' ];"
"then rm -f '%s';fi)",
"deleteLibFile": "cd %s && ls | grep -E '%s'|"
"xargs rm -f",
"cleanDir": "(if [ -d '%s' ];then rm -rf "
"'%s'/* && cd '%s' && ls -A | "
"xargs rm -rf ; fi)",
"execShellFile": "sh %s",
"getFullPathForShellCmd": "which %s",
"deleteDir": "(if [ -d '%s' ];then rm "
"-rf '%s';fi)",
"deleteLib": "(if [ -e '%s' ];then rm "
"-rf '%s';fi)",
"createDir": "(if [ ! -d '%s' ]; "
"then mkdir -p '%s' -m %s;fi)",
"createFile": "touch '%s' && chmod %s '%s'",
"deleteBatchFiles": "rm -f %s*",
"compressTarFile": "cd '%s' && tar -cf "
"'%s' %s && chmod %s '%s'",
"decompressTarFile": "cd '%s' && tar -xf '%s' ",
"copyFile": " cp -rf %s %s ",
"sshCmd": "pssh -s -H %s 'source %s;%s'",
"renameFile": "(if [ -f '%s' ];then mv '%s' "
"'%s';fi)",
"cleanFile": "if [ -f %s ]; then echo '' > "
"%s; fi",
"exeRemoteShellCMD": "pssh -s -H %s 'source %s;%s'",
"exeRemoteShellCMD1": "pssh -s -H %s \"%s\"",
"userExeRemoteShellCmd": "su - %s -c \"pssh -s -H %s "
"'%s'\"",
"checkUserPermission": "su - %s -c \"cd '%s'\"",
"getFileTime": "echo $[`date +%%s`-`stat -c "
"%%Y %s`]",
"scpFileToRemote": "pscp -H '%s' '%s' '%s'",
"scpFileFromRemote": "pssh -s -H '%s' \"pscp -H "
"'%s' '%s' '%s' \"",
"findfiles": "cd %s && find . "
"-type l -print",
"copyFile1": "(if [ -f '%s' ];then cp "
"'%s' '%s';fi)",
"copyFile2": "(if [ -f '%s' ] && [ ! -f "
"'%s' ];then cp '%s' '%s';fi)",
"copyRemoteFile": "(if [ -d '%s' ];then pssh "
"-s -H '%s' \"pscp -H '%s' "
"'%s' '%s' \";fi)",
"cleanDir1": "(if [ -d '%s' ]; then cd "
"'%s' && rm -rf '%s' && "
"rm -rf '%s' && cd -; fi)",
"cleanDir2": "(if [ -d '%s' ]; then "
"rm -rf '%s'/* && cd '%s' && "
"ls -A | xargs rm -rf && "
"cd -; fi)",
"cleanDir3": "rm -rf '%s'/* && cd '%s' && "
"ls -A | xargs rm -rf && "
"cd - ",
"cleanDir4": "rm -rf %s/*",
"checkNodeConnection": "ping %s -i 1 -c 3 |grep ttl |"
"wc -l",
"overWriteFile": "echo '%s' > '%s'",
"physicMemory": "cat /proc/meminfo | "
"grep MemTotal",
"findFile": "(if [ -d '%s' ]; then "
"find '%s' -type f;fi)",
"unzipForce": "unzip -o '%s' -d '%s'",
"killAll": CmdUtil.findCmdInPath("killall") + " %s",
"sleep": "sleep %s",
"softLink": "ln -s '%s' '%s'",
"findwithcd": "cd %s && find ./ -name %s",
"installRpm": "rpm -ivh --nofiledigest %s "
"--nodeps --force --prefix=%s",
"changeMode": "chmod %s %s",
"checkPassword": "export LC_ALL=C; "
"chage -l %s | "
"grep -i %s"
}
def __init__(self):
"""
constructor
"""
pass
def checkClusterPath(self, path_name):
"""
Check the path
:param path_name:
:return:
"""
if not path_name:
return False
a_ascii = ord('a')
z_ascii = ord('z')
A_ascii = ord('A')
Z_ascii = ord('Z')
num0_ascii = ord('0')
num9_ascii = ord('9')
blank_ascii = ord(' ')
sep1_ascii = ord('/')
sep2_ascii = ord('_')
sep3_ascii = ord('-')
sep4_ascii = ord(':')
sep5_ascii = ord('.')
sep6_ascii = ord(',')
for path_char in path_name:
char_check = ord(path_char)
if (not (a_ascii <= char_check <= z_ascii or A_ascii <=
char_check <= Z_ascii or
num0_ascii <= char_check <= num9_ascii or
char_check == blank_ascii or
char_check == sep1_ascii or
char_check == sep2_ascii or
char_check == sep3_ascii or
char_check == sep4_ascii or
char_check == sep5_ascii or
char_check == sep6_ascii)):
return False
return True
g_file = fileManage()