我编写了一个简单的菜单系统,用于动态创建kickstart脚本,Anaconda将在部署基于Linux的应用程序框架时使用这些脚本。工具:python2.7.14、npyscreen、jinja2
我在开发过程中使用了Vagrant进行快速测试。我所有的测试用例都通过了a-ok,菜单也很好地退出了。你知道吗
当我将菜单添加到一个*.sh文件中以构建一个自定义ISO时,它会很好地打开菜单系统。我可以按预期使用它。输入完数据后,我在主屏幕上单击“ok”,它将清除菜单、生成数据并继续部署。你知道吗
单击“确定”时,菜单不会清除屏幕。不过,部署确实会在后台继续进行。切换到第一个VTY行(ctrl+alt+F1)将显示预期的输出。你知道吗
我不知道该把这个固定在哪一边。与使用第一行相比,似乎正在使用新的VTY行,因此用户不需要按ctrl+alt+F1来更改VTY行。你知道吗
<*.sh || OMITTED CONFIG>
mkdir -p $ISOLINUXDIR/EXTRAS/kickstart-menu
cp -r ../kickstart-menu/{classes.py,jinja2,kickstart.py,kickstarts,markupsafe,menu.py,npyscreen} $ISOLINUXDIR/EXTRAS/kickstart-menu
cp -r ../kickstart-menu/kickstarts/* $ISOLINUXDIR/ks
</OMITTED CONFIG>
还有。。。你知道吗
# Some code omitted
class MainForm(npyscreen.ActionFormMinimal):
# Home Screen
def create(self):
self.name = "MyApp!"
self.add(MainMenuWidget)
def on_ok(self):
self.editing = False
self.parentApp.setNextForm(None)
def exit_application(self):
self.editing = False
self.parentApp.setNextForm(None)
if __name__ == '__main__':
try:
KICKSTART_MENU = menuSystem()
KICKSTART_MENU.run()
ksCreator(KICKSTART_MENU)
sys.exit(0)
except KeyboardInterrupt:
logData(KICKSTART_MENU)
sys.exit(0)
目前没有回答
相关问题 更多 >
编程相关推荐