Changeset 3922

Show
Ignore:
Timestamp:
01/07/09 13:10:29 (4 years ago)
Author:
gpolo
Message:

Updated XMLStore to work with the new parser

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branch/NetworkInventory/umitDB/XMLStore.py

    r3868 r3922  
    227227 
    228228            # insert host os match 
    229             if host.osmatch: # ToFix: Parser is returning only last osmatch ? 
    230                 self.insert_osmatch_db(host_d["pk"], host.osmatch) 
     229            if host.osmatch: 
     230                # ToFix: Parser is returning only last osmatch ? 
     231                # XXX the new parser stores all osmatches but this is still 
     232                # using only the last osmatch -- for now. 
     233                self.insert_osmatch_db(host_d["pk"], host.osmatch[-1]) 
    231234 
    232235            # insert os classes 
    233             for osclass in host.osclasses: 
     236            for osclass in host.osclass: 
    234237                # get fk_osgen 
    235238                osgen_id = self.get_osgen_id_from_db(osclass["osgen"]) 
     
    261264 
    262265            # insert ports used 
    263             if host.ports_used: 
    264                 for portused in host.ports_used: 
     266            if host.portused: 
     267                for portused in host.portused: 
    265268                    # get fk_port_state 
    266269                    port_state_id = self.get_port_state_id_from_db( 
     
    282285 
    283286            # some scan may not return any ports 
    284             if host.ports: 
     287            if host.extraports: 
    285288                # insert extraports 
    286                 for extraport in host.ports[0]["extraports"]: 
     289                for extraport in host.extraports: 
    287290                    port_state = self.get_port_state_id_from_db( 
    288291                        extraport["state"]) 
     
    294297                        port_state) 
    295298 
     299            if host.ports: 
    296300                # insert ports 
    297                 for port in host.ports[0]["port"]: 
     301                for port in host.ports: 
    298302                    # get fk_protocol 
    299303                    protocol_id = self.get_protocol_id_from_db(port["protocol"]) 
     
    304308                    # get fk_port_state 
    305309                    port_state_id = self.get_port_state_id_from_db( 
    306                         port["port_state"]) 
     310                        port["state"]) 
    307311                    if not port_state_id: 
    308                         self.insert_port_state_db(port["port_state"]) 
     312                        self.insert_port_state_db(port["state"]) 
    309313                        port_state_id = self.get_id_for("port_state") 
    310314 
    311                     if not "service_name" in port: 
    312                         port["service_name"] = empty() 
     315                    if not "name" in port: 
     316                        port["name"] = empty() 
    313317 
    314318                    service_name_id = self.get_service_name_id_from_db( 
    315                         port["service_name"]) 
     319                        port["name"]) 
    316320                    if not service_name_id: 
    317                         self.insert_service_name_db(port["service_name"]) 
     321                        self.insert_service_name_db(port["name"]) 
    318322                        service_name_id = self.get_id_for("service_name") 
    319323 
    320324                    # get fk_service_info 
    321                     keys = [ 
    322                         "service_product", "service_version", 
    323                         "service_extrainfo", "service_method", 
    324                         "service_conf"] 
     325                    keys = ["product", "version", "extrainfo", "method", "conf"] 
    325326 
    326327                    for k in keys: 
     
    334335                    if not service_info_id: 
    335336                        data = ( 
    336                             port["service_product"], 
    337                             port["service_version"], 
    338                             port["service_extrainfo"], 
    339                             port["service_method"], 
    340                             port["service_conf"], service_name_id) 
     337                            port["product"], 
     338                            port["version"], 
     339                            port["extrainfo"], 
     340                            port["method"], 
     341                            port["conf"], service_name_id) 
    341342 
    342343                        self.insert_service_info_db(data) 
     
    408409 
    409410        scan_d = { } 
    410         scan_d["args"] = parsedsax.nmap["nmaprun"]["args"] 
    411         timestamp_start = parsedsax.nmap["nmaprun"]["start"] 
     411        scan_d["args"] = parsedsax.nmap_command 
     412        timestamp_start = parsedsax.start 
    412413        scan_d["start"] = datetime.fromtimestamp(float(timestamp_start)) 
    413414        scan_d["startstr"] = empty() # ToFix: Parser isnt storing this 
    414         timestamp_finish = parsedsax.nmap["runstats"]["finished_time"] 
    415         scan_d["finish"] = datetime.fromtimestamp(float(timestamp_finish)) 
    416         scan_d["finishstr"] = empty() # ToFix: Parser isnt storing this 
     415        scan_d["finish"] = datetime(*parsedsax.finish_epoch_time[:6]) 
     416        scan_d["finishstr"] = parsedsax.finish_time 
    417417        scan_d["xmloutputversion"] = ( 
    418418            parsedsax.nmap["nmaprun"]["xmloutputversion"]) 
     
    423423            scan_d["xmloutput"] = empty() 
    424424 
    425         scan_d["verbose"] = parsedsax.nmap["verbose"] 
    426         scan_d["debugging"] = parsedsax.nmap["debugging"] 
    427         scan_d["hosts_up"] = parsedsax.nmap["runstats"]["hosts_up"] 
    428         scan_d["hosts_down"] = parsedsax.nmap["runstats"]["hosts_down"] 
    429  
    430         scanner_name = parsedsax.nmap["nmaprun"]["scanner"] 
    431         scanner_version = parsedsax.nmap["nmaprun"]["version"] 
     425        scan_d["verbose"] = parsedsax.verbose_level 
     426        scan_d["debugging"] = parsedsax.debugging_level 
     427        scan_d["hosts_up"] = parsedsax.hosts_up 
     428        scan_d["hosts_down"] = parsedsax.hosts_down 
     429 
     430        scanner_name = parsedsax.scanner 
     431        scanner_version = parsedsax.scanner_version 
    432432 
    433433        # get fk_scanner