Changeset 5236

Show
Ignore:
Timestamp:
08/15/09 11:19:58 (4 years ago)
Author:
luis
Message:

Fixing #223
When a new host was added, and no information about fingerprint (as described in ticket) is available it is marked as "Added".
It is wrong. The patch doesn't show this information once it is not added, or merged. It is not available and just it.

Regarding the patch nobody made comments about it. If someone else have another solution reopen the ticket and put it on table.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/umit/inventory/ChangesDiff.py

    r4277 r5236  
    149149            tcp_ts_seq_o, ip_id_seq_o, 
    150150            osclasses_o, osmatch_o) = self.get_data_for_host_from_db(hostid_old) 
     151             
    151152 
    152153        # ports diff 
    153         self.port_diff(ports_o, ports_n, do_diff) 
     154        if self.__verify_if_available([ports_o, ports_n]): 
     155            self.port_diff(ports_o, ports_n, do_diff) 
    154156 
    155157        # Extraports 
    156         self.extraports_diff(ep_o, ep_n, do_diff) 
     158        if self.__verify_if_available([ep_o, ep_n]): 
     159            self.extraports_diff(ep_o, ep_n, do_diff) 
    157160 
    158161        # Fingerprint 
    159         self.fingerprint_diff(uptime_o, uptime_n, tcp_seq_o, tcp_seq_n, 
    160             tcp_ts_seq_o, tcp_ts_seq_n, ip_id_seq_o, ip_id_seq_n, do_diff) 
     162        diff_fingerprint = [uptime_o, uptime_n, tcp_seq_o, tcp_seq_n, 
     163                                  tcp_ts_seq_o, tcp_ts_seq_n, ip_id_seq_o,  
     164                                  ip_id_seq_n] 
     165        if self.__verify_if_available(diff_fingerprint): 
     166            self.fingerprint_diff(uptime_o, uptime_n, tcp_seq_o, tcp_seq_n, 
     167                                  tcp_ts_seq_o, tcp_ts_seq_n, ip_id_seq_o,  
     168                                  ip_id_seq_n, do_diff) 
    161169 
    162170        # OS Classes 
    163         self.osclasses_diff(osclasses_o, osclasses_n, do_diff) 
     171        if self.__verify_if_available([osclasses_o, osclasses_n]): 
     172            self.osclasses_diff(osclasses_o, osclasses_n, do_diff) 
    164173 
    165174        # OS Match 
    166         self.osmatch_diff(osmatch_o, osmatch_n, do_diff) 
     175        if self.__verify_if_available([osmatch_o, osmatch_n]): 
     176            self.osmatch_diff(osmatch_o, osmatch_n, do_diff) 
    167177 
    168178 
     
    288298        Do fingerprint diff. 
    289299        """ 
     300         
    290301        if not diff: 
    291302            status = "Added" 
     
    455466        If diff=False, will classify all as 'Added'. 
    456467        """ 
     468        some_available = self.__verify_if_available([old,new]) 
     469        if not some_available: 
     470            return  
    457471        if not diff: 
    458472            status = "Added" 
     
    617631        dlg.run() 
    618632        dlg.destroy() 
    619  
    620  
     633     
     634    def __verify_if_available(self, list_values): 
     635        """ 
     636        Verify if some fiends are available 
     637        """ 
     638        all_not_available = True 
     639        for d in list_values: 
     640            if not all_not_available: 
     641                break 
     642            for k in d.keys(): 
     643                if k != "Not Available" or d[k] != "Not Available": 
     644                    all_not_available = False 
     645                    break 
     646        return not all_not_available 
     647         
     648         
     649         
    621650    def __layout(self): 
    622651        """