Changeset 1197
- Timestamp:
- 08/01/07 04:10:33 (6 years ago)
- Location:
- branch/ggpolo
- Files:
-
- 14 modified
- 2 copied
-
share/umit/config/target_list.txt (modified) (1 diff)
-
share/umit/config/umit.db (modified) (previous)
-
test/test_option_parser.py (copied) (copied from trunk/test/test_option_parser.py)
-
umit (modified) (2 diffs)
-
umitCore/I18N.py (modified) (3 diffs)
-
umitCore/Logging.py (modified) (1 diff)
-
umitCore/Paths.py (modified) (2 diffs)
-
umitCore/UmitConfigParser.py (modified) (1 diff)
-
umitCore/UmitOptionParser.py (copied) (copied from trunk/umitCore/UmitOptionParser.py)
-
umitGUI/About.py (modified) (1 diff)
-
umitGUI/App.py (modified) (5 diffs)
-
umitGUI/MainWindow.py (modified) (6 diffs)
-
umitGUI/ScanNotebook.py (modified) (4 diffs)
-
umitGUI/ScanOpenPortsPage.py (modified) (5 diffs)
-
umitGUI/ScanToolbar.py (modified) (1 diff)
-
umitInventory/Viewer.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branch/ggpolo/share/umit/config/target_list.txt
r1179 r1197 1 192.168.0.1 1 2 192.168.7.105 -
branch/ggpolo/umit
r1179 r1197 25 25 import sys 26 26 import signal 27 from os.path import join, split, ex ists, abspath, dirname27 from os.path import join, split, expanduser 28 28 29 29 ###################################### … … 31 31 32 32 from umitCore.Paths import Path 33 print ">>> USING THIS PATH:", split(sys.argv[0])[0]34 33 35 config_file = join(split(sys.argv[0])[0], 'config', 'umit.conf') 36 share_config_file = join(split(abspath(dirname(sys.argv[0])))[0], "share", 37 "umit", "config", "umit.conf") 34 config_files = [] 35 config_files.append(join(split(sys.argv[0])[0], 'share', 'umit', 36 'config', 'umit.conf')) 37 config_files.append(join(split(sys.argv[0])[0], 'config', 'umit.conf')) 38 config_files.append("/usr/share/umit/config/umit.conf") 39 config_files.append(join(expanduser("~"), ".umit", "umit.conf")) 38 40 39 if exists(config_file): 40 Path.set_umit_conf(config_file) 41 elif exists(share_config_file): 42 Path.set_umit_conf(share_config_file) 43 else: 44 raise Exception("Config file couldn't be found!") 41 Path.set_umit_conf(config_files) 45 42 46 43 ###################################### -
branch/ggpolo/umitCore/I18N.py
r1179 r1197 22 22 import locale 23 23 24 from umitCore.Logging import log25 24 LC_ALL = locale.setlocale(locale.LC_ALL, '') 26 25 LANG, ENC = locale.getdefaultlocale() … … 41 40 42 41 except ImportError: 43 log.critical("You don't have gettext module, no \44 internationalization will be used.")45 46 42 # define _() so program will not fail 47 43 import __builtin__ … … 58 54 # and thus, the text may be very hard to understand, but yet, no error will 59 55 # occour 60 log.debug(">>> Converting '%s' from '%s' to unicode" % (string, ENC))61 56 string = string.decode("utf8", ERRORS).encode("utf8", ERRORS) 62 log.debug(">>> Converted to: '%s'" % string)63 57 64 58 return string -
branch/ggpolo/umitCore/Logging.py
r1179 r1197 22 22 23 23 from logging import Logger, StreamHandler, Formatter 24 from umitCore.UmitOptionParser import option_parser 24 25 25 LOGLEVEL = 026 LOGLEVEL = option_parser.get_verbose() 26 27 27 28 class Log(Logger, object): -
branch/ggpolo/umitCore/Paths.py
r1179 r1197 78 78 79 79 def set_umit_conf(self, umit_conf): 80 self.using_main = False81 82 80 # Place supposed to have the user's config file 83 supposed_user_conf = os.path.join(base_paths['user_dir'], base_paths['config_file'])84 81 supposed_user_conf = os.path.join(base_paths['user_dir'], 82 base_paths['config_file']) 85 83 config_file = supposed_user_conf 84 parsed = False 85 86 86 if os.path.exists(supposed_user_conf)\ 87 87 and check_access(supposed_user_conf, os.R_OK): 88 self.config_parser.read(config_file) 89 log.debug(">>> Using config files in user home directory: %s" % config_file) 90 91 elif not os.path.exists(supposed_user_conf)\ 88 try: 89 self.config_parser.read(config_file) 90 log.debug(">>> Using config files in user home \ 91 directory: %s" % config_file) 92 parsed = True 93 except: 94 log.debug(">>> Failed to load config file from \ 95 user home directory") 96 97 if not parsed and not os.path.exists(supposed_user_conf)\ 92 98 and not check_access(base_paths['user_dir'], os.R_OK and os.W_OK): 93 result = create_user_dir(umit_conf, HOME) 94 config_file = result['config_file'] 95 self.config_parser.read(config_file) 96 [self.__setattr__(opt, result[opt]) for opt in result] 97 log.debug(">>> Using recently created config files in user home: %s" % config_file) 98 99 else: 100 self.using_main = True 101 config_file = umit_conf 102 self.config_parser.read(config_file) 103 log.debug(">>> Using main config file: %s" % config_file) 99 try: 100 result = create_user_dir(umit_conf, HOME) 101 config_file = result['config_file'] 102 self.config_parser.read(config_file) 103 [self.__setattr__(opt, result[opt]) for opt in result] 104 log.debug(">>> Using recently created config files in \ 105 user home: %s" % config_file) 106 parsed = True 107 except: 108 log.debug(">>> Failed to create user home") 109 110 if not parsed and type(umit_conf) == type([]): 111 config_file = self.config_parser.read(umit_conf) 112 if config_file != None and len(config_file) >= 1: 113 config_file = config_file[0] 114 else: 115 raise Exception("Couldn't load umit config file!") 104 116 105 117 # Should make the following only after reading the umit.conf file … … 155 167 # Functions for directories creation 156 168 157 def create_user_dir(main_config, user_home): 169 def create_user_dir(config_list, user_home): 170 main_config = None 171 for config in config_list: 172 if os.path.exists(config): 173 main_config = config 174 break 175 else: 176 log.critical(">>> No useful configuration file found in this list: %s"\ 177 % config_list) 178 raise Exception(">>> No usefull configuration file found!") 179 158 180 log.debug(">>> Create user dir at given home: %s" % user_home) 159 181 log.debug(">>> Using %s as source" % main_config) -
branch/ggpolo/umitCore/UmitConfigParser.py
r1179 r1197 38 38 def read(self, filenames): 39 39 self.filenames = ConfigParser.read(self, filenames) 40 return self.filenames 40 41 41 42 def readfp(self, fp, filename=None): -
branch/ggpolo/umitGUI/About.py
r1179 r1197 224 224 Maxim I. Gavrilov <lovelymax@gmail.com> 225 225 226 Nmap Python Wrapper:227 Pavel Klemenkov <parser@cs.msu.su>228 229 226 Umit Web: 230 227 Rodolfo da Silva Carvalho <rodolfo.ueg@gmail.com> -
branch/ggpolo/umitGUI/App.py
r1179 r1197 24 24 import os.path 25 25 import sys 26 import optparse27 28 import gtk29 import gtk.gdk30 import gobject31 32 from umitGUI.Splash import Splash33 from umitGUI.MainWindow import MainWindow34 35 from umitInventory.Viewer import InventoryViewer36 26 37 27 from umitCore.Paths import Path 28 from umitCore.UmitOptionParser import option_parser 38 29 from umitCore.UmitConf import is_maemo 39 30 from umitCore.I18N import _ … … 54 45 class App: 55 46 def __init__(self, args=sys.argv): 56 self.__create_option_parser() 57 58 def __create_option_parser(self): 59 self.option_parser = optparse.OptionParser() 60 self.option_parser.add_option("-i", "--inventory", default=False, 61 action="store_true", 62 help=_("start Network Inventory")) 63 self.options, self.args = self.option_parser.parse_args() 47 pass 64 48 65 49 def __parse_cmd_line(self): … … 67 51 68 52 def __create_show_main_window(self): 69 if self.options.inventory: 53 if option_parser.get_inventory(): 54 from umitInventory.Viewer import InventoryViewer 70 55 self.main_window = InventoryViewer() 71 self.main_window.connect('destroy', lambda *args: gtk.main_quit())72 56 else: 57 from umitGUI.MainWindow import MainWindow 73 58 self.main_window = MainWindow() 74 59 … … 77 62 self.hildon_app = hildon.Program() 78 63 self.hildon_app.add_window(self.main_window) 79 64 80 65 self.main_window.show_all() 81 66 … … 107 92 except: 108 93 log.warning(_("RUNNING WITHOUT PSYCO!")) 109 log.warning(_("""Psyco is a module that speeds up the execution of this\110 application. It is not a requirement, and Umit runs perfectly well with or without it,\111 but you're encourajed to install it to have a better speed experience. Download it\112 at http://psyco.sf.net/"""))94 log.warning(_("""Psyco is a module that speeds up the execution \ 95 of this application. It is not a requirement, and Umit runs perfectly \ 96 with or without it, but you're encourajed to install it to have a better \ 97 speed experience. Download it at http://psyco.sf.net/""")) 113 98 self.using_psyco = False 99 100 self.diff = option_parser.get_diff() 101 if self.diff: 102 self.__run_text() 103 else: 104 self.__run_gui() 105 106 def __run_text(self): 107 log.info(">>> Text Mode") 108 109 def __run_gui(self): 110 log.info(">>> GUI Mode") 111 import gtk 112 import gobject 113 from umitGUI.Splash import Splash 114 114 115 115 if not is_maemo(): -
branch/ggpolo/umitGUI/MainWindow.py
r1179 r1197 50 50 from umitCore.Logging import log 51 51 from umitCore.I18N import _ 52 from umitCore.UmitOptionParser import option_parser 52 53 from umitCore.UmitConf import SearchConfig, is_maemo 53 54 from umitCore.UmitDB import Scans, UmitDB … … 62 63 root = False 63 64 try: 64 if sys.platform == 'win32': root = True 65 elif is_maemo(): root = True 66 elif os.getuid() == 0: root = True 65 if sys.platform == 'win32': 66 root = True 67 elif is_maemo(): 68 root = True 69 elif os.getuid() == 0: 70 root = True 67 71 except: pass 68 72 … … 116 120 self._profile_filechooser_dialog = None 117 121 self._results_filechooser_dialog = None 118 119 self._new_scan_cb (None) 122 123 # Loading files passed as argument 124 files = option_parser.get_open_results() 125 if len(files) >= 1: 126 for file in files: 127 self._load(filename=file) 120 128 121 129 def configure_focus_chain(self): … … 735 743 def _create_scan_notebook(self): 736 744 self.scan_notebook = ScanNotebook() 745 page = self._new_scan_cb() 737 746 self.scan_notebook.show_all() 747 748 # Applying some command line options 749 target = option_parser.get_target() 750 profile = option_parser.get_profile() 751 nmap = option_parser.get_nmap() 752 753 if nmap: 754 page.command_toolbar.command = " ".join(nmap) 755 page.start_scan_cb() 756 757 else: 758 if target: 759 page.toolbar.selected_target = target 760 761 if profile: 762 page.toolbar.selected_profile = profile 763 764 if target and profile: 765 log.debug(">>> Executing scan with the given args: %s \ 766 with %s" % (target, profile)) 767 page.start_scan_cb() 768 738 769 if is_maemo(): 739 770 # No padding. We need space! … … 793 824 else: 794 825 log.debug(">>> Creating a new page to load it.") 795 scan_page = self._new_scan_cb( None)826 scan_page = self._new_scan_cb() 796 827 797 828 log.debug(">>> Enabling page widgets") … … 979 1010 alert.destroy() 980 1011 981 def _new_scan_cb(self, widget , data=None):1012 def _new_scan_cb(self, widget=None, data=None): 982 1013 """Append a new ScanNotebookPage to ScanNotebook 983 1014 New tab properties: -
branch/ggpolo/umitGUI/ScanNotebook.py
r1179 r1197 435 435 self.get_parent().set_tab_title(self, label) 436 436 437 def start_scan_cb(self, widget ):437 def start_scan_cb(self, widget=None): 438 438 target = self.toolbar.selected_target 439 439 command = self.command_toolbar.command … … 716 716 717 717 self.scan_result.scan_host_view.add_host({hostname:{'stock':icon, 718 'action':None}})718 'action':None}}) 719 719 720 720 # Select the first host found … … 1063 1063 host_page.add_port([self.findout_service_icon(p), 1064 1064 p.get('portid', ''), 1065 p.get('protocol', ''), 1065 1066 p.get('port_state', ''), 1066 1067 p.get('service_name', ''), … … 1089 1090 for host in host_list: 1090 1091 parent = host_page.port_tree.append(None, [host['host'].\ 1091 get_hostname(),'','','','',''])1092 get_hostname(),'','','','','', '']) 1092 1093 for port in host['host'].get_ports(): 1093 1094 for p in port.get('port', []): 1094 1095 host_page.port_tree.append(parent, \ 1095 ['',self.findout_service_icon(p), p.get('portid', ""),\ 1096 p.get('port_state', ""),p.get('service_name', _("Unknown")),\ 1097 p.get('service_product', "")]) 1096 ['', 1097 self.findout_service_icon(p), 1098 p.get('portid', ""), 1099 p.get('protocol', ''), 1100 p.get('port_state', ""), 1101 p.get('service_name', _("Unknown")), 1102 p.get('service_product', "")]) 1098 1103 1099 1104 def set_multiple_service_host(self, service_list): -
branch/ggpolo/umitGUI/ScanOpenPortsPage.py
r1179 r1197 51 51 # Ports view 52 52 self.port_columns = {} 53 self.port_list = gtk.ListStore(str, str, str, str, str, str )54 self.port_tree = gtk.TreeStore(str, str, str, str, str, str )53 self.port_list = gtk.ListStore(str, str, str, str, str, str, str) 54 self.port_tree = gtk.TreeStore(str, str, str, str, str, str, str) 55 55 56 56 self.port_view = gtk.TreeView(self.port_list) … … 62 62 self.port_columns['icon'] = gtk.TreeViewColumn('') 63 63 self.port_columns['port_number'] = gtk.TreeViewColumn(_('Port')) 64 self.port_columns['protocol'] = gtk.TreeViewColumn(_('Protocol')) 64 65 self.port_columns['state'] = gtk.TreeViewColumn(_('State')) 65 66 self.port_columns['service'] = gtk.TreeViewColumn(_('Service')) … … 162 163 self.port_view.append_column(self.port_columns['icon']) 163 164 self.port_view.append_column(self.port_columns['port_number']) 165 self.port_view.append_column(self.port_columns['protocol']) 164 166 self.port_view.append_column(self.port_columns['state']) 165 167 self.port_view.append_column(self.port_columns['service']) … … 169 171 self.port_columns[k].set_reorderable(True) 170 172 self.port_columns[k].set_resizable(True) 171 173 174 175 self.port_columns['icon'].set_min_width(35) 176 172 177 self.port_columns['hostname'].connect('clicked', self.set_search_cb, 0) 173 178 self.port_columns['icon'].connect('clicked', self.set_search_cb, 4) 174 self.port_columns['port_number'].connect('clicked', self.set_search_cb, 2) 175 self.port_columns['state'].connect('clicked', self.set_search_cb, 3) 176 self.port_columns['service'].connect('clicked', self.set_search_cb, 4) 177 self.port_columns['version'].connect('clicked', self.set_search_cb, 5) 179 self.port_columns['port_number'].connect('clicked', self.set_search_cb, 180 2) 181 self.port_columns['protocol'].connect('clicked', self.set_search_cb, 3) 182 self.port_columns['state'].connect('clicked', self.set_search_cb, 4) 183 self.port_columns['service'].connect('clicked', self.set_search_cb, 5) 184 self.port_columns['version'].connect('clicked', self.set_search_cb, 6) 178 185 179 186 self.port_columns['hostname'].set_sort_column_id(0) 180 self.port_columns['icon'].set_ min_width(35)181 self.port_columns[' icon'].set_sort_column_id(3)182 self.port_columns['p ort_number'].set_sort_column_id(1)183 self.port_columns['state'].set_sort_column_id( 2)184 self.port_columns['service'].set_sort_column_id( 3)185 self.port_columns['version'].set_sort_column_id( 4)187 self.port_columns['icon'].set_sort_column_id(4) 188 self.port_columns['port_number'].set_sort_column_id(2) 189 self.port_columns['protocol'].set_sort_column_id(3) 190 self.port_columns['state'].set_sort_column_id(4) 191 self.port_columns['service'].set_sort_column_id(5) 192 self.port_columns['version'].set_sort_column_id(6) 186 193 187 194 self.port_columns['hostname'].pack_start(self.cell_port, True) 188 195 self.port_columns['icon'].pack_start(self.cell_icon, True) 189 196 self.port_columns['port_number'].pack_start(self.cell_port, True) 197 self.port_columns['protocol'].pack_start(self.cell_port, True) 190 198 self.port_columns['service'].pack_start(self.cell_port, True) 191 199 self.port_columns['version'].pack_start(self.cell_port, True) … … 195 203 self.port_columns['icon'].set_attributes(self.cell_icon, stock_id=1) 196 204 self.port_columns['port_number'].set_attributes(self.cell_port, text=2) 197 self.port_columns['state'].set_attributes(self.cell_port, text=3) 198 self.port_columns['service'].set_attributes(self.cell_port, text=4) 199 self.port_columns['version'].set_attributes(self.cell_port, text=5) 205 self.port_columns['protocol'].set_attributes(self.cell_port, text=3) 206 self.port_columns['state'].set_attributes(self.cell_port, text=4) 207 self.port_columns['service'].set_attributes(self.cell_port, text=5) 208 self.port_columns['version'].set_attributes(self.cell_port, text=6) 200 209 201 210 self.port_columns['hostname'].set_visible(False) -
branch/ggpolo/umitGUI/ScanToolbar.py
r1179 r1197 126 126 127 127 def set_selected_profile(self, profile): 128 self.profile_entry.selected_ entry= profile128 self.profile_entry.selected_profile = profile 129 129 130 130 selected_profile = property(get_selected_profile, set_selected_profile) -
branch/ggpolo/umitInventory/Viewer.py
r1168 r1197 202 202 203 203 self.daddy = daddy 204 if not self.daddy: 205 self.connect('destroy', lambda *args: gtk.main_quit()) 206 204 207 self.tip_timer = -1 205 208 self.main_accel_group = gtk.AccelGroup()
