def _run_inv_scan(self, widget, inv): """ Run Inventory scan. """ if self.daddy: inv_id = self.daddy.invdb.get_inventory_id_for_name(inv) if not inv_id: scan_args = self._get_command_from_schemas(inv) if not scan_args: return else: scan_args = ( self.daddy.invdb.get_scan_args_for_inventory_id(inv_id)) if not scan_args: scan_args = self._get_command_from_schemas(inv) if not scan_args: return scan = NmapCommand(scan_args) scan.run_scan() if not self.running_scans: # no scans running, start timer for checking if some scan # finished self.scans_timer = gobject.timeout_add(4200, self._check_scans) self.running_scans[scan] = inv running_scans = len(self.running_scans) self.daddy._write_statusbar(("%d " % running_scans) + append_s(_("scan"), running_scans) + _(" running"))
def _adjust_target_label(self): """Update target_lbl according to the current scount (assumes that scount > 0).""" word = append_s(_("scan"), self.scount) self.target_lbl.set_label( _("Target list") + (" (%d) " % self.scount) + word + _(" running"))
def buildtv(*args): """ Build treeview and append results. """ lsmodel = gtk.ListStore(str, str, str, str) tview = gtk.TreeView(lsmodel) columns = 4 columns_text = ( _("Inventory"), _("Host"), _("First Matched Category"), _("Entry Date") ) tview.columns = [None]*columns for n in range(columns): tview.columns[n] = gtk.TreeViewColumn(columns_text[n]) tview.columns[n].cell = gtk.CellRendererText() tview.columns[n].pack_start(tview.columns[n].cell, True) tview.columns[n].set_attributes(tview.columns[n].cell, text=n) tview.append_column(tview.columns[n]) tview.connect('row-activated', row_activated) # layout matches = len(args[1]) word = append_s(_("result"), matches) upper_title = gtk.Label() upper_title.set_markup( ("<b>%d " % matches) + word + _(" found.") + "</b>") hutbox = HIGHBox() hutbox._pack_noexpand_nofill(upper_title) sw = HIGScrolledWindow() sw.add(tview) vbox = gtk.VBox() vbox.pack_start(hutbox, False, False, 3) vbox.pack_start(sw, True, True, 0) vbox.show_all() # append results to treeview results = args[1] for res, date in results.items(): invname = self.invdb.get_inventory_name_for_id(res[0]) lsmodel.append((invname, res[1], res[2], str(date))) title = _("Search: %s") % args[0] tab_label = HIGAnimatedTabLabel(title) tab_label.connect("close-clicked", close_page, vbox) self.viewernb.append_page(vbox, tab_label)
def buildtv(*args): """ Build treeview and append results. """ lsmodel = gtk.ListStore(str, str, str, str) tview = gtk.TreeView(lsmodel) columns = 4 columns_text = (_("Inventory"), _("Host"), _("First Matched Category"), _("Entry Date")) tview.columns = [None] * columns for n in range(columns): tview.columns[n] = gtk.TreeViewColumn(columns_text[n]) tview.columns[n].cell = gtk.CellRendererText() tview.columns[n].pack_start(tview.columns[n].cell, True) tview.columns[n].set_attributes(tview.columns[n].cell, text=n) tview.append_column(tview.columns[n]) tview.connect('row-activated', row_activated) # layout matches = len(args[1]) word = append_s(_("result"), matches) upper_title = gtk.Label() upper_title.set_markup(("<b>%d " % matches) + word + _(" found.") + "</b>") hutbox = HIGHBox() hutbox._pack_noexpand_nofill(upper_title) sw = HIGScrolledWindow() sw.add(tview) vbox = gtk.VBox() vbox.pack_start(hutbox, False, False, 3) vbox.pack_start(sw, True, True, 0) vbox.show_all() # append results to treeview results = args[1] for res, date in results.items(): invname = self.invdb.get_inventory_name_for_id(res[0]) lsmodel.append((invname, res[1], res[2], str(date))) title = _("Search: %s") % args[0] tab_label = HIGAnimatedTabLabel(title) tab_label.connect("close-clicked", close_page, vbox) self.viewernb.append_page(vbox, tab_label)
_("finished but it couldn't be added to " "the database.") + ("\n\n%s" % traceback.format_exc())), buttons={1: (gtk.RESPONSE_OK, gtk.STOCK_OK)}) dlg.run() dlg.destroy() finally: xmlstore.close() # close connection to the database scan.close() todelete.append(scan) for td in todelete: # remove finished scans from running_scans del self.running_scans[td] running_scans = len(self.running_scans) word = append_s(_("scan"), running_scans) self.daddy._write_statusbar( ("%d " % running_scans) + word + _(" running")) if not self.running_scans: # all scans completed self.daddy._clear_statusbar() self.scans_timer = -1 return False # stop timer return True def _notebook_controls(self, title): """ Build a "label" for using as notebook title with some controls.
_("finished but it couldn't be added to " "the database.") + ("\n\n%s" % traceback.format_exc())), buttons={1: (gtk.RESPONSE_OK, gtk.STOCK_OK)}) dlg.run() dlg.destroy() finally: xmlstore.close() # close connection to the database scan.close() todelete.append(scan) for td in todelete: # remove finished scans from running_scans del self.running_scans[td] running_scans = len(self.running_scans) word = append_s(_("scan"), running_scans) self.daddy._write_statusbar(("%d " % running_scans) + word + _(" running")) if not self.running_scans: # all scans completed self.daddy._clear_statusbar() self.scans_timer = -1 return False # stop timer return True def _notebook_controls(self, title): """ Build a "label" for using as notebook title with some controls. """