Fix bug 1987:
添加安装完成后的动作(重启/关机/待机)
修改: interface/ri_data.py
修改: interface/ri_inst_cli.py
修改: interface/ri_install.py
修改: main/setup
修改: text/ri_main.py
修改: text/ri_newt.py
Signed-off-by: sysadmin <zhihuipeng@linx-info.com>
This commit is contained in:
@@ -735,6 +735,8 @@ def init_from_xml():
|
||||
Service.init_from_xml(n)
|
||||
elif n.nodeName == 'stategrid':
|
||||
StateGrid.init_from_xml(n)
|
||||
elif n.nodeName == 'finishstate':
|
||||
FinishState.init_from_xml(n)
|
||||
|
||||
def init_from_xml_and_os():
|
||||
''' init all classes in this module from file and os '''
|
||||
@@ -767,6 +769,7 @@ def to_xml():
|
||||
Network.to_xml(xmldoc, root)
|
||||
Group.to_xml(xmldoc, root)
|
||||
Service.to_xml(xmldoc, root)
|
||||
FinishState.to_xml(xmldoc, root)
|
||||
|
||||
PrettyPrint(xmldoc, f)
|
||||
f.close()
|
||||
@@ -794,3 +797,25 @@ p_node - xml node (parent node)'''
|
||||
|
||||
p_node.appendChild(stgd)
|
||||
|
||||
class FinishState():
|
||||
''' decide reboot or shutdown or keep current status when finishing
|
||||
OS install, flag include three value: reboot, shutdown, nothing'''
|
||||
flag = ''
|
||||
|
||||
@staticmethod
|
||||
def init_from_xml(node):
|
||||
''' init finish state flag from xml node '''
|
||||
#FinishState.flag = node.firstChild.data.encode('ascii')
|
||||
for k in node.attributes.keys():
|
||||
setattr(FinishState, k, node.attributes[k].value.encode('ascii'))
|
||||
|
||||
@staticmethod
|
||||
def to_xml(doc, p_node):
|
||||
''' write reboot or not flag into xml
|
||||
doc - xml document instance
|
||||
p_node - xml node (parent node)'''
|
||||
std = doc.createElement('finishstate')
|
||||
for ft in ('flag',):
|
||||
to_xml_attr(doc, std, FinishState, ft)
|
||||
|
||||
p_node.appendChild(std)
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
import ri_progress,re,os
|
||||
from ri_oper import language, Rate
|
||||
from snack import *
|
||||
import ri_data
|
||||
|
||||
def set_task(task_name):
|
||||
ri_progress.i_operation = task_name
|
||||
|
||||
@@ -36,36 +38,47 @@ def set_task_over():
|
||||
# if re.match('instmode=',i):
|
||||
# instmode = i.split('=')[1]
|
||||
# break
|
||||
try:
|
||||
instmode = os.environ["instmode"]
|
||||
except:
|
||||
instmode = 'Text'
|
||||
#try:
|
||||
# instmode = os.environ["instmode"]
|
||||
#except:
|
||||
# instmode = 'Text'
|
||||
screen = SnackScreen()
|
||||
screen.drawRootText(0, 0, 'Rocky Security OS Install')
|
||||
screen.pushHelpLine(' ')
|
||||
g = GridForm(screen, 'Rocky Install', 1, 3)
|
||||
txt1 = Label('Automated Install Rocky OS successfully, and the OS will reboot in 10 seconds ......')
|
||||
txt2 = Label('Install Rocky OS successfully, do you want to reboot ?')
|
||||
txt2 = Label('Automated Install Rocky OS successfully, and the OS will shutdown in 10 seconds ......')
|
||||
txt3 = Label('Install Rocky OS successfully, do you want to reboot ?')
|
||||
elabel = Label('')
|
||||
bb = ButtonBar(screen, (('Ok','ok'),('Cancel','cancel')))
|
||||
g.add(elabel, 0, 1)
|
||||
if instmode == 'Auto' or instmode == 'StateGrid':
|
||||
#if instmode == 'Auto' or instmode == 'StateGrid':
|
||||
if ri_data.FinishState.flag.strip() == 'reboot':
|
||||
g.add(txt1, 0, 1)
|
||||
g.setTimer(10000)
|
||||
g.runOnce()
|
||||
screen.finish()
|
||||
return True
|
||||
else:
|
||||
g.add(txt2, 0, 0)
|
||||
#return True
|
||||
return 'reboot'
|
||||
elif ri_data.FinishState.flag.strip() == 'shutdown':
|
||||
g.add(txt2, 0, 1)
|
||||
g.setTimer(10000)
|
||||
g.runOnce()
|
||||
screen.finish()
|
||||
#return True
|
||||
return 'shutdown'
|
||||
elif ri_data.FinishState.flag.strip() == 'nothing':
|
||||
g.add(txt3, 0, 0)
|
||||
g.add(bb, 0, 2)
|
||||
res = g.run()
|
||||
screen.refresh()
|
||||
if bb.buttonPressed(res) == 'ok':
|
||||
screen.finish()
|
||||
return True
|
||||
#return True
|
||||
return 'reboot'
|
||||
else:
|
||||
screen.finish()
|
||||
return False
|
||||
return 'nothing'
|
||||
|
||||
def root_destroy():
|
||||
pass
|
||||
|
||||
@@ -34,10 +34,16 @@ import partition_data as p_d
|
||||
|
||||
def install_over(ret):
|
||||
if ri_oper.Rate.value == 100 and ret == 0:
|
||||
if display.set_task_over():
|
||||
ret_set_task_over = display.set_task_over()
|
||||
if ret_set_task_over == 'reboot':
|
||||
print "reboot ..."
|
||||
os.system("reboot")
|
||||
else:
|
||||
elif ret_set_task_over == 'shutdown':
|
||||
print "shutdown ..."
|
||||
#os.system("shutdown -h now")
|
||||
os.system("eject")
|
||||
os.system("echo b >/proc/sysrq-trigger")
|
||||
elif ret_set_task_over == 'nothing':
|
||||
display.root_destroy()
|
||||
|
||||
def show_progress():
|
||||
|
||||
Reference in New Issue
Block a user