12 use lib
"$FindBin::Bin/lib/lib/perl5";
16 if($ENV{NAGVIS_DEVEL
}) {
20 plan
(tests
=> $num_tests);
22 ##################################################
23 # create our test site
26 my $omd_bin = TestUtils
::get_omd_bin
();
27 my $site = TestUtils
::create_test_site
() or TestUtils
::bail_out_clean
("no further testing without site");
28 my $auth = 'OMD Monitoring Site '.$site.':omdadmin:omd';
29 my $orig_auth = $auth;
31 # create test host/service
32 TestUtils
::prepare_obj_config
('t/data/omd/testconf1', '/omd/sites/'.$site.'/etc/nagios/conf.d', $site);
34 # Developer test: Install NagVis into local hierarchy
35 if($ENV{NAGVIS_DEVEL
}) {
36 TestUtils
::test_command
({ cmd
=> "/bin/bash -c 'cd /d1/lm/nagvis ; SITE=testsite bash .f12'" });
39 my $version = site_nagvis_version
($site);
41 ##################################################
42 # Check installation paths
43 site_thing_exists
($site, 'etc/nagvis/maps');
44 site_thing_exists
($site, 'etc/nagvis/geomap');
45 site_thing_exists
($site, 'etc/nagvis/conf.d');
46 site_thing_exists
($site, 'etc/nagvis/conf.d/omd.ini.php');
47 site_thing_exists
($site, 'etc/nagvis/conf.d/urls.ini.php');
48 site_thing_exists
($site, 'etc/nagvis/conf.d/demo.ini.php');
49 site_thing_exists
($site, 'etc/nagvis/nagvis.ini.php');
50 site_thing_exists
($site, 'share/nagvis/htdocs');
51 site_thing_exists
($site, 'share/nagvis/htdocs');
52 site_thing_exists
($site, 'local/share/nagvis/htdocs');
54 ##################################################
55 # Check NAGVIS_URLS switcher
57 # Ensure the site is stopped, but don't care about the exit code here!
58 TestUtils
::test_command
({ cmd
=> $omd_bin." stop $site", exit => -1 });
60 TestUtils
::test_command
({ cmd
=> $omd_bin." config $site set NAGVIS_URLS auto" });
61 TestUtils
::test_command
({ cmd
=> $omd_bin." config $site set DEFAULT_GUI welcome" });
62 # Now grep conf.d/urls.ini.php for lines matching
63 # a) hosturl="[htmlcgi]/status.cgi?host=[host_name]"
64 # b) htmlcgi="/nv/nagios/cgi-bin"
65 TestUtils
::test_command
({ cmd
=> "/bin/su - $site -c 'cat etc/nagvis/conf.d/urls.ini.php'",
66 like
=> [ '/hosturl="\[htmlcgi\]\/status.cgi\?host=\[host_name\]"/',
67 '/htmlcgi="\/'.$site.'\/nagios\/cgi-bin"/' ] }),
69 TestUtils
::test_command
({ cmd
=> $omd_bin." config $site set DEFAULT_GUI nagios" });
70 TestUtils
::test_command
({ cmd
=> "/bin/su - $site -c 'cat etc/nagvis/conf.d/urls.ini.php'",
71 like
=> [ '/hosturl="\[htmlcgi\]\/status.cgi\?host=\[host_name\]"/',
72 '/htmlcgi="\/'.$site.'\/nagios\/cgi-bin"/' ] }),
74 TestUtils
::test_command
({ cmd
=> $omd_bin." config $site set DEFAULT_GUI thruk" });
75 TestUtils
::test_command
({ cmd
=> "/bin/su - $site -c 'cat etc/nagvis/conf.d/urls.ini.php'",
76 like
=> [ '/hosturl="\[htmlcgi\]\/status.cgi\?host=\[host_name\]"/',
77 '/htmlcgi="\/'.$site.'\/thruk\/cgi-bin"/' ] }),
79 TestUtils
::test_command
({ cmd
=> $omd_bin." config $site set DEFAULT_GUI check_mk" });
80 TestUtils
::test_command
({ cmd
=> "/bin/su - $site -c 'cat etc/nagvis/conf.d/urls.ini.php'",
81 like
=> [ '/hosturl="\[htmlcgi\]\/view\.py\?view_name=host&site=&host=\[host_name\]"/',
82 '/htmlcgi="\/'.$site.'\/check_mk"/' ] }),
85 ##################################################
86 # Prepare the site for testing...
88 TestUtils
::test_command
({ cmd
=> $omd_bin." config $site set DEFAULT_GUI nagvis" });
89 TestUtils
::test_command
({ cmd
=> $omd_bin." start $site" });
91 ##################################################
92 # Some checks to ensure the basic functionality
95 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -u /$site/nagvis -e 401'",
96 like
=> '/HTTP OK:/' },
97 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis -e 301'",
98 like
=> '/HTTP OK:/' },
99 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/ -e 301'",
100 like
=> '/HTTP OK:/' },
101 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/frontend/nagvis-js/index.php -e 200'",
102 like
=> '/HTTP OK:/' },
103 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/frontend -e 301'",
104 like
=> '/HTTP OK:/' },
105 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/frontend/ -e 301'",
106 like
=> '/HTTP OK:/' },
107 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/frontend/wui -e 301'",
108 like
=> '/HTTP OK:/' },
109 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/frontend/wui/ -e 301'",
110 like
=> '/HTTP OK:/' },
111 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/frontend/wui/index.php -e 301'",
112 like
=> '/HTTP OK:/' },
113 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/index.php -e 301'",
114 like
=> '/HTTP OK:/' },
115 { cmd
=> "/bin/su - $site -c 'lib/nagios/plugins/check_http -t 30 -H localhost -a omdadmin:omd -u /$site/nagvis/config.php -e 301'",
116 like
=> '/HTTP OK:/' },
119 for my $test (@
{$tests}) {
120 TestUtils
::test_command
($test);
123 ##################################################
124 # User interface URL tests
127 # OMD welcome page in NagVis mode
128 url
({ url
=> "", like
=> '/<title>NagVis '.$version.'<\/title>/' }),
131 url
({ url
=> "/nagvis/frontend/nagvis-js/index.php",
132 like
=> '/<title>NagVis '.$version.'<\/title>/' }),
133 url
({ url
=> "/nagvis/frontend/nagvis-js/index.php?mod=Info&lang=en_US",
134 like
=> '/NagVis Support Information<\/title>/' }),
135 url
({ url
=> "/nagvis/frontend/nagvis-js/index.php?mod=Map&act=view&show=demo-germany",
136 like
=> '/, \'demo-germany\'/', 'skip_html_lint' => 1 }),
138 # Old redirects to maps
139 url
({ url
=> "/nagvis/index.php?map=demo-germany",
140 like
=> '/, \'demo-germany\'/', 'skip_html_lint' => 1 }),
141 url
({ url
=> "/nagvis/config.php?map=demo-germany",
142 like
=> '/, \'demo-germany\'/', 'skip_html_lint' => 1 }),
143 url
({ url
=> "/nagvis/index.php?rotation=demo",
144 like
=> '/, \'demo-germany\'/', 'skip_html_lint' => 1 }),
146 # Ajax fetched dialogs
147 # FIXME: only valid when not using trusted auth:
148 #api_url({ url => '/nagvis/server/core/ajax_handler.php?mod=ChangePassword&act=view',
149 # like => [ '/{"code":"/', '/changePasswordForm/' ]}),
150 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=view&lang=en_US',
151 like
=> [ '/Create User/', '/"code":"/' ]}),
152 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=RoleMgmt&act=view&lang=en_US',
153 like
=> [ '/Create Role/', '/"code":"/' ]}),
156 url
({ url
=> "/nagvis/frontend/nagvis-js/index.php?lang=de_DE",
157 like
=> '/Sprache wählen/'}),
159 # Language switch back
160 url
({ url
=> "/nagvis/frontend/nagvis-js/index.php?lang=en_US",
161 like
=> '/Choose Language/'}),
164 url
({ url
=> "/nagvis/docs/de_DE/index.html",
165 like
=> '/NagVis (.*) Dokumentation/'}),
166 url
({ url
=> "/nagvis/docs/en_US/index.html",
167 like
=> '/NagVis (.*) Documentation/'}),
171 for my $url ( @
{$urls} ) {
172 TestUtils
::test_url
($url);
175 ##################################################
176 # Environment auth tests
178 # Create user "omduser" in omd site
179 # SLES11 does not have a "htpasswd" binary. Use the available htpasswd2 binary in that case.
180 my $htpasswd = "htpasswd";
181 if(system("which $htpasswd >/dev/null 2>&1") != 0) {
182 $htpasswd = "htpasswd2";
184 TestUtils
::test_command
({ cmd
=> "/bin/su - $site -c '$htpasswd -b /omd/sites/$site/etc/htpasswd omduser test 2>/dev/null'"});
186 # Now try to auth with that user (environment auth)
187 $auth = 'OMD Monitoring Site '.$site.':omduser:test';
189 url
({ url
=> '/nagvis/frontend/nagvis-js/index.php',
190 like
=> '/Logged in: omduser/'})
194 # Fetch user management dialog
195 $response = TestUtils
::test_url
(
196 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=view',
197 like
=> '/Create User/' })
200 # Get the id of the user
202 if($response->{'content'} =~ m/<option value=\\\"([0-9]*)\\\">omduser<\\\/option
>/g
) {
205 ok
($userId ne "", 'User-ID of omduser: '.$userId) or diag
('Unable to gather the userid!');
207 # Check roles of the user
209 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=getUserRoles&userId='.$userId,
210 like
=> '/^\[{"roleId":"3","name":"Guests"}\]$/'})
213 ##################################################
214 # User management tests
217 # http://127.0.0.1/testsite/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=doAdd&_t=1322353697000
223 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=doAdd',
224 post
=> { password1
=> '123', password2
=> '123', username
=> 'testuser', 'submit' => 'Create User' },
225 like
=> '/^{"message":"The user has been created/' })
228 # 2. Fetch user management dialog
229 # http://127.0.0.1/testsite/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=view&_t=1322354360000
230 $response = TestUtils
::test_url
(
231 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=view',
232 like
=> '/Create User/' })
235 # 3. Get the id of the new user
237 if($response->{'content'} =~ m/<option value=\\\"([0-9]*)\\\">testuser<\\\/option
>/g
) {
240 ok
($userId ne "", 'User-ID of testuser: '.$userId) or diag
('Unable to gather the userid!');
242 # 4. get all roles of the user
244 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=getUserRoles&userId='.$userId,
248 # 5. add a role to the user
250 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=doEdit',
251 post
=> { submit
=> "Modify User", userId
=> $userId, 'rolesSelected[]' => 1},
252 like
=> '/The roles for this user have been updated/'})
255 # 6. verify user roles
257 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=getUserRoles&userId='.$userId,
258 like
=> '/^\[{"roleId":"1","name":"Administrators"}\]$/'})
263 # 8. Now try to delete this user again
265 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=doDelete',
266 post
=> { userId
=> $userId, submit
=> 'Delete User' },
267 like
=> [ '/^{"message":"The user has been deleted/' ]})
271 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=UserMgmt&act=view',
272 like
=> '/Create User/',
273 unlike
=> '/<option value=\\\"'.$userId.'\\\">testuser<\\\/option>/'})
276 ##################################################
279 # - Change the LogonModule to LogonDialog in nagvis
280 # - Disable the basic auth for /<site>/nagvis
281 site_write_file
($site, 'etc/nagvis/conf.d/auth.ini.php', "[global]\nlogonmodule=\"LogonDialog\"");
282 site_write_file
($site, 'etc/apache/conf.d/nagvis-auth.conf', "<Location \"/".$site."/nagvis\">\n"
283 ."Order allow,deny\n"
287 TestUtils
::test_command
({ cmd
=> $omd_bin." restart $site apache" });
291 url
({ url
=> '/nagvis/frontend/nagvis-js/index.php',
292 like
=> [ '/form name="loginform"/', '/name="_username"/', '/name="_password"/' ]})
295 # perform a random request which sould not be allowed to be requested by non logged in users
297 url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=General&act=getHoverTemplate&name[]=default',
298 like
=> [ '/{"message":"You are not authenticated"/' ]})
301 #diag('Test an invalid login');
303 url
({ url
=> '/nagvis/frontend/nagvis-js/index.php',
304 post
=> { _username
=> 'omdadmin', _password
=> 'XXX', submit
=> 'Login' },
305 like
=> [ '/form name="loginform"/', '/name="_username"/',
306 '/name="_password"/', '/Authentication failed/' ]})
309 #diag('Test logging in using the login dialog');
311 url
({ url
=> '/nagvis/frontend/nagvis-js/index.php',
312 post
=> { _username
=> 'omdadmin', _password
=> 'omd', submit
=> 'Login' },
313 like
=> [ '/<!-- Start header menu -->/', '/Logged in: omdadmin/' ]})
316 #diag('Test logging in using _GET vars');
318 url
({ url
=> '/nagvis/frontend/nagvis-js/index.php?_username=omdadmin&_password=omd',
319 like
=> [ '/<!-- Start header menu -->/', '/Logged in: omdadmin/' ]})
322 #diag('Test logging in at ajax API using _GET vars');
323 # Use random page to login by GET vars
325 url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=General&act=getHoverTemplate&name[]=default'
326 .'&_username=omdadmin&_password=omd',
327 like
=> [ '/"name":"default","css_file":/' ]})
330 # Disable dialog auth to use the environment auth for further testing
332 site_remove_file
($site, 'etc/apache/conf.d/nagvis-auth.conf');
333 site_remove_file
($site, 'etc/nagvis/conf.d/auth.ini.php');
334 TestUtils
::test_command
({ cmd
=> $omd_bin." restart $site apache" });
336 ##################################################
339 # /nagvis/server/core/ajax_handler.php?mod=General&act=getHoverTemplate&name[]=default
340 # [{"name":"default","code":"<...>"}]
342 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=General&act=getHoverTemplate&name[]=default',
343 like
=> [ '/"name":"default","css_file":/' ]})
346 # /nagvis/server/core/ajax_handler.php?mod=General&act=getContextTemplate&name[]=default
347 # [{"name":"default","code":"<...>"}]
349 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=General&act=getContextTemplate&name[]=default',
350 like
=> [ '/"name":"default","css_file":/' ]})
353 # /nagvis/server/core/ajax_handler.php?mod=Map&act=getMapProperties&show=demo
354 # {"map_name":"demo","alias":"demo","background_image":"\/nagvis\/userfiles\/images\/maps\/nagvis-demo.png","background_color":"transparent","favicon_image":"\/nagvis\/frontend\/nagvis-js\/images\/internal\/favicon.png","page_title":"demo ([SUMMARY_STATE]) :: NagVis 1.5.7","event_background":"0","event_highlight":"1","event_highlight_interval":"500","event_highlight_duration":"10000","event_log":"0","event_log_level":"info","event_log_height":"100","event_log_hidden":1,"event_scroll":"1","event_sound":"1","in_maintenance":"0"}
356 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Map&act=getMapProperties&show=demo-germany',
357 like
=> [ '/"map_name":"demo-germany",/' ]})
360 # /nagvis/server/core/ajax_handler.php?mod=Map&act=getMapObjects&show=demo
361 # FIXME: Add sepecial tests for object states here using the test backend
363 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Map&act=getMapObjects&show=demo-germany',
364 like
=> [ '/"alias":"Demo: 0 Overview Germany"/' ]})
367 # /nagvis/server/core/ajax_handler.php?mod=Map&act=getObjectStates&show=demo&ty=state&i[]=2&t[]=host&n1[]=host-down-hard&n2[]=
368 # FIXME: Add sepecial tests for object states here using the test backend
369 # 1. Match the object state
370 # 2. Match the member list
372 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Map&act=getObjectStates&show=demo-germany&ty=state&i[]=d99295',
373 like
=> [ '/{"state":/', '/"members":\[{"/' ]})
376 ###############################################################################
378 ###############################################################################
379 # /nagvis/server/core/ajax_handler.php?mod=Overview&act=getOverviewProperties
380 # {"cellsperrow":4,"showautomaps":1,"showmaps":1,"showgeomap":0,"showmapthumbs":0,"showrotations":1,"page_title":"NagVis 1.5.7","favicon_image":"\/nagvis\/frontend\/nagvis-js\/images\/internal\/favicon.png","background_color":"#ffffff","lang_mapIndex":"Map Index","lang_automapIndex":"Automap Index","lang_rotationPools":"Rotation Pools","event_log":0,"event_log_level":"info","event_log_height":100,"event_log_hidden":1}
382 api_url
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Overview&act=getOverviewProperties',
383 like
=> [ '/"showmaps":1,"showgeomap":0,"showmapthumbs":0,"showrotations":1/', ]})
386 # /nagvis/server/core/ajax_handler.php?mod=Overview&act=getOverviewMaps
388 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Overview&act=getOverviewMaps',
389 like
=> [ '/"alias":/', ]})
392 # /nagvis/server/core/ajax_handler.php?mod=Overview&act=getOverviewRotations
394 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Overview&act=getOverviewRotations',
395 like
=> [ '/"name":"demo-germany",/', ]})
398 # /nagvis/server/core/ajax_handler.php?mod=General&act=getObjectStates&ty=state&i[]=automap-0&t[]=automap&n1[]=__automap&n2[]=
399 # http://127.0.0.1/nagvis/server/core/ajax_handler.php?mod=Overview&act=getObjectStates&ty=state&i[]=automap-__automap&_t=1298764833000
401 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Overview&act=getObjectStates&ty=state&i[]=automap-__automap',
402 like
=> [ '/"state":"/', ]})
406 api_url_list
({ url
=> '/nagvis/server/core/ajax_handler.php?mod=Overview&act=getObjectStates&ty=state&i[]=automap-notexisting',
407 like
=> [ '/"state":"ERROR/', '/Map Error: The path /' ]})
410 ###############################################################################
412 ###############################################################################
414 TestUtils
::test_url
(url
({ url
=> "/nagvis/frontend/nagvis-js/index.php?lang=de_DE",
415 like
=> '/Sprache wählen/'}));
418 site_match_file
($site, 'var/nagvis/profiles/omdadmin.profile', '/"language":"de_DE"/');
420 ##################################################
422 TestUtils
::remove_test_site
($site);
425 ##################################################
427 # maybe move some of them to the general code one day
431 $url->{'url'} = "http://localhost/".$site.$url->{'url'};
432 $url->{'auth'} = $auth;
433 $url->{'unlike'} = [ '/internal server error/' ];
434 $url->{'skip_link_check'} = [ 'lang=' ];
439 my $url = url
(shift);
440 my $obj_match = shift;
441 if(!defined $obj_match) {
442 $obj_match = '/^{.*}$/';
445 $url->{'no_html_lint'} = 1;
447 # Add default AJAX API tests
448 my $def_like = [ $obj_match ];
449 if(defined $url->{'like'}) {
450 if(ref $url->{'like'} ne 'ARRAY') {
451 $url->{'like'} = [ $url->{'like'} ];
453 push(@
{$url->{'like'}}, @
{$def_like});
455 $url->{'like'} = $def_like;
461 return api_url
(shift, '/^\[.*\]$/')
464 sub get_maincfg_files
{
468 # Get all nagvis config files
469 opendir(my($dh), '/omd/sites/'.$site.'/etc/nagvis/conf.d') or die("Couldn't open dir conf.d dir: $!");
470 while(my $file = readdir($dh)) {
471 if($file =~ m/.*\.ini\.php/g) {
472 push(@files, 'conf.d/' . $file);
476 push(@files, 'nagvis.ini.php');
480 sub site_nagvis_maincfg_mtime
{
485 for my $file (get_maincfg_files
($site)) {
486 $age = site_mtime
($site, 'etc/nagvis/' . $file);
487 $newest = ($age > $newest ?
$age : $newest);
492 sub site_remove_file
{
493 unlink '/omd/sites/'.shift(@_).'/'.shift(@_);
496 sub site_write_file
{
497 my $path = '/omd/sites/'.shift(@_).'/'.shift(@_);
498 open(FILE
, '>'.$path) or fail
("Could not open file ".$path.".");
499 print FILE
shift(@_);
505 Touches a given site file to modify the last access and modification
506 time of a given file. The path is given relative to the sites base dir.
507 The functions returns the touch time as unix timestamp.
514 utime $now, $now, '/omd/sites/'.$site.'/'.$path;
520 Returns the mtime for a file in the given site.
521 The path is given as relative path to the sites base directory.
522 The time is returned as unix timestamp.
528 return (stat '/omd/sites/'.$site.'/'.$path)[9];
531 =head2 site_match_file
533 Checks if the specified pattern can be found in the given file.
534 The path is given as relative path to the sites base directory.
535 This function returns 1 if the pattern could be found or 0 if
536 there was no match in the file.
539 sub site_match_file
{
543 my $path = '/omd/sites/' . $site . '/' . $fpath;
545 #diag('Checking file contents of '.$path);
547 open FILE
, '<'.$path or fail
("Could not open file.");
548 my $content = do { local $/; <FILE
> };
551 like
($content, $pattern, "content like ".$pattern) or diag
('Contents: '.$content);
554 =head2 site_thing_exists
556 Checks if the specified directory/link/file exists. Fails if
557 the thing does not exist.
560 sub site_thing_exists
{
563 my $path = '/omd/sites/' . $site . '/' . $fpath;
565 #diag('Checking file exists '.$path);
566 #TestUtils::test_command({ cmd => "[ -f '.$path.' ]" });
567 ok
(-e
$path, 'Checking file exists '.$path) or diag
('File does not exist!');
570 =head2 site_nagvis_version
572 Returns version string for the sites NagVis version. It takes the
573 local/ path installations into account.
576 sub site_nagvis_version
{
580 if(-e
'/omd/sites/' . $site . '/local/share/nagvis/htdocs/server/core/defines/global.php') {
581 $path = '/omd/sites/' . $site . '/local/share/nagvis/htdocs/server/core/defines/global.php';
583 $path = '/omd/sites/' . $site . '/share/nagvis/htdocs/server/core/defines/global.php';
585 open FILE
, $path or die("Could not open file.");
586 foreach my $line (<FILE
>) {
587 if($line =~ m/^define\('CONST_VERSION', '([^']*)'/) {