Moosh\Command\Moodle26\Nagios\NagiosCheck::execute PHP Method

execute() public method

public execute ( )
    public function execute()
    {
        global $CFG;
        if (!function_exists('curl_version')) {
            die("PHP cURL not installed\n");
        }
        /** Ugly hack to get this working. Forking doesn't work here
         * because moodle can't log entries from forked process into db.
         * We need this run in external process because apache doesn't can't
         * give usvalid cookie before moosh process ends.
         */
        $loginasadmin = run_external_command("moosh admin-login", "admin-login failed");
        $target = $CFG->wwwroot . '/admin/index.php';
        $credentials = explode(":", $loginasadmin[0]);
        $cookiename = $credentials[0];
        $cookie = $credentials[1];
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_COOKIE, sprintf('%s=%s', $cookiename, $cookie));
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_URL, $target);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_getinfo($ch);
        $result = curl_exec($ch);
        curl_close($ch);
        if (strpos($result, "You are logged in as")) {
            echo "Moodle instance is running.";
            return 0;
        } else {
            echo "Moodle instance unreachable.";
            return 2;
        }
    }