Ignore:
Timestamp:
Oct 2, 2019, 12:15:16 AM (5 years ago)
Author:
chronos
Message:
  • Modified: Optimized netwatch inport for inserting data ti database.
  • Fixed: RouterOS API to work with RouterOS newer than 6.43.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/NetworkConfigRouterOS/Generators/NetwatchImport.php

    r860 r861  
    4343
    4444    $Queries = array();
     45    $QueriesInsert = array();
     46    $QueriesUpdate = array();
    4547    foreach($Interfaces as $Index => $Interface)
    4648    {
    4749      // Update last online time if still online
    4850      if($Interface['NewOnline'])
    49         $Queries[] = $this->Database->GetUpdate('NetworkInterface', '`Id` = "'.$Interface['Id'].'"',
     51        $Queries[] = $this->Database->GetUpdate('NetworkInterface', '`Id` = '.$Interface['Id'],
    5052          array('LastOnline' => TimeToMysqlDateTime($StartTime)));
    5153
     
    5355      {
    5456        // Online state changed
    55         $Queries[] = 'INSERT INTO `NetworkInterfaceUpDown` (`Interface`,
    56          `State`, `Time`, `Duration`) VALUES ('.$Interface['Id'].', '.$Interface['NewOnline'].', "'.
     57        $QueriesInsert[] = 'INSERT INTO `NetworkInterfaceUpDown` (`Interface`,'.
     58          '`State`, `Time`, `Duration`) VALUES ('.$Interface['Id'].', '.$Interface['NewOnline'].', "'.
    5759          TimeToMysqlDateTime($StartTime).'", NULL)';
    5860        // Update previous record duration in UpDown table
    59         $Queries[] = 'UPDATE `NetworkInterfaceUpDown` AS `TM` SET `Duration` = TIMESTAMPDIFF(SECOND, '.
     61        $QueriesUpdate[] = 'UPDATE `NetworkInterfaceUpDown` AS `TM` SET `Duration` = TIMESTAMPDIFF(SECOND, '.
    6062          '`TM`.`Time`, (SELECT `Time` FROM (SELECT * FROM `NetworkInterfaceUpDown`) AS `TA` WHERE (`TA`.`Time` > `TM`.`Time`) '.
    6163          'AND (`TA`.`Interface`=`TM`.`Interface`) ORDER BY `TA`.`Time` ASC LIMIT 1)) '.
     
    6567      }
    6668    }
     69    echo("transakce insert\n");
     70    $this->Database->Transaction($QueriesInsert);
     71    echo("done\n");
    6772    echo("transakce\n");
    6873    $this->Database->Transaction($Queries);
     74    echo("done\n");
     75    echo("transakce\n");
     76    $this->Database->Transaction($QueriesUpdate);
    6977    echo("done\n");
    7078
Note: See TracChangeset for help on using the changeset viewer.