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 | xIodU7lBP0sOx3e6CFtClkfp/bVAPoqGDfH9rytWnT4tezmk0METjFW5UfkfEhftq |
2 | myqtvoBJksxWOcps08w5hHhtw63ugrOY7d+PtnrZa0wOCYBwaFW2ngbvBzF4lJShC |
3 | 60M3zCwBU7WMH+RrYyyzTLpbya28xsj7VQTnI4QTNfawMGEUrHBRtRtG/Eq/B2HLn |
3 | +/zx5NJWtn/0oAjHyhti/r6wSpOetg3gbJuh0mFq2YPyFhZ3DKS61XU711FNl8U1i |
4 | sJ/ZpLwpipTVAnt9MWsKmkz5I/7BfOJwjrH2BlLTDxmHk9SoelvAyR29n2kmfsRty |
4 | RJah0DsEBppzATh6/SjnORteRwNP3TcVQ+0WFugA1OzjMNmn8ThYcFevH6PS3ICYB |
5 | J5miiW628U/lKRI2N53K22DFKBYVwvN8YQzhbfZrwnyNzrfOdvfGZ6DINe/CtjYGi |
5 | ydTDgJOVZVVlQWNQ5Xire7s1/if9z+hM9MhYVgmE2JR7lVKo+97KvcBg37npHezp5 |
6 | +u06hJF0q/hceMw3zln3lKNz2bhW9XJ2K8CGtimj1OVjZlhc+Pw9RF46X/SDeaz5Q |
6 | 6Zs7tVgf7mVViO1pk1X0nvJdk1db0UXcxidu2+evfg7nsgUgraKqToxlrNsST41lv |
7 | nlNoAde16v9GP2cwTEXjnicMR3g7PJdQjiHxj/fTCg3C1BIUQb7kJXsYKe9HlYijD |
7 | lPyOjeb9c8z788yKzTfQ6M0s1ECbkM1q8sGLjWRl1nfQwxqnLJMchJbH9iGkDL9aF |
8 | ZQGDMout6gg1oc34ZCwWttYjo54FlB6t/BKdvZCgPjKqC6DcP0JE/29a+Nb3XhYV7 |
8 | IVPH5zo288Ta0YAy3rZTJ/KJHJ/riQVbRUPyOIWtpeC32n9YYSUh5r6G3zNrIi6Dj |
9 | +juV3nnDAGv9vHtRgZoBlTuLiSRKurhECMhnQO4IAHxSC7pdUiglEG/LJ7CMEyh5c |
9 | p0l0tQJ3VlBLqrReHD5xY5BiMqm9cyFFkyozsZ5qMhQ22oexvnIlvj2et40r/OMbN |
10 | VJQkq9LyVC8koExrzGiMUBCXh8QC64UWL5LTX/diSn3AyLXX6ZNLXBtV2mmHwGAl/ |
10 | LJXOrapmkPkXeuF5ZiVlUcBMQt+uDlceCQMeLTQmtCOKgaml/ljTKGSM9byoUJQ1O |
11 | d+H8Sw8IganZPfNwFcKT2hvj05GalidbNgFMXqOkJBGT7gOrVux6jmUfFuOzeXjHG |
11 | qBKnJoAr+/wH07Xy116ZPt/u5iXDJyYiIyGVWMYfnj94zrvWmh7wab1S6uicvbnu3 |
12 | qNpPF6e4D3SDv7iCsEOKmM1ueWeawFLnz2tub3NINgRqt91GAULsA53N2tv7qd3ek |
12 | 7w6hhyeTGQ/MxCseQEpNGNzYo1pL/6fCCBllPaTXLWVwbKnxWHo65Y4KyDkzdjJjU |
13 | 1ko5NLT2NFIxkcz0BlDSyhhMu8etDQBQtY+D4g7z879LLREgdrw58MAAhrk/f5np7 |
13 | XA6uF8Wv+vGtpQBWG8F/jH+DFHOR9Dl3MLaSNIPVuFgCZ4YPPIfZoEiLXrjCaWI3T |
14 | +eXVh4qTuGIsJyYoXwCzgDZ9RcZmXfDZ7x9CLJTgpp5YhRzutYiqrgxw3Nkn3R3Jk |
14 | ZDBND6urBUqNWMXUSEUKmpRJoq1iBa8JF5zysl2sVck/L6uzohR9aMUZtxJkqTnHh |
15 | 9GpVuaRymb0fz/FT/km0rsqKChSaazTeCUxhZF0+vAbLDHurkw5G34IkbypJHdbKp |
15 | KSbBm2w2NOzOqan1Gl+NR0awFeCQf2taS+vkbZmSpeLMMMi7921+hVTEzgtmTC5IP |
16 | ny+/83ktrxwLG+2ICHh4WLFDKWmbwepPePqH8fqKy+oi+7xsUJB0Z1joasD9WYxme |
16 | OKBu6ajOw25Tdaqd9YZffCJtXl5IJM9U72SHBrSKC/lt6zTaG+lk3jdy4O140TR1D |
17 | SoTWBC9js7r9KpXnuvD6DaTHoYaowLZlo44guo0O++6gFT/Y1Cv6YXqNbNJeOQ8Nc |
17 | vN1WpoPXuYw+IoI442U9uzD97/qLzkgvg2jwJWvQcVSGBCkdOj5y61ZEt/1VIHp0Z |
18 | yxVYXzdTeKO4lixezSI/K8/OeeHEyLhjHMb4kUcEOCuXFzQcO9jPd9pucOZVdwSvB |
18 | zKO6dIZAZQ7fCw5samLaAjAVzDzEFevI05pHZdyzXUf8Oh7DndCxMSrkgyjvid/X3 |
19 | M2pDAOcrhFWiSFQiwx826zEyY5J+MwTuewOJrJKXNIaMxzu55ZTPKy8qfPma9jvrY |
19 | SXAsImdKeWl35NonLmBhnpzufU0/cs6XsdWlZUD5qWoXlMRJMXSyj76ol4Lt+gAKG |
20 | fwDy9ZnDvb7XKHgJIdBdrPfq7fkPVvd2pYYozBvQaYDdrZvapixhy4300Iqx8fup6 |
20 | L5auTP8WAc2e+fYi8PuXXZf2bpoekQ4yu7Ynh9h5kWfbg1G4+04w9bVW2v1M0mWUk |
21 | pW8xfN+HvKLUWt4NFWojvmIpSp5egb8DGRzBChgLVktI+2Q64cXGXOrfhR1sIK2me |
21 | PaxIlL5KgjcO4BBbEKIoTYNXZIV4kBhnVWmxIv0L4r5NPzNaMRl6iIzWtehk2tWV2 |
22 | XMs33vPVTK5t1obSksMDCf/9dJmjRQ+XtS0+D2AsWdkD2MUJhoHLJE6spl+h5dQ+7 |
22 | 0MsvwOFIfL+OvtPGqZ8Lrfu7prFvozyVWioSSGfMMmGrPiwmS/7a5qvV3aazpNEBp |
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 |