Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > d39bbfa2d2aa81a796ac6b422b6182e6 > files > 9

php-pear-Net_Monitor-0.3.0-3.mga5.noarch.rpm

<?php
/**
 *
 * This file gives an example of configuring Net_Monitor using an INI file
 *
 * @package Net_Monitor
 * @see config.ini.php
 */
/**
 *
 */
require_once('Net/Monitor.php');
// what config file we use
$cfg = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : 'config.ini.php';

$config = parse_ini_file($cfg,true);
if (!($services = $config['services'])) {
    exit("You must at least have a section [services] !\n");
}
unset( $config['services']);
while(list($key,$value) = each($services)) {
    $value = explode(',',$value);
    $value = array_map('trim',$value);
    $services[$key] = $value;
}
$options = array();
if (isset($config['options'])) {
    $options = $config['options'];
    unset( $config['options']);
}
if (isset($config['SMTP'])) {
    $options['SMTP_default'] = $config['SMTP'];
    unset( $config['SMTP']);
}
if (isset($config['SMS'])) {
    $options['SMS_default'] = $config['SMS'];
    unset( $config['SMS']);
}
// proceed rest of sections for extra servers
$SMTP = $SMS = array();
foreach ($config as $sec => $param) {
    if (isset($param['SMS_provider'])) {
        $SMS[$sec] = $param;
        unset( $config[$sec]);
    }
    if (isset($param['host'])) {
        $SMTP[$sec] = $param;
        unset( $config[$sec]);
    }
}
// users
$alerts = array();
foreach ($config as $user => $param) {
    $alert = array();
    if (isset($param['SMTP'])) {
        $alert['SMTP'] = $param['SMTP'];
        unset( $param['SMTP']);
    }
    if (isset($param['SMS'])) {
        $alert['SMS'] = $param['SMS'];
        unset( $param['SMS']);
    }
    foreach ($param as $server=>$extra) {
        if (isset($SMTP[$server])) {
            $alert['SMTP'] = $SMTP[$server];
            $alert['SMTP']['email'] = $extra;
        } elseif (isset($SMS[$server])) {
            $alert['SMS'] = $SMS[$server];
            $alert['SMS']['phone_number'] = $extra;
        } else {
            exit("Unknown server {$server} for user {$user} !\n");
        }
    }
    if (!$alert) {
        exit("Empty for user {$user} !\n");
    }
    $alerts[$user] = $alert;
}
print_r($services);
print_r($alerts);
print_r($options);
$monitor = new Net_Monitor($services, $alerts, $options);
$monitor->checkAll();