fix 一站式安装资源池化 back问题

This commit is contained in:
liuheng 2024-01-04 15:49:40 +08:00
parent 9b936501b6
commit 6da39e6fea
2 changed files with 31 additions and 36 deletions

View File

@ -202,11 +202,10 @@ class DatabaseInstallStatus(TemplateStatus):
if not user_input:
XmlConstant.OPENGAUSS_INSTALL_DIR = XmlConstant.DATABASE_INSTALL_DIR
return DataPortStatus()
elif not check_database_dir(user_input):
if not check_database_dir(user_input):
continue
else:
XmlConstant.OPENGAUSS_INSTALL_DIR = user_input
return DataPortStatus()
XmlConstant.OPENGAUSS_INSTALL_DIR = user_input
return DataPortStatus()
class DataPortStatus(TemplateStatus):
@ -219,13 +218,11 @@ class DataPortStatus(TemplateStatus):
if user_input.lower() in ('back', 'b'):
return DatabaseInstallStatus()
if not user_input:
XmlConstant.DATABASE_PORT = XmlConstant.DATABASE_PORT
return PriStandbyStatus()
if not check_port(user_input):
continue
else:
XmlConstant.DATABASE_PORT = user_input
return PriStandbyStatus()
XmlConstant.DATABASE_PORT = user_input
return PriStandbyStatus()
class PriStandbyStatus(TemplateStatus):
@ -314,12 +311,10 @@ class DdesDssVgNameStatus(TemplateStatus):
sys.exit(0)
user_input = input(XmlConstant.RESOURCE_DATA.get('intput_ss_dss_vg_name')).strip()
if user_input.lower() in ('back', 'b'):
return DdesStatus()
return DdesDssHomeStatus()
if not user_input:
XmlConstant.DDES_INFO['ss_dss_vg_name'] = XmlConstant.DSS_VG_NAME_DIR
return DdesDssVgInfoStatus()
if not check_database_dir(user_input):
continue
XmlConstant.DDES_INFO['ss_dss_vg_name'] = user_input
return DdesDssVgInfoStatus()
@ -332,7 +327,7 @@ class DdesDssVgInfoStatus(TemplateStatus):
sys.exit(0)
user_input = input(XmlConstant.RESOURCE_DATA.get('input_dss_vg_info')).strip()
if user_input.lower() in ('back', 'b'):
return DdesDssHomeStatus()
return DdesDssVgNameStatus()
if not user_input:
XmlConstant.DDES_INFO['dss_vg_info'] = XmlConstant.DSS_VG_INFO_DIR
return DdesVotingStatus()
@ -486,7 +481,7 @@ class PriStandbyIpStatus(TemplateStatus):
return PriStandbyCountStatus()
if not user_input:
GaussLog.printMessage(XmlConstant.RESOURCE_DATA.get('ip_hostname_empty'))
return PriStandbyIpStatus()
continue
if not get_ip_hostname(user_input):
continue
GaussLog.printMessage(XmlConstant.RESOURCE_DATA.get('finish'))

View File

@ -93,19 +93,6 @@ def with_chinese():
XmlConstant.select_option(XmlConstant.RESOURCE_DATA.get('chinese'), XmlConstant.RESOURCE_DATA.get('english'))
check_common(check_input_chinese)
def display_xml_info():
if not os.path.exists(XmlConstant.TARGET_XML):
raise Exception("new xml file not found!")
GaussLog.printMessage("%s %s" % (XmlConstant.RESOURCE_DATA.get('target_xml_dir'), XmlConstant.TARGET_XML))
GaussLog.printMessage(XmlConstant.RESOURCE_DATA.get('target_xml_content'))
# use cat
cmd = "cat %s" % XmlConstant.TARGET_XML
(status, output) = subprocess.getstatusoutput(cmd)
if status == 0:
GaussLog.printMessage(output)
def confirm_xml():
for i in range(XmlConstant.TRIES):
if i == 3:
@ -127,6 +114,7 @@ class GenerateTemplate:
self.tree = ET.ElementTree()
self.root = None
self.xml_file_path = ""
self.target_xml = ""
def load_xml(self):
try:
@ -174,15 +162,15 @@ class GenerateTemplate:
def update_database_install_dir(self):
for child in self.root[0]:
if child.get('name') == "gaussdbAppPath":
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.DATABASE_INSTALL_DIR, 'app'))
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.OPENGAUSS_INSTALL_DIR, 'app'))
elif child.get('name') == "gaussdbLogPath":
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.DATABASE_INSTALL_DIR, 'log'))
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.OPENGAUSS_INSTALL_DIR, 'log'))
elif child.get('name') == "tmpMppdbPath":
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.DATABASE_INSTALL_DIR, 'tmp'))
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.OPENGAUSS_INSTALL_DIR, 'tmp'))
elif child.get('name') == "gaussdbToolPath":
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.DATABASE_INSTALL_DIR, 'tool'))
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.OPENGAUSS_INSTALL_DIR, 'tool'))
elif child.get('name') == "corePath":
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.DATABASE_INSTALL_DIR, 'corefile'))
child.attrib['value'] = os.path.normpath(os.path.join(XmlConstant.OPENGAUSS_INSTALL_DIR, 'corefile'))
def update_cluster_label_common_info(self):
self.update_cluster_label_nodename_info()
@ -195,7 +183,7 @@ class GenerateTemplate:
child.attrib['value'] = XmlConstant.DATABASE_PORT
def update_node_ip_hostname_info(self):
datanode1 = os.path.normpath(os.path.join(XmlConstant.DATABASE_INSTALL_DIR, "data/dn1"))
datanode1 = os.path.normpath(os.path.join(XmlConstant.OPENGAUSS_INSTALL_DIR, "data/dn1"))
if not XmlConstant.IS_PRI_STANDBY:
datanode1_value = datanode1
else:
@ -262,9 +250,21 @@ class GenerateTemplate:
self.update_cm_info()
def generate_new_xml_file(self):
if os.path.exists(XmlConstant.TARGET_XML):
os.remove(XmlConstant.TARGET_XML)
ET.ElementTree(self.root).write(XmlConstant.TARGET_XML)
self.target_xml = XmlConstant.TARGET_XML
if os.path.exists(self.target_xml):
os.remove(self.target_xml)
ET.ElementTree(self.root).write(self.target_xml)
def display_xml_info(self):
if not os.path.exists(self.target_xml):
raise Exception("new xml file not found!")
GaussLog.printMessage("%s %s" % (XmlConstant.RESOURCE_DATA.get('target_xml_dir'), self.target_xml))
GaussLog.printMessage(XmlConstant.RESOURCE_DATA.get('target_xml_content'))
# use cat
cmd = "cat %s" % self.target_xml
(status, output) = subprocess.getstatusoutput(cmd)
if status == 0:
GaussLog.printMessage(output)
def run(self):
# get locale
@ -290,6 +290,6 @@ class GenerateTemplate:
# generate a new xml file
self.generate_new_xml_file()
# display xml info
display_xml_info()
self.display_xml_info()
# confirm xml content
confirm_xml()