Changeset 7765 for trunk


Ignore:
Timestamp:
Apr 15, 2010, 12:00:44 PM (15 years ago)
Author:
Pieter Naber
Message:

Fixed loghandler so index.php outputs a KML valid file. Also added the possibility to add lines.

Location:
trunk/src
Files:
1 added
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/config.php

    r7752 r7765  
    2222 * Placemark settings. Which icons do you want to use
    2323 */
    24 $config['placemark_green']      = 'http://svn.wirelessleiden.nl/svn/projects/NodeMap2.0/trunk/src/img/sleutelGroen.png';
    25 $config['placemark_orange']     = 'img/sleutelOranje.png';
    26 $config['placemark_red']        = 'img/sleutelRood.png';
     24$config['node_green']   = 'http://svn.wirelessleiden.nl/svn/projects/NodeMap2.0/trunk/src/img/sleutelGroen.png';
     25$config['node_orange']  = 'img/sleutelOranje.png';
     26$config['node_red']             = 'img/sleutelRood.png';
     27$config['line_black']   = '#000000ff';
    2728
    2829/*
     
    3536$config['require'][]            = $config['folder_class'] . 'FileHandler.class.php';
    3637$config['require'][]            = $config['folder_class'] . 'KMLFile.class.php';
    37 $config['require'][]            = $config['folder_class'] . 'KMLPlacemark.class.php';
     38$config['require'][]            = $config['folder_class'] . 'KMLNode.class.php';
     39$config['require'][]            = $config['folder_class'] . 'KMLLine.class.php';
    3840
    3941$config['googlekey']            = array();
  • trunk/src/inc/KMLFile.class.php

    r7758 r7765  
    1616                                        <IconStyle>
    1717                                                <Icon>
    18                                                         <href>%PLACEMARK_GREEN%</href>
     18                                                        <href>%NODE_GREEN%</href>
    1919                                                </Icon>
    2020                                        </IconStyle>
     
    2323                                        <IconStyle>
    2424                                                <Icon>
    25                                                         <href>%PLACEMARK_ORANGE%</href>
     25                                                        <href>%NODE_ORANGE%</href>
    2626                                                </Icon>
    2727                                        </IconStyle>
     
    3030                                        <IconStyle>
    3131                                                <Icon>
    32                                                         <href>%PLACEMARK_RED%</href>
     32                                                        <href>%NODE_RED%</href>
    3333                                                </Icon>
    3434                                        </IconStyle>
    3535                                </Style>
    36                                 <Folder>
     36                                <Style id="blackLine">
     37                                        <LineStyle>
     38                                                <color>%LINE_BLACK%</color>
     39                                                <width>3</width>
     40                                        </LineStyle>
     41                                </Style>
     42                                <Folder id="nodes">
    3743                                        <name>Nodes</name>
    3844                                        <description>Nodes from the Wireless Leiden network</description>
     
    4046                                                <longitude>4.490153</longitude>
    4147                                                <latitude>52.161087</latitude>
    42                                                 <altitude>0</altitude>
     48                                                <altitude>5</altitude>
    4349                                                <heading>0</heading>
    4450                                                <tilt>0</tilt>
    4551                                                <range>500</range>
    4652                                        </LookAt>
    47                                         %CONTENT%
     53                                        %NODESCONTENT%
    4854                                </Folder>
    49                         </Document>
     55                                <Folder id="lines">
     56                                        <name>Lines</name>
     57                                        <description>Lines from nodes to nodes from the Wireless Leiden network</description>
     58                                        <LookAt>
     59                                                <longitude>4.490153</longitude>
     60                                                <latitude>52.161087</latitude>
     61                                                <altitude>5</altitude>
     62                                                <heading>0</heading>
     63                                                <tilt>0</tilt>
     64                                                <range>500</range>
     65                                        </LookAt>
     66                                        %LINESCONTENT%
     67                                </Folder>
     68                                </Document>
    5069                </kml>';
    5170
     
    5574        private $fileContent = array('string', 'string', 'int', 'double', 'int', 'int', 'int', 'int');
    5675
    57         private $KMLPlacemarks;
    58 
     76        private $KMLNodes;
     77        private $KMLLines;
     78       
    5979        /*
    6080         * Function: __construct (constructor)
     
    6484         */
    6585        public function __construct() {
    66                 $this->KMLPlacemarks = array();
    67         }
    68 
    69         /*
    70          * Function: addPlacemark
    71          * Description: Add a placemark to the local placemark array
    72          * Parameters: KMLPlacemark $placemark
     86                $this->KMLNodes = array();
     87                $this->KMLLines = array();
     88        }
     89
     90        /*
     91         * Function: addNode
     92         * Description: Add a node to the local node array
     93         * Parameters: KMLNode $node
    7394         * Returns: -
    7495         */
    75         public function addPlacemark(KMLPlacemark $placemark) {
    76                 $this->KMLPlacemarks[] = $placemark;
     96        public function addNode(KMLNode $node) {
     97                $this->KMLNodes[] = $node;
     98        }
     99
     100        /*
     101         * Function: addLIne
     102         * Description: Add a line to the local line array
     103         * Parameters: KMLLine $line
     104         * Returns: -
     105         */
     106        public function addLine(KMLLine $line) {
     107                $this->KMLLines[] = $line;
    77108        }
    78109
     
    88119                $toString = $this->template;
    89120
    90                 $placemarkString = '';
    91                 $placemarkCount = count($this->KMLPlacemarks);
    92                 for ($i = 0; $i < $placemarkCount; $i++) {
    93                         $placemarkString .= $this->KMLPlacemarks[$i]->toString();
    94                 }
    95 
    96                 $toString = str_replace('%PLACEMARK_GREEN%', $config['placemark_green'], $toString);
    97                 $toString = str_replace('%PLACEMARK_ORANGE%', $config['placemark_orange'], $toString);
    98                 $toString = str_replace('%PLACEMARK_RED%', $config['placemark_red'], $toString);
    99                 $toString = str_replace('%CONTENT%', $placemarkString, $toString);
    100 
     121                $nodeString = '';
     122                $nodeCount = count($this->KMLNodes);
     123                for ($i = 0; $i < $nodeCount; $i++) {
     124                        $nodeString .= $this->KMLNodes[$i]->toString();
     125                }
     126
     127                $lineString = '';
     128                $lineCount = count($this->KMLLines);
     129                for ($i = 0; $i < $lineCount; $i++) {
     130                        $lineString .= $this->KMLLines[$i]->toString();
     131                }
     132
     133                $toString = str_replace('%NODE_GREEN%', $config['node_green'], $toString);
     134                $toString = str_replace('%NODE_ORANGE%', $config['node_orange'], $toString);
     135                $toString = str_replace('%NODE_RED%', $config['node_red'], $toString);
     136                $toString = str_replace('%LINE_BLACK%', $config['line_black'], $toString);
     137                $toString = str_replace('%NODESCONTENT%', $nodeString, $toString);
     138                $toString = str_replace('%LINESCONTENT%', $lineString, $toString);
     139               
    101140                return $toString;
    102141        }
     
    123162
    124163        /*
    125          * Function: getPlacemarkByName
    126          * Description: Find the first KMLPlacemark with the name $name and return its position. If not found, return false
     164         * Function: getNodeByName
     165         * Description: Find the first KMLNode with the name $name and return its position. If not found, return false
    127166         * Parameters: string $name
    128          * Returns: Position of placemark in our array, if not found false
    129          */
    130         public function getPlacemarkByName($name) {
    131                 $nodesCount = count($this->KMLPlacemarks);
     167         * Returns: Position of node in our array, if not found false
     168         */
     169        public function getNodeByName($name) {
     170                $nodesCount = count($this->KMLNodes);
    132171                for ($i = 0; $i < $nodesCount; $i++) {
    133                         if ($this->KMLPlacemarks[$i]->getName() == $name) {
     172                        if ($this->KMLNodes[$i]->getName() == $name) {
    134173                                return $i;
    135174                        }
     
    141180        /*
    142181         * Function: parseLocationFile
    143          * Description: Parse the node location file updating or adding KMLPlacemark objects to the current KMLFile object
     182         * Description: Parse the node location file updating or adding KMLNode objects to the current KMLFile object
    144183         * Parameters: string $file
    145184         * Returns: true is successfull, otherwise false
     
    192231                        $descriptionLocation = 'Naam: ' . $name . '<br/>Locatie: ' . $location . '<br/>Status: ' . $status . '<br/>Latitude: ' . $latitude . '<br/>Longitude: ' . $longitude . '<br/>Interfaces: ' . $interfaces . '<br/>Master IP: ' . $masterip . '<br/>Node type: ' . $nodetype . '<br/><br/>';
    193232
    194                         if ($placemarkPosition = $this->getPlacemarkByName($name)) {
     233                        if ($placemarkPosition = $this->getNodeByName($name)) {
    195234                                // Updating an excisting placemark
    196                                 $this->KMLPlacemarks[$placemarkPosition]->setDescriptionLocation($descriptionLocation);
    197                                 $this->KMLPlacemarks[$placemarkPosition]->setLongitude($longitude);
    198                                 $this->KMLPlacemarks[$placemarkPosition]->setLatitude($latitude);
     235                                $this->KMLNodes[$placemarkPosition]->setDescriptionLocation($descriptionLocation);
     236                                $this->KMLNodes[$placemarkPosition]->setLongitude($longitude);
     237                                $this->KMLNodes[$placemarkPosition]->setLatitude($latitude);
    199238                        } else {
    200239                                // Adding a new placemark
    201                                 $placemark = new KMLPlacemark();
     240                                $placemark = new KMLNode();
    202241                                $placemark->setID($name);
    203242                                $placemark->setName($name);
     
    205244                                $placemark->setLongitude($longitude);
    206245                                $placemark->setLatitude($latitude);
    207                                 $this->addPlacemark($placemark);
     246                                $this->addNode($placemark);
    208247                        }
    209248                }
     
    229268        /*
    230269         * Function: parseStatusFile
    231          * Description: Parse the node status file updating or adding KMLPlacemark objects to the current KMLFile object
     270         * Description: Parse the node status file updating or adding KMLNode objects to the current KMLFile object
    232271         * Parameters: string $file
    233272         * Returns: true is successfull, otherwise false
     
    275314                        $descriptionStatus = 'Type: ' . $lineContent[0] . '<br/>Host name: ' . $lineContent[1] . '<br/>Has been checked: ' . $lineContent[2] . '<br/>Check execution time: ' . $lineContent[3] . '<br/>Currenr state: ' . $lineContent[4] . '<br/>Last hard state: ' . $lineContent[5] . '<br/>Last check: ' . $lineContent[6] . '<br/>Problem has been acknowledged: ' . $lineContent[7] . '<br/><br/>';
    276315
    277                         if ($placemarkPosition = $this->getPlacemarkByName($lineContent[1])) {
     316                        if ($placemarkPosition = $this->getNodeByName($lineContent[1])) {
    278317                                // Updating an excisting placemark
    279                                 $this->KMLPlacemarks[$placemarkPosition]->setDescriptionStatus($descriptionStatus);
     318                                $this->KMLNodes[$placemarkPosition]->setDescriptionStatus($descriptionStatus);
    280319                        } else {
    281320                                // Adding a new placemark
    282                                 $placemark = new KMLPlacemark();
     321                                $placemark = new KMLNode();
    283322                                $placemark->setID($lineContent[1]);
    284323                                $placemark->setName($lineContent[1]);
    285324                                $placemark->setDescriptionStatus($descriptionStatus);
    286                                 $this->addPlacemark($placemark);
     325                                $this->addNode($placemark);
    287326                        }
    288327                }
  • trunk/src/inc/KMLNode.class.php

    r7764 r7765  
    22/*
    33 * Project: NodeMap2.0
    4  * File: KMLPlacemark.class.php
    5  * Purpose: Placemark used in KMLFile
     4 * File: KMLNode.class.php
     5 * Purpose: Node placemark used in KMLFile
    66 */
    77
    8 define('PLACEMARK_GREEN', 'greenArrowIcon');
    9 define('PLACEMARK_ORANGE', 'orangeArrowIcon');
    10 define('PLACEMARK_RED', 'redArrowIcon');
     8define('NODE_GREEN', 'greenArrowIcon');
     9define('NODE_ORANGE', 'orangeArrowIcon');
     10define('NODE_RED', 'redArrowIcon');
    1111
    12 class KMLPlacemark {
     12class KMLNode {
    1313        private $template = '
    1414                <Placemark id="%ID%">
     
    4141        private $longitude;                             // Longitude of the node
    4242        private $latitude;                              // Latitude of the node
    43         private $style;                                 // Style of the placemark
     43        private $style;                                 // Style of the node
    4444
    4545        /*
    4646         * Function: __construct (constructor)
    47          * Description: Creating a new KMLFile
     47         * Description: Creating a new KMLNode
    4848         * Parameters: -
    4949         * Returns: -
     
    6161        /*
    6262         * Function: setID
    63          * Description: Setting the ID of the placemark
     63         * Description: Setting the ID of the node
    6464         * Parameters: string $newID
    6565         * Returns: -
     
    7171        /*
    7272         * Function: setName
    73          * Description: Setting the name of the placemark
     73         * Description: Setting the name of the node
    7474         * Parameters: string $newName
    7575         * Returns: -
     
    8181        /*
    8282         * Function: getName
    83          * Description: Getting the name of the placemark
     83         * Description: Getting the name of the node
    8484         * Parameters: -
    85          * Returns: The name of the placemark
     85         * Returns: The name of the node
    8686         */
    8787        function getName() {
     
    9191        /*
    9292         * Function: setDescriptionLocation
    93          * Description: Setting the location description of the placemark
     93         * Description: Setting the location description of the node
    9494         * Parameters: string $newDescriptionLocation
    9595         * Returns: -
     
    101101        /*
    102102         * Function: setDescriptionStatus
    103          * Description: Setting the status description of the placemark
     103         * Description: Setting the status description of the node
    104104         * Parameters: string $newDescriptionStatus
    105105         * Returns: -
     
    111111        /*
    112112         * Function: setLongitude
    113          * Description: Setting the longitude of the placemark
     113         * Description: Setting the longitude of the node
    114114         * Parameters: string $newLongitude
    115115         * Returns: -
     
    121121        /*
    122122         * Function: setLatitude
    123          * Description: Setting the latitude of the placemark
     123         * Description: Setting the latitude of the node
    124124         * Parameters: string $newLatitude
    125125         * Returns: -
     
    131131        /*
    132132         * Function: setStyle
    133          * Description: Setting the style of the placemark
     133         * Description: Setting the style of the node
    134134         * Parameters: string $newStyle
    135135         * Returns: -
     
    141141        /*
    142142         * Function: toString
    143          * Description: Converts the content of this placemark to a KML valid string
     143         * Description: Converts the content of this node to a KML valid string
    144144         * Parameters: -
    145145         * Returns: KML valid string
  • trunk/src/inc/LogHandler.class.php

    r7753 r7765  
    8888                        echo '<!-- ' . $errorString . ' -->';
    8989                }
    90                 if ($logno <= LOG_LEVEL_WRITE) {                       
     90                if ((!defined('IGNORE_LOG_LEVEL_WRITE')) && ($logno <= LOG_LEVEL_WRITE)) {
    9191                        $filename = 'logfile.txt';
    9292                        if (is_writable($filename)) {
    93                                
     93
    9494                                //Check if the file can be opened
    95                                   if (!$handle = fopen($filename, 'w')) {
    96                                         define('LOG_LEVEL_WRITE', LOG_LEVEL_NONE);
    97                                          trigger_log(SYSLOG_EMERG, 'Cannot open file "' . $filename . '"', __FILE__, __LINE__);
    98                                          exit;
     95                                if (!$handle = fopen($filename, 'w')) {
     96                                        define('IGNORE_LOG_LEVEL_WRITE', true);
     97                                        trigger_log(SYSLOG_EMERG, 'Cannot open file "' . $filename . '"', __FILE__, __LINE__);
     98                                        exit;
    9999                                }
    100                        
     100                                       
    101101                                // Write $errorString to file.
    102102                                if (fwrite($handle, $errorString) === FALSE) {
     
    105105                                        exit;
    106106                                }
    107                        
     107                                       
    108108                                fclose($handle);
    109                        
     109                                       
    110110                        } else {
    111                                 define('LOG_LEVEL_WRITE', LOG_LEVEL_NONE);
    112                                         trigger_log(SYSLOG_EMERG, 'Cannot write to "' . $filename . '"', __FILE__, __LINE__);
     111                                define('IGNORE_LOG_LEVEL_WRITE', true);
     112                                trigger_log(SYSLOG_EMERG, 'Cannot write to "' . $filename . '"', __FILE__, __LINE__);
    113113                        }
    114114                }
    115                
     115
    116116                if ($logno <= LOG_LEVEL_MAIL) {
    117117                        mail('test@test.com', 'Nodemap error', $errorString);
  • trunk/src/index.php

    r7750 r7765  
    2525$kmlFile->parseStatusFile($nodeStatus->read());
    2626
    27 if ($_GET['write'] == true) {
     27if (isset($_GET['write']) && $_GET['write'] == true) {
    2828        // TODO: David: Write the KML file to a folder with date stamp
    2929}
  • trunk/src/logfile.txt

    r7755 r7765  
    1 Debug (8 | 11:55.20 04/14/10 | ): Reading from file "http://watch.wirelessleiden.nl/nagios/export/node-status.csv"
    2         In file "D:\Workspace\NodeMap2.0\trunk\src\inc\FileHandler.class.php" on line "42"
     1Debug (8 | 13:58.39 04/15/10 | ): Reading from file "http://watch.wirelessleiden.nl/nagios/export/node-status.csv"
     2        In file "D:\Werkplaats\NodeMap2.0\trunk\src\inc\FileHandler.class.php" on line "42"
Note: See TracChangeset for help on using the changeset viewer.