def process(): global NvLtDrvURL, LatestFile, LatestHeader, DownloadFlag, SymlinkFlag screen = SnackScreen() bb = ButtonBar(screen, (("End", "end"), )) tbTittle = Textbox(65, 3, "Processing Input... ", 0, 1) tbDownload = Textbox(65, 3, " ", 0, 1) tbSymlink = Textbox(65, 3, " ", 0, 1) g = GridForm(screen, "chkltdr (NvDrIn) - by Trodskovich", 1, 6) g.add(tbTittle, 0, 2) g.add(tbDownload, 0, 3, growx=1) g.add(tbSymlink, 0, 4, growx=1) g.add(bb, 0, 5, growx=1) if DownloadFlag: tbDownload.setText("Downloading Please Wait...") result = g.runOnce() screen.finish() urllib.request.urlretrieve(NvLtDrvURL, "./" + LatestFile) else: tbDownload.setText("Download Skipped") if SymlinkFlag: subprocess.call( ["ln -nfs ./" + LatestFile + " NVIDIA-Linux-x86_64-Latest.run"], shell=True) tbSymlink.setText("Symlink Created") else: tbSymlink.setText("Symlink Skipped") result = g.runOnce() screen.finish() return bb.buttonPressed(result)
def display_create_template(screen, title, vm_type, templates, help=None): """Helper function for displaying a form for creating a new VM template""" label_base = Textbox( 40, 2, 'Select %s VM to be used as a basis\n(only stopped VMs are allowed)' % vm_type, 0, 0) base_tmpl = Listbox(7, 1, 0, 30, 1) for vm in templates.keys(): base_tmpl.append(templates[vm], vm) label_newname = Textbox(40, 2, 'Name of the template to be created', 0, 0) spacer1 = Textbox(1, 1, "", 0, 0) spacer2 = Textbox(1, 1, "", 0, 0) entry_newname = Entry(30, 'template_name') bb = ButtonBar(screen, ('Create new template', ('Back to menu', 'back'))) form = GridFormHelp(screen, title, help, 1, 7) form.add(label_base, 0, 0) form.add(base_tmpl, 0, 1) form.add(spacer1, 0, 2) form.add(label_newname, 0, 3) form.add(entry_newname, 0, 4) form.add(spacer2, 0, 5) form.add(bb, 0, 6) form_result = form.runOnce() tmpl_name = entry_newname.value() # remove whitespaces from the template name tmpl_name = re.sub(r'\s', '', tmpl_name) return (bb.buttonPressed(form_result), str(base_tmpl.current()), tmpl_name)
def _define_view(self, button_save, button_exit): rows = [(Textbox(20, 1, "Template name:", 0, 0), self.template_name), self.separator, (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Min memory size (GB):", 0, 0), self.memory_min), self.separator, (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "Min number of CPUs:", 0, 0), self.vcpu_min), self.separator, (button_exit, button_save)] return rows
def _define_view(self, button_save, button_exit): rows = super(KvmTemplateEditForm, self)._define_view(button_save, button_exit) rows.insert(-2, self.separator) rows.insert(-2, (Textbox(20, 1, 'Default admin:', 0, 0), self.username)) rows.insert(-2, self.separator) rows.insert(-2, (Textbox(20, 1, 'Password:'******'Password x2:', 0, 0), self.password2)) return rows
def display(self): button_save, button_exit = Button("Migrate"), Button("Back") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [(Textbox(20, 1, "Hostname/IP:", 0, 0), self.target), separator, (Textbox(20, 1, "Live migration:", 0, 0), self.live), separator, (button_save, button_exit)] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit
def __init__(self, margin, title, message=None, vendor_text=None, args=None): self.debug_mode = args is not None and args.debug self.screen = SnackScreen() # set usual colors for i in colorsets["ROOT"], colorsets["ROOTTEXT"], colorsets[ "HELPLINE"], colorsets["EMPTYSCALE"]: self.screen.setColor(i, "white", "blue") if not self.debug_mode else \ self.screen.setColor(i, "brightgreen", "black") # remove silly default help text self.screen.popHelpLine() # write static messages self.screen.drawRootText((self.screen.width - len(message)) // 2, 4, message) self.screen.drawRootText(-len(vendor_text) - 2, -2, vendor_text) if self.debug_mode: # write some static debug information self.screen.drawRootText(1, 1, _("DEBUG MODE")) self.screen.drawRootText( 2, 2, "screen {}×{}".format(self.screen.width, self.screen.height)) self.screen.drawRootText(2, 3, "file {}".format(args.input)) self.window_width = self.screen.width - margin * 2 # assemble our progress bar self.scale = Scale(self.window_width, 100) self.spacer = Label("") self.taskbox = Textbox(self.window_width - 2, 1, "") self.messagebox = Textbox(self.window_width - 8, 1, " . . . ") self.grid = Grid(1, 4) self.grid.setField(self.scale, 0, 0) self.grid.setField(self.spacer, 0, 1) self.grid.setField(self.taskbox, 0, 2) self.grid.setField(self.messagebox, 0, 3) self.grid.place(1, 1) self.screen.gridWrappedWindow(self.grid, title) self.form = Form() self.form.add(self.scale) self.form.add(self.taskbox) self.form.add(self.messagebox) self.form.draw() self.screen.refresh()
class GenericTemplateEditForm(Form): separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) def _define_fields(self, settings): self.memory = FloatField("memory", settings["memory"]) self.memory_min = FloatField("memory_min", settings.get("memory_min", ""), display_name="min memory", required=False) self.vcpu = FloatField("vcpu", settings["vcpu"]) self.vcpu_min = FloatField("vcpu_min", settings.get("vcpu_min", ""), display_name="min vcpu", required=False) self.template_name = StringField('template_name', settings.get('template_name'), display_name='template name', required=False) return [ self.memory, self.memory_min, self.vcpu, self.vcpu_min, self.template_name ] def _define_view(self, button_save, button_exit): rows = [(Textbox(20, 1, "Template name:", 0, 0), self.template_name), self.separator, (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Min memory size (GB):", 0, 0), self.memory_min), self.separator, (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "Min number of CPUs:", 0, 0), self.vcpu_min), self.separator, (button_exit, button_save)] return rows def __init__(self, screen, title, settings): self.settings = settings super(GenericTemplateEditForm, self).__init__(screen, title, self._define_fields(settings)) def display(self): button_save, button_exit = Button("Edit"), Button("Cancel") rows = self._define_view(button_save, button_exit) form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit
def __init__(self, screen, title, text): self.screen = screen self.g = GridForm(self.screen, title, 1, 2) self.s = Scale(70, 100) self.t = Textbox(70, 12, text) self.g.add(self.s, 0, 0) self.g.add(self.t, 0, 1, padding=(0, 1, 0, 0))
def create_ui(self): """ Creates/Draws the UI """ self.button_bar = ButtonBar(self.screen, ((_("Cancel"), "cancel"), (_("Install"), "ok")), compact=True) self.textview_changes = Textbox(72, 8, "Changelog", True, True) self.checkbox_tree_updates = CheckboxTree(height=8, width=72, scroll=1) self.checkbox_tree_updates.setCallback(self.checkbox_changed) self.layout = GridForm(self.screen, "Updates", 1, 5) self.layout.add(self.checkbox_tree_updates, 0, 0) # empty line to make it look less crowded self.layout.add(Textbox(60, 1, " ", False, False), 0, 1) self.layout.add(self.textview_changes, 0, 2) # empty line to make it look less crowded self.layout.add(Textbox(60, 1, " ", False, False), 0, 3) self.layout.add(self.button_bar, 0, 4) # FIXME: better progress than the current suspend/resume screen thing self.screen.suspend()
def display_info(screen, title, info_text="Close me, please.", width=50, height=2): """Display information message on information screen""" g = GridFormHelp(screen, title, help, 1, 2) g.add(Textbox(width, height, info_text, 0, 0), 0, 0, padding=(0, 1, 0, 1)) g.add(Button("OK"), 0, 1) g.runOnce()
def display_yesno(screen, title, question_text="Yes / No", width=50, height=2): """Display yes/no dialog. Return True on yes and False on no.""" g = GridFormHelp(screen, title, help, 1, 2) bb = ButtonBar(screen, (('No', 'no', 'F12'), 'Yes')) g.add(Textbox(width, height, question_text, 0, 0), 0, 0, padding=(0, 1, 0, 1)) g.add(bb, 0, 1) rc = g.runOnce() return bb.buttonPressed(rc) == 'yes'
def display(self): button_save, button_exit = Button("Create"), Button("Back") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [(Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Min memory size (GB):", 0, 0), self.memory_min), (Textbox(20, 1, "Max memory size (GB):", 0, 0), self.memory_max), separator, (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "Min number of CPUs:", 0, 0), self.vcpu_min), (Textbox(20, 1, "Max number of CPUs:", 0, 0), self.vcpu_max), separator, (Textbox(20, 1, "Disk size (GB):", 0, 0), self.disk), separator, (Textbox(20, 1, "OS template:", 0, 0), self.ostemplate), separator, (button_exit, button_save)] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit
def __init__(self, datadir): self.screen = SnackScreen() # FIXME: self.screen.finish() clears the screen (and all messages) # there too #atexit.register(self.restoreScreen) self.button_bar = ButtonBar(self.screen, ((_("Cancel"), "cancel"), (_("Install"), "ok")), compact=True) self.textview_changes = Textbox(72, 8, _("Changelog"), True, True) self.checkbox_tree_updates = CheckboxTree(height=8, width=72, scroll=1) self.checkbox_tree_updates.setCallback(self.checkbox_changed) self.layout = GridForm(self.screen, _("Updates"), 1, 5) self.layout.add(self.checkbox_tree_updates, 0, 0) # empty line to make it look less crowded self.layout.add(Textbox(60, 1, " ", False, False), 0, 1) self.layout.add(self.textview_changes, 0, 2) # empty line to make it look less crowded self.layout.add(Textbox(60, 1, " ", False, False), 0, 3) self.layout.add(self.button_bar, 0, 4) # FIXME: better progress than the current suspend/resume screen thing self.screen.suspend() if not self.DEBUG: apt_pkg.pkgsystem_lock() self.openCache() print(_("Building Updates List")) self.fillstore() if self.list.distUpgradeWouldDelete > 0: print( _(""" A normal upgrade can not be calculated, please run: sudo apt-get dist-upgrade This can be caused by: * A previous upgrade which didn't complete * Problems with some of the installed software * Unofficial software packages not provided by Ubuntu * Normal changes of a pre-release version of Ubuntu""")) sys.exit(1) self.screen.resume()
def dup(): screen = SnackScreen() bb = ButtonBar(screen, (("Yes", "yes"), ("No", "no"))) tb = Textbox( 70, 4, "It's recomended to run the Distribution Update after Initiliazation. \nDo you want to run Distribution Update after Initiliazation ?", ) g = GridForm(screen, "Distribution Update", 1, 4) g.add(tb, 0, 2) g.add(bb, 0, 3, growx=1) result = g.runOnce() screen.finish() return bb.buttonPressed(result)
def welcome(): screen = SnackScreen() bb = ButtonBar(screen, (("Continue", "continue"), ("Cancel", "cancel"))) tb = Textbox( 65, 4, "Python Script to Initialize New openSUSE Tumbleweed Installation,\nlike Installing Applications, Enabling & Starting Services, \nand Performing Distrubution Update.", ) g = GridForm(screen, "TW-Init - by Trodskovich", 1, 4) g.add(tb, 0, 2) g.add(bb, 0, 3, growx=1) result = g.runOnce() screen.finish() return bb.buttonPressed(result)
def __init__(self, screen, title, item_count=0): self.screen = screen self.title = title self.current_item = 0 self.item_count = item_count g = Grid(1, 2) self.fnm_label = Textbox(40, 2, 'Downloading...', 0, 0) self.scale = Scale(40, 100) self.scale.set(0) g.setField(self.fnm_label, 0, 1) g.setField(self.scale, 0, 0) self.screen.gridWrappedWindow(g, title) self.f = Form() self.f.add(self.scale) self.f.add(self.fnm_label)
def add_repo(): screen = SnackScreen() bb = ButtonBar(screen, (("Add", "add"), ("Cancel", "cancel"))) tb = Textbox( 50, 5, "Multimedia Applications and Codecs require Packman Repositary to be added in order to work correctly. \nDo you want add Packman repo now ?", 0, 1, ) g = GridForm(screen, "Packman Repo", 1, 4) g.add(tb, 0, 2) g.add(bb, 0, 3, growx=1) result = g.runOnce() screen.finish() return bb.buttonPressed(result)
def display(self): button_save, button_exit = Button("Create VM"), Button("Main menu") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [ (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Memory min/max:", 0, 0), Textbox( 20, 1, "%s / %s" % (self.memory.min_value, self.memory.max_value), 0, 0)), separator, (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "CPU number min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.vcpu.min_value, self.vcpu.max_value), 0, 0)), separator, (Textbox(20, 1, "Hostname:", 0, 0), self.hostname), separator, (button_save, button_exit) ] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit
def ExtCheckboxWindow(screen, title, text, items, buttons=('Ok', 'Cancel'), width=50, height=8): g = GridForm(screen, title, 1, 3) g.add(Textbox(width, 2, text), 0, 0) scroll = 0 if len(items) > height: scroll = 1 ct = CheckboxTree(height, scroll, width) if len(items) > 0: for i in items: ct.append(i, i, items[i]) g.add(ct, 0, 1) bb = ButtonBar(screen, buttons, compact=1) g.add(bb, 0, 2, (0, 2, 0, 0), growx=1, growy=1) result = g.runOnce() return bb.buttonPressed(result), ct.getSelection()
def select_packages(): global sellist screen = SnackScreen() ct = CheckboxTree(height=20, scroll=1) for idx, key in enumerate(packages): ct.append(key) for val in packages[key]: ct.addItem(val, (idx, snackArgs["append"])) ct.setEntryValue(val) bb = ButtonBar(screen, (("Next", "next"), ("Cancel", "cancel"))) g = GridForm(screen, "Packages", 1, 4) g.add(ct, 0, 2) g.add(bb, 0, 3, growx=1) result = g.runOnce() screen.finish() # format selected packages list for zypper and print(result) sellist = (str(ct.getSelection()).replace("[", "").replace("]", "").replace( "'", "").replace(",", "")) # to confirm Selected Packages screen = SnackScreen() bb = ButtonBar(screen, (("Next", "next"), ("Cancel", "cancel"))) tb = Textbox( 80, 10, "the packages selected to install are \n \n" + str(sellist.split(" ")), 1, 1) g = GridForm(screen, "Selected Packages", 1, 4) g.add(tb, 0, 2) g.add(bb, 0, 3, growx=1) result = g.runOnce() screen.finish() return bb.buttonPressed(result)
def ConfirmationWindow(screen, title, infolist, width=40, buttons=['Start', 'Modify', 'Save', 'Exit'], help=None): from snack import ButtonBar, Label, GridFormHelp, Textbox bb = ButtonBar(screen, buttons) ig = Grid(2, len(infolist)) i = 0 for _info in infolist: ig.setField(Label("%s: " % _info.getName()), 0, i, padding=(0, 0, 1, 0), anchorLeft=1) ig.setField(Label("%s" % _info.getValue()), 1, i, padding=(0, 0, 1, 0), anchorLeft=1) i = i + 1 g = GridFormHelp(screen, title, help, 1, 3) g.add(Textbox(20, 1, "Current settings:"), 0, 0, padding=(0, 0, 0, 1), anchorLeft=1) g.add(ig, 0, 1, padding=(0, 0, 0, 1)) g.add(bb, 0, 2, growx=1) result = g.runOnce() return (bb.buttonPressed(result))
def __init__(self, screen, info): """ @param buttonarray is an array in the form ([radiobutton, widget], ...) """ from snack import RadioGroup, Textbox, Entry, FLAG_DISABLED self.group = RadioGroup() self.list = [] self.item = 0 self.info = info Grid.__init__(self, 1, len(info.getSuggestions()) + 6) self.setField(Textbox(20, 1, "Default:"), 0, 0, padding=(0, 0, 0, 0), anchorLeft=1) db = self.group.add(info.getDefault(), info.getDefault(), \ info.getValue() == info.getDefault()) #print >> sys.stderr, "default: %s, value %s" %(info.getDefault(), info.getValue()) db.setCallback(self._hasManualToggled) self.setField(db, 0, 1, (0, 0, 0, 0), anchorLeft=1, growx=1) #self.setField(dt, 1, self.item) self.setField(Textbox(20, 1, "Detected:"), 0, 2, padding=(0, 0, 0, 0), anchorLeft=1) self.item = self.item + 3 self.list.append(db) for value in info.getSuggestions(): b = self.group.add(value, value, info.getValue() == value) b.setCallback(self._hasManualToggled) self.setField(b, 0, self.item, (0, 0, 1, 0), anchorLeft=1, growx=1) #self.setField(t, 1, self.item) self.item = self.item + 1 self.setField(Textbox(20, 1, "Manual:"), 0, self.item, padding=(0, 0, 0, 0), anchorLeft=1) self.item = self.item + 1 self.dm = self.group.add("edit", "manual", info.getValue() == info.getManual()) self.dm.setCallback(self._hasManualToggled) self.manualentry = Entry(15, info.getManual()) self.manualentry.setFlags(FLAG_DISABLED, sense=not (self.dm.selected())) self.setField(self.dm, 0, self.item, (0, 0, 1, 0), anchorLeft=1, growx=1) self.setField(self.manualentry, 0, self.item + 1, (0, 0, 1, 0), anchorLeft=1) self._hasManualToggled()
def __init__(self, screen, title, text): self.screen = screen self.g = GridForm(screen, title, 1, 1) self.g.add(Textbox(60, 2, text), 0, 0)
def display(self): button_save, button_exit = Button("Update"), Button("Back") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [(Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), separator, (Textbox(20, 1, "Swap size (GB):", 0, 0), self.swap), separator, (Textbox(20, 1, "Nr. of CPUs:", 0, 0), self.vcpu), separator, (Textbox(20, 1, "CPU usage limit (%):", 0, 0), self.vcpulimit), separator, (Textbox(20, 1, "Disk size (GB):", 0, 0), self.disk), separator, (Textbox(20, 1, "IO Priority:", 0, 0), self.ioprio), separator, (Textbox(20, 1, "Bind mounts:", 0, 0), self.bind_mounts), (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "/src1,/dst1;/srcN,..", 0, 0)), separator, (Textbox(20, 1, "Hostname:", 0, 0), self.hostname), separator, (Textbox(20, 1, "", 0, 0), self.onboot), separator, (Textbox(20, 1, "Boot order:", 0, 0), self.bootorder), separator, (Textbox(20, 1, "VEID:", 0, 0), self.ctid), separator, (button_exit, button_save)] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit
def display(self): button_exit, button_save = Button("Back"), Button("Create VM") separator = (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "", 0, 0)) rows = [ (Textbox(20, 1, "Memory size (GB):", 0, 0), self.memory), (Textbox(20, 1, "Memory min/max:", 0, 0), Textbox( 20, 1, "%s / %s" % (self.memory.min_value, self.memory.max_value), 0, 0)), (Textbox(20, 1, "VSwap size (GB):", 0, 0), self.swap), (Textbox(20, 1, "VSwap min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.swap.min_value, self.swap.max_value), 0, 0)), (Textbox(20, 1, "Number of CPUs:", 0, 0), self.vcpu), (Textbox(20, 1, "CPU number min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.vcpu.min_value, self.vcpu.max_value), 0, 0)), (Textbox(20, 1, "CPU usage limit (%):", 0, 0), self.vcpulimit), (Textbox(20, 1, "CPU usage min/max:", 0, 0), Textbox( 20, 1, "%s / %s" % (self.vcpulimit.min_value, self.vcpulimit.max_value), 0, 0)), (Textbox(20, 1, "Disk size (GB):", 0, 0), self.disk), (Textbox(20, 1, "Disk size min/max:", 0, 0), Textbox(20, 1, "%s / %s" % (self.disk.min_value, self.disk.max_value), 0, 0)), (Textbox(20, 1, "IO Priority:", 0, 0), self.ioprio), (Textbox(20, 1, "Bind mounts:", 0, 0), self.bind_mounts), (Textbox(20, 1, "", 0, 0), Textbox(20, 1, "/src1,/dst1;/srcN,..", 0, 0)), (Textbox(20, 1, "Hostname:", 0, 0), self.hostname), (Textbox(20, 1, "IP-address:", 0, 0), self.ip_address), (Textbox(20, 2, "Nameserver:", 0, 0), self.nameserver), (Textbox(20, 1, "Root password:"******"Root password x2:", 0, 0), self.password2), (Textbox(20, 2, "OS Template:", 0, 0), self.ostemplate), (self.startvm, self.onboot), separator, (button_save, button_exit) ] form = GridForm(self.screen, self.title, 2, len(rows)) for i, row in enumerate(rows): for j, cell in enumerate(row): form.add(cell, j, i) return form.runOnce() != button_exit
def form(self): elements = Grid(2, 8) is_network_up = network_up() if is_network_up: header_message = "RHEV-M Configuration" else: header_message = "Network Down, RHEV-M Configuration Disabled" heading = Label(header_message) self.ncs.screen.setColor(customColorset(1), "black", "magenta") heading.setColors(customColorset(1)) elements.setField(heading, 0, 0, anchorLeft=1) rhevm_grid = Grid(2, 2) rhevm_grid.setField(Label("Management Server:"), 0, 0, anchorLeft=1) self.rhevm_server = Entry(25, "") self.rhevm_server.setCallback(self.valid_rhevm_server_callback) rhevm_grid.setField(Label("Management Server Port:"), 0, 1, anchorLeft=1) self.rhevm_server_port = Entry(6, "", scroll=0) self.rhevm_server_port.setCallback( self.valid_rhevm_server_port_callback) rhevm_grid.setField(self.rhevm_server, 1, 0, anchorLeft=1, padding=(2, 0, 0, 1)) rhevm_grid.setField(self.rhevm_server_port, 1, 1, anchorLeft=1, padding=(2, 0, 0, 1)) elements.setField(rhevm_grid, 0, 1, anchorLeft=1, padding=(0, 0, 0, 0)) elements.setField(Label(""), 0, 2, anchorLeft=1) self.verify_rhevm_cert = Checkbox( "Connect to RHEV Manager and Validate Certificate", isOn=True) elements.setField(self.verify_rhevm_cert, 0, 3, anchorLeft=1, padding=(0, 0, 0, 0)) elements.setField(Label(""), 0, 4, anchorLeft=1) elements.setField(Label("Set RHEV-M Admin Password"), 0, 5, anchorLeft=1) pw_elements = Grid(3, 3) pw_elements.setField(Label("Password: "******"Confirm Password: "******"", wrap=1) elements.setField(pw_elements, 0, 6, anchorLeft=1) elements.setField(self.pw_msg, 0, 7, padding=(0, 0, 0, 0)) inputFields = [ self.rhevm_server, self.rhevm_server_port, self.verify_rhevm_cert, self.root_password_1, self.root_password_2 ] if not is_network_up: for field in inputFields: field.setFlags(FLAG_DISABLED, FLAGS_SET) try: rhevm_server = get_rhevm_config() rhevm_server, rhevm_port = rhevm_server.split(":") if rhevm_server.startswith("None"): self.rhevm_server.set("") else: self.rhevm_server.set(rhevm_server) self.rhevm_server_port.set(rhevm_port) except: pass return [Label(""), elements]
def welcome(): global NvLtDrvURL, LatestFile, LatestHeader, DownloadFlag, SymlinkFlag screen = SnackScreen() bb = ButtonBar(screen, (("Continue", "continue"), ("Cancel", "cancel"))) tbTittle = Textbox( 65, 3, "To check for latest Nvidia Driver form NVIDIA Website, download and optionaly create a symlink to the latest File", 0, 1) for File in os.listdir(path): if File.find('.run') > 0 and os.path.isfile(path + "/" + File): FList.append(File) FList.sort() FileText = urllib.request.urlopen(NvLtTxtURL).read().decode('utf-8') for i in range(0, len(FileText)): if FileText[i] == ' ': LatestHeader = FileText[0:i] for i in range(0, len(FileText)): if FileText[i] == '/': LatestFile = FileText[i + 1:len(FileText) - 1] NvLtDrvURL = NvLtDrvURL + LatestHeader + "/" + LatestFile tbLatestL = Textbox(110, 2, "Latest Local Version: " + FList[-1], 0, 1) tbLatestR = Textbox( 110, 4, "Latest Remote Version: " + LatestFile + "\nLatest Driver URL: " + NvLtDrvURL, 0, 1) if LatestFile > FList[-1]: cbDowload = Checkbox( "Download the Latest Driver", 1, ) cbSymlink = Checkbox( "Create / Update Symlink", 1, ) else: cbDowload = Checkbox( "Download the Latest Driver", 0, ) cbSymlink = Checkbox( "Create / Update Symlink", 0, ) g = GridForm(screen, "chkltdr (NvDrIn) - by Trodskovich", 1, 8) g.add(tbTittle, 0, 2) g.add(tbLatestL, 0, 3, growx=1) g.add(tbLatestR, 0, 4, growx=1) g.add(cbDowload, 0, 5, growx=1) g.add(cbSymlink, 0, 6, growx=1) g.add(bb, 0, 7, growx=1) result = g.runOnce() screen.finish() DownloadFlag = cbDowload.value() SymlinkFlag = cbSymlink.value() return bb.buttonPressed(result)