添加指定数据库参数
This commit is contained in:
parent
586fdd9d80
commit
513afa1e45
@ -116,18 +116,19 @@ class CmdOptions():
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
self.hostnamestr = ""
|
||||
self.itemstr = ""
|
||||
self.hostlistfile = ""
|
||||
self.hostnamestr = DefaultValue.EMPTY_STR
|
||||
self.itemstr = DefaultValue.EMPTY_STR
|
||||
self.hostlistfile = DefaultValue.EMPTY_STR
|
||||
self.hostnameList = []
|
||||
self.outputfile = ""
|
||||
self.logFile = ""
|
||||
self.localLog = ""
|
||||
self.outputfile = DefaultValue.EMPTY_STR
|
||||
self.logFile = DefaultValue.EMPTY_STR
|
||||
self.localLog = DefaultValue.EMPTY_STR
|
||||
self.database = DefaultValue.EMPTY_STR
|
||||
self.set = False
|
||||
self.detail = False
|
||||
self.detail_all = False
|
||||
self.item_detail = []
|
||||
self.confFile = ""
|
||||
self.confFile = DefaultValue.EMPTY_STR
|
||||
self.localMode = False
|
||||
self.skip_cgroup_set = False
|
||||
|
||||
@ -172,6 +173,7 @@ General options:
|
||||
-h Name of the host to connect to.
|
||||
-X Configuration file of the cluster.
|
||||
--detail Show detailed information.
|
||||
--database Specify the database to check.
|
||||
-o Save the result to the specified file.
|
||||
-l Path of log file.
|
||||
-? --help Show help information for this utility, and exit the command line mode.
|
||||
@ -274,6 +276,8 @@ def parseCommandLine():
|
||||
g_opts.itemstr = ParaDict.get("itemstr")
|
||||
if (ParaDict.__contains__("show_detail")):
|
||||
g_opts.detail = ParaDict.get("show_detail")
|
||||
if (ParaDict.__contains__("database")):
|
||||
g_opts.database = ParaDict.get("database")
|
||||
|
||||
|
||||
def getUserInfo():
|
||||
@ -386,6 +390,14 @@ def setLogFile():
|
||||
UserUtil.check_path_owner(g_opts.logFile)
|
||||
|
||||
|
||||
def setDatabase():
|
||||
"""
|
||||
Set database name
|
||||
"""
|
||||
if(g_opts.database == DefaultValue.EMPTY_STR):
|
||||
g_opts.database = DefaultValue.DEFAULT_DB_NAME
|
||||
|
||||
|
||||
def checkItems():
|
||||
"""
|
||||
"""
|
||||
@ -423,6 +435,8 @@ def checkParameter():
|
||||
############################################
|
||||
setLogFile()
|
||||
##########################################
|
||||
setDatabase()
|
||||
##########################################
|
||||
# set items
|
||||
############################################
|
||||
checkItems()
|
||||
@ -522,11 +536,11 @@ def performCheckorSetSE(action_item, flag_str, success_mesg, item_num,
|
||||
if command == "":
|
||||
command = Local_CheckSe
|
||||
if (configFile != ""):
|
||||
cmd = "%s -t %s -X '%s' -l '%s' %s" % (
|
||||
command, action_item, configFile, g_opts.localLog, parameters)
|
||||
cmd = "%s -t %s -X '%s' -l '%s' --database=%s %s" % (
|
||||
command, action_item, configFile, g_opts.localLog, g_opts.database, parameters)
|
||||
else:
|
||||
cmd = "%s -t %s -l '%s' %s" % (
|
||||
command, action_item, g_opts.localLog, parameters)
|
||||
cmd = "%s -t %s -l '%s' --database=%s %s" % (
|
||||
command, action_item, g_opts.localLog, g_opts.database, parameters)
|
||||
(status, output, outputMap) = getCmdOutput(cmd)
|
||||
parRes = ""
|
||||
detail_msg = ""
|
||||
|
@ -244,6 +244,7 @@ class DefaultValue():
|
||||
CAP_WIO = "CAP_SYS_RAWIO"
|
||||
CAP_ADM = "CAP_SYS_ADMIN"
|
||||
|
||||
EMPTY_STR = ""
|
||||
# env parameter
|
||||
MPPRC_FILE_ENV = "MPPDB_ENV_SEPARATE_PATH"
|
||||
SUCCESS = "Success"
|
||||
|
@ -291,7 +291,9 @@ class ErrorCode():
|
||||
'GAUSS_50501': "[GAUSS-50501] : Shared_buffers must be less than "
|
||||
"shmmax. Please check it.",
|
||||
'GAUSS_50502': "[GAUSS-50502] : Failed to obtain %s information.",
|
||||
'GAUSS_50503': "[GAUSS-50503] : %s, program exists abnormally."
|
||||
'GAUSS_50503': "[GAUSS-50503] : %s, program exists abnormally.",
|
||||
'GAUSS_50504': "[GAUSS-50504] : Failed to execute the command: %s.\n"
|
||||
"ERROR: %s"
|
||||
}
|
||||
|
||||
###########################################################################
|
||||
|
@ -98,7 +98,7 @@ gs_checkos = ["-?", "--help", "-V", "--version", "-h:", "-f:", "-o:",
|
||||
"-i:", "--detail",
|
||||
"-l:", "-X:"]
|
||||
gs_checkse = ["-?", "--help", "-V", "--version", "-h:", "-f:", "-o:",
|
||||
"-i:", "--detail",
|
||||
"-i:", "--detail", "--database=",
|
||||
"-l:", "-X:"]
|
||||
gs_expansion = ["-?", "--help", "-V", "--version", "-U:", "-G:", "-L",
|
||||
"-X:", "-h:", "--sep-env-file=", "--time-out="]
|
||||
@ -346,6 +346,7 @@ class Parameter():
|
||||
"-p": "port",
|
||||
"--dn-port": "dn-port",
|
||||
"--dn-ip": "dn-ip",
|
||||
"--database": "database",
|
||||
"--interval": "interval",
|
||||
"--threshold": "threshold",
|
||||
"--check-count": "check_count",
|
||||
|
@ -176,11 +176,11 @@ def getDatabaseInfo(data, sql_query):
|
||||
output : Instantion
|
||||
"""
|
||||
port = int(getValueFromFile('port'))
|
||||
cmd = f"gsql -d postgres -p '{port}' -r -c \"{sql_query}\""
|
||||
database = g_opts.database
|
||||
cmd = f"gsql -d {database} -p '{port}' -r -c \"{sql_query}\""
|
||||
status, output = subprocess.getstatusoutput(cmd)
|
||||
if status != 0:
|
||||
raise Exception((ErrorCode.GAUSS_505["GAUSS_50502"] % "ConnectionConfiguration") +
|
||||
("The cmd is : %s" % cmd))
|
||||
raise Exception(ErrorCode.GAUSS_505["GAUSS_50504"] % (cmd, output))
|
||||
if "ERROR:" in output:
|
||||
raise Exception(ErrorCode.GAUSS_513["GAUSS_51300"] % output)
|
||||
value = extractRowsCount(output)
|
||||
@ -3556,27 +3556,34 @@ def setAdminPrivileges(data):
|
||||
result = AdminPrivileges()
|
||||
result.db = []
|
||||
try:
|
||||
for item in data[0].db:
|
||||
sql_query = """ALTER ROLE %s NOCREATEROLE;""" %(item.split("|")[0].strip())
|
||||
getDatabaseInfo(result, sql_query)
|
||||
for item in data[1].db:
|
||||
sql_query = """ALTER ROLE %s NOCREATEDB;""" %(item.split("|")[0].strip())
|
||||
getDatabaseInfo(result, sql_query)
|
||||
for item in data[2].db:
|
||||
sql_query = """ALTER ROLE %s NOAUDITADMIN;""" %(item.split("|")[0].strip())
|
||||
getDatabaseInfo(result, sql_query)
|
||||
for item in data[3].db:
|
||||
sql_query = """ALTER ROLE %s NOMONADMIN;""" %(item.split("|")[0].strip())
|
||||
getDatabaseInfo(result, sql_query)
|
||||
for item in data[4].db:
|
||||
sql_query = """ALTER ROLE %s NOOPRADMIN;""" %(item.split("|")[0].strip())
|
||||
getDatabaseInfo(result, sql_query)
|
||||
for item in data[5].db:
|
||||
sql_query = """ALTER ROLE %s NOPOLADMIN;""" %(item.split("|")[0].strip())
|
||||
getDatabaseInfo(result, sql_query)
|
||||
alter_role(data, result)
|
||||
except Exception as e:
|
||||
data = AdminPrivileges()
|
||||
data.errormsg = e.__str__()
|
||||
|
||||
def alter_role(data, result):
|
||||
"""
|
||||
function : Alter role
|
||||
input : Instantion, Instantion
|
||||
output : NA
|
||||
"""
|
||||
role_actions = [
|
||||
("NOCREATEROLE", 0),
|
||||
("NOCREATEDB", 1),
|
||||
("NOAUDITADMIN", 2),
|
||||
("NOMONADMIN", 3),
|
||||
("NOOPRADMIN", 4),
|
||||
("NOPOLADMIN", 5)
|
||||
]
|
||||
|
||||
for action, index in role_actions:
|
||||
for item in data[index].db:
|
||||
role_name = item.split("|")[0].strip()
|
||||
if not role_name:
|
||||
continue
|
||||
sql_query = f"ALTER ROLE {role_name} {action};"
|
||||
getDatabaseInfo(result, sql_query)
|
||||
|
||||
def setEnableSeparationOfDuty(data):
|
||||
"""
|
||||
function : Set Enable Separation Of Duty
|
||||
@ -4744,6 +4751,7 @@ class CmdOptions():
|
||||
self.user = ""
|
||||
self.extrachecklist = []
|
||||
self.logFile = ""
|
||||
self.database = ""
|
||||
self.confFile = ""
|
||||
self.mtuValue = ""
|
||||
self.hostname = ""
|
||||
@ -4796,7 +4804,7 @@ def usage():
|
||||
"""
|
||||
Usage:
|
||||
python3 --help | -?
|
||||
python3 LocalCheckSE -t action [-l logfile] [-X xmlfile] [-V]
|
||||
python3 LocalCheckSE -t action [-l logfile] [-X xmlfile] [-V] [--database=database]
|
||||
Common options:
|
||||
-t The type of action.
|
||||
-s the path of MPPDB file
|
||||
@ -4804,6 +4812,7 @@ Common options:
|
||||
-? --help Show this help screen.
|
||||
-X --xmlfile = xmlfile Cluster config file
|
||||
--ntp-server NTP server node's IP.
|
||||
--database=database Specify the database to check.
|
||||
-V --version
|
||||
"""
|
||||
print(usage.__doc__)
|
||||
@ -4818,7 +4827,7 @@ def parseCommandLine():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "t:s:l:X:V?",
|
||||
["help", "log-file=", "xmlfile=",
|
||||
"MTUvalue=", "hostname=",
|
||||
"MTUvalue=", "hostname=", "database=",
|
||||
"ntp-server=", "version"])
|
||||
except Exception as e:
|
||||
usage()
|
||||
@ -4852,6 +4861,8 @@ def parseCommandLine():
|
||||
g_opts.mtuValue = value
|
||||
elif (key == "--hostname"):
|
||||
g_opts.hostname = value
|
||||
elif (key == "--database"):
|
||||
g_opts.database = value
|
||||
Parameter.checkParaVaild(key, value)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user