Changeset 80235b3f11f72d0a54a7ae6df1139d23ed59e2ac

Show
Ignore:
Timestamp:
01/27/08 07:34:04 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1201419244 +0000
git-parent:

[e102af344eb4afacdeeb549fb60d77715f815a53]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1201419244 +0000
Message:

checkers

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/noit_conf.c

    re102af3 r80235b3  
    3232   * PLEASE: keep them alphabetically sorted. 
    3333   */ 
    34   { "/global/modules/directory", MODULES_DIR }, 
     34  { "/noit/modules/directory", MODULES_DIR }, 
    3535 
    3636  { NULL, NULL } 
     
    6969                                    const char *path) { 
    7070  int i, cnt; 
    71   noit_hash_table *table
     71  noit_hash_table *table = NULL
    7272  xmlXPathObjectPtr pobj; 
    7373  xmlXPathContextPtr current_ctxt; 
     
    7575  xmlNodePtr node; 
    7676 
    77   table = calloc(1, sizeof(*table)); 
    7877  current_ctxt = xpath_ctxt; 
    7978  if(current_node) { 
     
    8584  if(pobj->type != XPATH_NODESET) goto out; 
    8685  if(xmlXPathNodeSetIsEmpty(pobj->nodesetval)) goto out; 
     86  table = calloc(1, sizeof(*table)); 
    8787  cnt = xmlXPathNodeSetGetLength(pobj->nodesetval); 
    8888  for(i=0; i<cnt; i++) { 
  • src/noit_listener.c

    rcaa7b86 r80235b3  
    150150  noit_conf_section_t *listener_configs; 
    151151 
    152   listener_configs = noit_conf_get_sections(NULL, "/global/listeners/listener", 
     152  listener_configs = noit_conf_get_sections(NULL, "/noit/listeners/listener", 
    153153                                            &cnt); 
    154   noit_log(noit_stderr, NULL, "Found %d /global/listeners/listener stanzas\n", 
     154  noit_log(noit_stderr, NULL, "Found %d /noit/listeners/listener stanzas\n", 
    155155           cnt); 
    156156  for(i=0; i<cnt; i++) { 
  • src/noit_module.c

    re102af3 r80235b3  
    2323  noit_module_t *module; 
    2424 
    25   if(!noit_conf_get_string(NULL, "/global/modules/directory", &base)) 
     25  if(!noit_conf_get_string(NULL, "/noit/modules/directory", &base)) 
    2626    base = strdup(""); 
    2727 
     
    7878  int i, cnt = 0; 
    7979 
    80   sections = noit_conf_get_sections(NULL, "/global/modules/module", &cnt); 
     80  sections = noit_conf_get_sections(NULL, "/noit/modules/module", &cnt); 
    8181  if(!sections) return; 
    8282  for(i=0; i<cnt; i++) { 
  • src/noit_poller.c

    r0268e62 r80235b3  
    1414#include "utils/noit_log.h" 
    1515#include "utils/noit_hash.h" 
     16#include "noit_conf.h" 
    1617#include "noit_poller.h" 
    1718#include "eventer/eventer.h" 
     
    2021 
    2122void 
     23noit_poller_load_checks() { 
     24  int i, cnt = 0; 
     25  noit_conf_section_t *sec; 
     26  sec = noit_conf_get_sections(NULL, "/noit/checks//check", &cnt); 
     27  for(i=0; i<cnt; i++) { 
     28    char uuid_str[37]; 
     29    char target[256]; 
     30    char module[256]; 
     31    char name[256]; 
     32    int period, timeout; 
     33    uuid_t uuid, out_uuid; 
     34    noit_hash_table *options; 
     35 
     36    if(!noit_conf_get_stringbuf(sec[i], "@uuid", 
     37                                uuid_str, sizeof(uuid_str))) { 
     38      noit_log(noit_stderr, NULL, "check %d has no uuid\n", i+1); 
     39      continue; 
     40    } 
     41    if(uuid_parse(uuid_str, uuid)) { 
     42      noit_log(noit_stderr, NULL, "check uuid: '%s' is invalid\n", uuid_str); 
     43      continue; 
     44    } 
     45    if(!noit_conf_get_stringbuf(sec[i], "target", target, sizeof(target))) { 
     46      if(!noit_conf_get_stringbuf(sec[i], "../target", target, sizeof(target))) { 
     47         noit_log(noit_stderr, NULL, "check uuid: '%s' has no target\n", 
     48                  uuid_str); 
     49         continue; 
     50      } 
     51    } 
     52    if(!noit_conf_get_stringbuf(sec[i], "module", module, sizeof(module))) { 
     53      if(!noit_conf_get_stringbuf(sec[i], "../module", module, sizeof(module))) { 
     54        noit_log(noit_stderr, NULL, "check uuid: '%s' has no module\n", 
     55                 uuid_str); 
     56        continue; 
     57      } 
     58    } 
     59    if(!noit_conf_get_stringbuf(sec[i], "name", name, sizeof(name))) { 
     60      strcpy(name, module); 
     61    } 
     62    if(!noit_conf_get_int(sec[i], "period", &period)) { 
     63      if(!noit_conf_get_int(sec[i], "../period", &period)) { 
     64        noit_log(noit_stderr, NULL, "check uuid: '%s' has no period\n", uuid_str); 
     65        continue; 
     66      } 
     67    } 
     68    if(!noit_conf_get_int(sec[i], "timeout", &timeout)) { 
     69      if(!noit_conf_get_int(sec[i], "../timeout", &timeout)) { 
     70        noit_log(noit_stderr, NULL, "check uuid: '%s' has no timeout\n", uuid_str); 
     71        continue; 
     72      } 
     73    } 
     74    options = noit_conf_get_hash(sec[i], "config"); 
     75    noit_poller_schedule(target, module, name, options, 
     76                         period, timeout, uuid, out_uuid); 
     77    noit_log(noit_debug, NULL, "loaded uuid: %s\n", uuid_str); 
     78  } 
     79} 
     80 
     81void 
    2282noit_poller_init() { 
     83  noit_poller_load_checks(); 
    2384} 
    2485 
     
    3091                     u_int32_t period, 
    3192                     u_int32_t timeout, 
     93                     uuid_t in, 
    3294                     uuid_t out) { 
    3395  int8_t family; 
     
    72134  new_check->timeout = timeout; 
    73135  new_check->flags = 0; 
    74   uuid_generate(new_check->checkid); 
     136  if(uuid_is_null(in)) 
     137    uuid_generate(new_check->checkid); 
     138  else 
     139    uuid_copy(new_check->checkid, in); 
    75140 
    76141  assert(noit_hash_store(&polls, 
    77142                         (char *)new_check->checkid, sizeof(new_check->checkid), 
    78143                         new_check)); 
     144  uuid_copy(out, new_check->checkid); 
    79145  return 0; 
    80146} 
     
    110176  return 0; 
    111177} 
    112  
  • src/noit_poller.h

    r392bce2 r80235b3  
    6565} * noit_check_t; 
    6666 
     67API_EXPORT(void) noit_poller_init(); 
     68API_EXPORT(void) noit_poller_load_checks(); 
     69 
    6770API_EXPORT(int) 
    6871  noit_poller_schedule(const char *target, 
     
    7275                       u_int32_t period, 
    7376                       u_int32_t timeout, 
     77                       uuid_t in, 
    7478                       uuid_t out); 
    7579 
  • src/noitd.c

    re102af3 r80235b3  
    5151 
    5252  /* Lastly, run through all other system inits */ 
    53   if(!noit_conf_get_stringbuf(NULL, "/global/eventer/implementation", 
     53  if(!noit_conf_get_stringbuf(NULL, "/noit/eventer/implementation", 
    5454                              conf_str, sizeof(conf_str))) { 
    5555    noit_log(noit_stderr, NULL, "Cannot find '%s' in configuration\n", 
    56              "/global/eventer/implementation"); 
     56             "/noit/eventer/implementation"); 
    5757    exit(-1); 
    5858  } 
     
    6767  noit_console_init(); 
    6868  noit_module_init(); 
     69  noit_poller_init(); 
    6970  noit_listener_init(); 
    7071 
  • src/sample.conf

    re102af3 r80235b3  
    11<?xml version="1.0" standalone="yes"?> 
    2 <global
     2<noit
    33  <eventer> 
    44    <implementation>kqueue</implementation> 
     
    2727    </listener> 
    2828  </listeners> 
    29 </global> 
     29  <checks> 
     30    <checkgroup> 
     31    <module>ping_icmp</module>> 
     32    <check uuid="1b4e28ba-2fa1-11d2-883f-b9a761bde3fb"> 
     33      <module>ping_icmp</module> 
     34      <target>127.0.0.1</target> 
     35      <period>3000</period> 
     36      <timeout>1000</timeout> 
     37    </check> 
     38    </checkgroup> 
     39  </checks> 
     40</noit>