Subversion Repositories vnag

Rev

Rev 76 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 76 Rev 77
Line 1... Line 1...
1
<?php /* <ViaThinkSoftSignature>
1
<?php /* <ViaThinkSoftSignature>
2
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
23
Q==
23
w==
24
</ViaThinkSoftSignature> */ ?>
24
</ViaThinkSoftSignature> */ ?>
25
<?php
25
<?php
26
 
26
 
27
/*
27
/*
28
 * VNag - Nagios Framework for PHP
28
 * VNag - Nagios Framework for PHP
Line 55... Line 55...
55
 
55
 
56
        protected function getInstalledVersion($dir) {
56
        protected function getInstalledVersion($dir) {
57
                $version_manifest = $dir.'/version-manifest.json';
57
                $version_manifest = $dir.'/version-manifest.json';
58
 
58
 
59
                if (!file_exists($version_manifest)) {
59
                if (!file_exists($version_manifest)) {
60
                        throw new Exception('This is not a valid GitLab installation in "'.$dir.'" (version-manifest.json is missing).');
60
                        throw new VNagException('This is not a valid GitLab installation in "'.$dir.'" (version-manifest.json is missing).');
-
 
61
                }
-
 
62
 
-
 
63
                $cont = @file_get_contents($version_manifest);
-
 
64
                if ($cont === false) {
-
 
65
                        throw new VNagException('Cannot read version-manifest.json from GitLab installation in "'.$dir.'".');
-
 
66
                }
-
 
67
                $json = @json_decode($cont,true);
-
 
68
                if ($json === false) {
-
 
69
                        throw new VNagException('This is not a valid GitLab installation in "'.$dir.'" (version-manifest.json has invalid JSON data).');
61
                }
70
                }
62
 
71
 
63
                $json = json_decode(file_get_contents($version_manifest),true);
-
 
64
                return $json['build_version'];
72
                return $json['build_version'];
65
        }
73
        }
66
 
74
 
67
        protected function getServerResponse($version) {
75
        protected function getServerResponse($version) {
68
                $opts = array(
76
                $opts = array(
Line 75... Line 83...
75
                $url = "https://version.gitlab.com/check.svg?gitlab_info=".
83
                $url = "https://version.gitlab.com/check.svg?gitlab_info=".
76
                       urlencode(base64_encode('{"version":"'.$version.'"}'));
84
                       urlencode(base64_encode('{"version":"'.$version.'"}'));
77
                $cont = $this->url_get_contents($url, 1*60*60, $context);
85
                $cont = $this->url_get_contents($url, 1*60*60, $context);
78
 
86
 
79
                if ($cont === false) {
87
                if ($cont === false) {
80
                        throw new Exception('Cannot query version.gitlab.com for version check (Version '.$version.')');
88
                        throw new VNagException('Cannot query version.gitlab.com for version check (Version '.$version.')');
81
                }
89
                }
82
 
90
 
83
                if (!preg_match('@>([^<]+)</text>@ismU', $cont, $m)) {
91
                if (!preg_match('@>([^<]+)</text>@ismU', $cont, $m)) {
84
                        throw new Exception('Server version.gitlab.com sent an unexpected reply (Version '.$version.')');
92
                        throw new VNagException('Server version.gitlab.com sent an unexpected reply (Version '.$version.')');
85
                }
93
                }
86
 
94
 
87
                return $m[1];
95
                return $m[1];
88
        }
96
        }
89
 
97
 
90
        protected function cbRun($optional_args=array()) {
98
        protected function cbRun($optional_args=array()) {
91
                $system_dir = $this->argSystemDir->getValue();
99
                $system_dir = $this->argSystemDir->getValue();
92
                if (empty($system_dir)) {
100
                if (empty($system_dir)) {
93
                        throw new Exception("Please specify the directory of the GitLab installation.");
101
                        throw new VNagException("Please specify the directory of the GitLab installation.");
94
                }
102
                }
95
                $system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir);
103
                $system_dir = realpath($system_dir) === false ? $system_dir : realpath($system_dir);
96
 
104
 
97
                if (!is_dir($system_dir)) {
105
                if (!is_dir($system_dir)) {
98
                        throw new Exception('Directory "'.$system_dir.'" not found.');
106
                        throw new VNagException('Directory "'.$system_dir.'" not found.');
99
                }
107
                }
100
 
108
 
101
                $cur_ver = $this->getInstalledVersion($system_dir);
109
                $cur_ver = $this->getInstalledVersion($system_dir);
102
                $status = $this->getServerResponse($cur_ver);
110
                $status = $this->getServerResponse($cur_ver);
103
 
111