Modify finish_install interface:
exec_finish_install will run all executable scripts in the
finish_install dir in turn.
Add support to ext4 in mount_partition.sh
move auto_install.py and state_grid.py to text dir
modified: operation/exec_finish_install.sh
new file: operation/finish_install/95state_grid_custom.py
modified: operation/finish_install/99finish_install.sh
new file: operation/finish_install/exec_post_add.sh
modified: operation/install.txt
modified: operation/mount_partition.sh
renamed: AutoInstall/auto_install.py -> text/auto_install.py
renamed: StateGrid/state_grid.py -> text/state_grid.py
This commit is contained in:
67
text/auto_install.py
Normal file
67
text/auto_install.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import os,sys
|
||||
from xml.dom import minidom
|
||||
from xml.dom.ext import PrettyPrint
|
||||
sys.path.append('../interface/')
|
||||
sys.path.append('../new_partition/')
|
||||
sys.path.append('../text/')
|
||||
import ri_data
|
||||
import partition_data
|
||||
import interface_partition
|
||||
import ri_newt
|
||||
|
||||
list=['partition','raid','mountpoint']
|
||||
install_xml = '/var/install/install.xml'
|
||||
|
||||
init_partition_from_os_flag = True
|
||||
init_mountpoint_flag = True
|
||||
init_raid_from_os = True
|
||||
count=0
|
||||
while True :
|
||||
if count == 0:
|
||||
if init_raid_from_os:
|
||||
ri_data.Raid.init_from_os()
|
||||
init_raid_from_os = False
|
||||
if init_partition_from_os_flag:
|
||||
partition_data.Partition.init_from_os(unit='s')
|
||||
init_partition_from_os_flag = False
|
||||
s = interface_partition.main()
|
||||
|
||||
if init_mountpoint_flag:
|
||||
ri_data.MountPoint.init_from_internal()
|
||||
init_mountpoint_flag = False
|
||||
if len(ri_newt.Raid.init_from_internal()) < 2 and len(ri_data.Raid.dict) == 0:
|
||||
if list[1] == 'raid':
|
||||
del list[1]
|
||||
else:
|
||||
if list[1] != 'raid':
|
||||
list.insert(1, 'raid')
|
||||
else:
|
||||
if list[count] == 'raid':
|
||||
ri_newt.Raid()
|
||||
elif list[count] == 'mountpoint':
|
||||
ri_newt.MountPoint()
|
||||
s = ri_newt.Screen.dict[list[count]].set_data()
|
||||
|
||||
if int(s) == 0:
|
||||
count = count + 1
|
||||
else:
|
||||
count = count - 1
|
||||
|
||||
if count < 0 or count > len(list) - 1:
|
||||
try:
|
||||
ri_newt.Screen.screen.finish()
|
||||
except:
|
||||
pass
|
||||
break
|
||||
|
||||
if s == '0':
|
||||
xmldoc = minidom.parse(install_xml)
|
||||
root = xmldoc.firstChild
|
||||
f = file(install_xml, 'w')
|
||||
partition_data.Partition.to_xml(xmldoc, root)
|
||||
ri_data.Raid.to_xml(xmldoc, root)
|
||||
PrettyPrint(xmldoc, f)
|
||||
f.close()
|
||||
os.system("python ../interface/ri_install.py")
|
||||
|
||||
|
||||
85
text/state_grid.py
Executable file
85
text/state_grid.py
Executable file
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env python
|
||||
from snack import *
|
||||
from xml.dom import minidom
|
||||
from xml.dom.ext import PrettyPrint
|
||||
import sys
|
||||
|
||||
sys.path.append('../interface/')
|
||||
sys.path.append('../text/')
|
||||
|
||||
import ri_newt
|
||||
import ri_data
|
||||
|
||||
install_xml = '/var/install/install.xml'
|
||||
|
||||
class Username(ri_newt.Screen):
|
||||
def __init__(self):
|
||||
ri_newt.Screen.__init__(self, name='username',title='StateGrid custom install')
|
||||
ri_newt.Screen.screen.pushHelpLine('<Tab> moves; <Space> selects; <Enter> activates buttons')
|
||||
|
||||
self.text = 'This username will use as State Grid user. Can not be a system user or reserver user. Please enter username:'
|
||||
ri_newt.Screen.widget_textboxreflowed(80, self.text)
|
||||
ri_newt.Screen.widget_buttonbar([('Continue','ok','F12')])
|
||||
|
||||
def set_data(self):
|
||||
ri_newt.Screen.widget_entry(75, text='')
|
||||
s = ri_newt.Screen.yesno('[!!] State Grid custom install', 1, 5, 'TextboxReflowed', 'eLabel', 'Entry', 'eLabel', 'ButtonBar')
|
||||
if s == 0:
|
||||
ri_data.StateGrid.username = ri_newt.Screen.entry.value()
|
||||
return s
|
||||
|
||||
class HomeDirectory(ri_newt.Screen):
|
||||
def __init__(self):
|
||||
ri_newt.Screen.__init__(self, name='home_dir',title='StateGrid custom install')
|
||||
ri_newt.Screen.screen.pushHelpLine('<Tab> moves; <Space> selects; <Enter> activates buttons')
|
||||
|
||||
self.text = 'This directory will use as State Grid user home directory. Can not be /home/{sysadmin,netadmin,secadmin,audadmin}.\n\nPlease enter home directory:'
|
||||
ri_newt.Screen.widget_textboxreflowed(80, self.text)
|
||||
ri_newt.Screen.widget_buttonbar([('Continue','ok','F12')])
|
||||
|
||||
def set_data(self):
|
||||
ri_newt.Screen.widget_entry(75, text='')
|
||||
s = ri_newt.Screen.yesno('[!!] State Grid custom install', 1, 5, 'TextboxReflowed', 'eLabel', 'Entry', 'eLabel', 'ButtonBar')
|
||||
if s == 0:
|
||||
ri_data.StateGrid.home_dir = ri_newt.Screen.entry.value()
|
||||
return s
|
||||
|
||||
class Shell(ri_newt.Screen):
|
||||
def __init__(self):
|
||||
ri_newt.Screen.__init__(self, name='shell',title='StateGrid custom install')
|
||||
ri_newt.Screen.screen.pushHelpLine('<Tab> moves; <Space> selects; <Enter> activates buttons')
|
||||
|
||||
self.text = 'This shell will use as State Grid user shell, Please enter user shell:'
|
||||
ri_newt.Screen.widget_textboxreflowed(80, self.text)
|
||||
ri_newt.Screen.widget_buttonbar([('Continue','ok','F12')])
|
||||
|
||||
def set_data(self):
|
||||
ri_newt.Screen.widget_entry(75, text='')
|
||||
s = ri_newt.Screen.yesno('[!!] State Grid custom install', 1, 5, 'TextboxReflowed', 'eLabel', 'Entry', 'eLabel', 'ButtonBar')
|
||||
if s == 0:
|
||||
ri_data.StateGrid.shell = ri_newt.Screen.entry.value()
|
||||
|
||||
if __name__ == "__main__":
|
||||
Username()
|
||||
ri_newt.Screen.dict['username'].set_data()
|
||||
HomeDirectory()
|
||||
ri_newt.Screen.dict['home_dir'].set_data()
|
||||
Shell()
|
||||
ri_newt.Screen.dict['shell'].set_data()
|
||||
|
||||
xmldoc = minidom.parse(install_xml)
|
||||
root = xmldoc.firstChild
|
||||
f = file(install_xml,'w')
|
||||
ri_data.StateGrid.to_xml(xmldoc, root)
|
||||
PrettyPrint(xmldoc, f)
|
||||
f.close()
|
||||
|
||||
ri_newt.Screen.screen.finish()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user