Changeset 34e7428 in nscp for modules/CheckWMI/CheckWMI.cpp


Ignore:
Timestamp:
07/01/08 06:39:49 (5 years ago)
Author:
Michael Medin <michael@…>
Branches:
master, 0.4.0, 0.4.1, 0.4.2, stable
Children:
da1c7e1
Parents:
a720da5
Message:

Added new option (namespace) to CheckWMI and CheckWMIValue use like so:

CheckWMI namespace=root
cimv2 MaxCrit=3 MinWarn=1 "Query:load=Select * from win32_Processor"

File:
1 edited

Legend:

Unmodified
Added
Removed
  • modules/CheckWMI/CheckWMI.cpp

    r367bf20 r34e7428  
    8080 
    8181NSCAPI::nagiosReturn CheckWMI::CheckSimpleWMI(const unsigned int argLen, TCHAR **char_args, std::wstring &message, std::wstring &perf) { 
    82   typedef checkHolders::CheckConatiner<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, checkHolders::int_handler> > > WMIConatiner; 
     82  typedef checkHolders::CheckContainer<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, checkHolders::int_handler> > > WMIContainer; 
    8383 
    8484  NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 
     
    9292  unsigned int truncate = 0; 
    9393  std::wstring query, alias; 
     94  std::wstring ns = _T("root\\cimv2"); 
    9495  bool bPerfData = true; 
    9596 
    96   WMIConatiner result_query; 
     97  WMIContainer result_query; 
    9798  try { 
    9899    MAP_OPTIONS_BEGIN(args) 
    99100    MAP_OPTIONS_STR(_T("Query"), query) 
    100101    MAP_OPTIONS_STR2INT(_T("truncate"), truncate) 
     102    MAP_OPTIONS_STR2INT(_T("namespace"), ns) 
    101103    MAP_OPTIONS_STR(_T("Alias"), alias) 
    102104    MAP_OPTIONS_BOOL_FALSE(IGNORE_PERFDATA, bPerfData) 
     
    123125  try { 
    124126    WMIQuery wmiQuery; 
    125     rows = wmiQuery.execute(query); 
     127    rows = wmiQuery.execute(ns, query); 
    126128  } catch (WMIException e) { 
    127129    message = _T("WMIQuery failed: ") + e.getMessage(); 
     
    151153 
    152154NSCAPI::nagiosReturn CheckWMI::CheckSimpleWMIValue(const unsigned int argLen, TCHAR **char_args, std::wstring &message, std::wstring &perf) { 
    153   typedef checkHolders::CheckConatiner<checkHolders::MaxMinBounds<checkHolders::NumericBounds<long long, checkHolders::int64_handler> > > WMIConatiner; 
     155  typedef checkHolders::CheckContainer<checkHolders::MaxMinBounds<checkHolders::NumericBounds<long long, checkHolders::int64_handler> > > WMIContainer; 
    154156  std::list<std::wstring> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); 
    155157  if (stl_args.empty()) { 
     
    157159    return NSCAPI::returnUNKNOWN; 
    158160  } 
    159   std::list<WMIConatiner> list; 
     161  std::list<WMIContainer> list; 
    160162  NSCAPI::nagiosReturn returnCode = NSCAPI::returnOK; 
    161   WMIConatiner tmpObject; 
     163  WMIContainer tmpObject; 
    162164  bool bPerfData = true; 
    163165  unsigned int truncate = 0; 
    164166  std::wstring query; 
     167  std::wstring ns = _T("root\\cimv2"); 
    165168  std::wstring aliasCol; 
    166169 
     
    171174      MAP_OPTIONS_SHOWALL(tmpObject) 
    172175      MAP_OPTIONS_NUMERIC_ALL(tmpObject, _T("")) 
     176      MAP_OPTIONS_STR2INT(_T("namespace"), ns) 
    173177      MAP_OPTIONS_STR(_T("Alias"), tmpObject.data) 
    174178      MAP_OPTIONS_STR(_T("AliasCol"), aliasCol) 
     
    192196  try { 
    193197    WMIQuery wmiQuery; 
    194     rows = wmiQuery.execute(query); 
     198    rows = wmiQuery.execute(ns, query); 
    195199  } catch (WMIException e) { 
    196200    message = _T("WMIQuery failed: ") + e.getMessage(); 
     
    199203  int hit_count = 0; 
    200204 
    201   for (std::list<WMIConatiner>::const_iterator it = list.begin(); it != list.end(); ++it) { 
    202     WMIConatiner itm = (*it); 
     205  for (std::list<WMIContainer>::const_iterator it = list.begin(); it != list.end(); ++it) { 
     206    WMIContainer itm = (*it); 
    203207    itm.setDefault(tmpObject); 
    204208    itm.perfData = bPerfData; 
     
    219223    } 
    220224    for (WMIQuery::wmi_row::list_type::const_iterator citCol = (*citRow).results.begin(); citCol != (*citRow).results.end(); ++citCol) { 
    221       for (std::list<WMIConatiner>::const_iterator it = list.begin(); it != list.end(); ++it) { 
    222         WMIConatiner itm = (*it); 
     225      for (std::list<WMIContainer>::const_iterator it = list.begin(); it != list.end(); ++it) { 
     226        WMIContainer itm = (*it); 
    223227        if (itm.data == _T("*")) { 
    224228          found = true; 
     
    258262  //WMIQuery wmiQuery; 
    259263  std::wstring query = command; 
     264  std::wstring ns = _T("root\\cimv2"); 
    260265  query += _T(" ") + arrayBuffer::arrayBuffer2string(char_args, argLen, _T(" ")); 
    261266  WMIQuery::result_type rows; 
    262267  try { 
    263268    WMIQuery wmiQuery; 
    264     rows = wmiQuery.execute(query); 
     269    rows = wmiQuery.execute(ns, query); 
    265270  } catch (WMIException e) { 
    266271    NSC_LOG_ERROR_STD(_T("WMIQuery failed: ") + e.getMessage()); 
Note: See TracChangeset for help on using the changeset viewer.