217 lines
7.2 KiB
PHP
217 lines
7.2 KiB
PHP
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use App\Controller\AppController;
|
|
use AsdCurl\AsdMstr;
|
|
use AsdCurl\AsdUs;
|
|
use Cake\I18n\Time;
|
|
use Cake\Filesystem\File;
|
|
|
|
class CurlsController extends AppController
|
|
{
|
|
//public $uses = array('Monitoring');
|
|
|
|
public function monitmstr()
|
|
{
|
|
$this->loadModel('Monitorings');
|
|
$curl = new AsdMstr();
|
|
$ch = $curl->init_curl_params();
|
|
$curl->login_school($ch);
|
|
$curl->login_mstr($ch);
|
|
$data['data'] = '';
|
|
$result = '';
|
|
if(!($curl->status)) {
|
|
$curl->message .= 'Login failed! ' . $curl->error;
|
|
}
|
|
else {
|
|
$curl->monit_mstr($ch);
|
|
if(!($curl->status)) {
|
|
$curl->message .= 'Report failed: ' . $curl->error;
|
|
}
|
|
else {
|
|
$data['data'] = json_encode($result);
|
|
$result = iconv($in_charset = 'UTF-16LE', $out_charset = 'UTF-8', $curl->html);
|
|
}
|
|
}
|
|
$curl->logout_mstr($ch);
|
|
|
|
//Ergebnis in Datenbank speichern
|
|
$data['action'] = 'mstr';
|
|
$data['school'] = '';
|
|
$data['data'] = json_encode($result);
|
|
$now = Time::parse();
|
|
$now->timezone = "Europe/Berlin";
|
|
$data['date'] = $now;
|
|
if (strpos($result, 'MMIHG') !== false) {
|
|
$data['comment'] = 'Success';
|
|
} else {
|
|
$data['comment'] = 'Fail';
|
|
}
|
|
$data['message'] = $curl->message;
|
|
|
|
$all = $this->Monitorings->find('all', array('conditions' => array('action' => 'mstr'), 'order' => array('id' => 'DESC')));
|
|
$last = $all->first();
|
|
|
|
$monitoring = $this->Monitorings->newEntity();
|
|
$monitoring = $this->Monitorings->patchEntity($monitoring, $data);
|
|
|
|
if($last['comment'] != $monitoring['comment']) {
|
|
if($last['comment'] == 'Success') {
|
|
|
|
$curl->send_mail($ch,'Fail',$curl->message, '');
|
|
}
|
|
else {
|
|
$allsuccess = $this->Monitorings->find('all', array('conditions' => array('action' => 'mstr','comment' => 'Success'), 'order' => array('id' => 'DESC')));
|
|
$lastsuccess = $allsuccess->first();
|
|
$datestring = $lastsuccess['date']->i18nFormat('dd.MM.yyyy HH:mm');
|
|
$curl->send_mail($ch,'Success',$curl->message, $datestring);
|
|
}
|
|
}
|
|
|
|
$result_save = $this->Monitorings->save($monitoring);
|
|
|
|
//$curl->send_mail($ch);
|
|
|
|
$this->set('html', $result);
|
|
$this->viewBuilder()->layout('ajax');
|
|
}
|
|
|
|
public function saveus() {
|
|
if(isset($this->request->params['pass'][0])) {
|
|
$env = $this->request->params['pass'][0];
|
|
}
|
|
else {
|
|
$env = 'prod';
|
|
}
|
|
//debug($env);die;
|
|
$curl = new AsdUs();
|
|
//debug($curl->status);
|
|
$ch = $curl->init_curl_params();
|
|
$curl->login_school($ch);
|
|
|
|
$curl->login_asd($ch,$env);
|
|
//echo $curl->html;die;
|
|
$curl->save_us_data($ch,$env);
|
|
//echo $curl->html;die;
|
|
$this->set('html',$curl->html);
|
|
$this->redirect(['action' => 'getjsonus/'.$env]);
|
|
}
|
|
|
|
public function saveup() {
|
|
if(isset($this->request->params['pass'][0])) {
|
|
$env = $this->request->params['pass'][0];
|
|
}
|
|
else {
|
|
$env = 'prod';
|
|
}
|
|
$curl = new AsdUs();
|
|
//debug($curl->status);
|
|
$ch = $curl->init_curl_params();
|
|
$curl->login_school($ch);
|
|
$curl->login_asd($ch,$env);
|
|
$curl->save_up_data($ch,$env);
|
|
$this->set('html',$curl->html);
|
|
$this->redirect(['action' => 'getjsonup/'.$env]);
|
|
}
|
|
|
|
|
|
public function showus() {
|
|
$this->loadModel('Results');
|
|
$results = $this->Results->find('all');
|
|
$this->set('results',$results);
|
|
}
|
|
|
|
public function getjsonus() {
|
|
$env = $this->request->params['pass'][0];
|
|
echo 'Write Json data to file';
|
|
$this->loadModel('Results');
|
|
$results = $this->Results->find('all');
|
|
$this->set('results',$results);
|
|
$file = new File('/var/www/html/asd-control/webroot/files/' . $env .'-data-us.json', true, 0644);
|
|
$file->create();
|
|
debug(json_encode($results));
|
|
$status = $file->write(json_encode($results), 'w', true);
|
|
echo $status;
|
|
$file->close();
|
|
$this->viewBuilder()->setLayout('getjson');
|
|
}
|
|
|
|
public function getjsonup() {
|
|
echo 'Write Json data to file';
|
|
$this->loadModel('Results');
|
|
$results = $this->Results->find('all');
|
|
$this->set('results',$results);
|
|
$file = new File('/var/www/html/asd-control/webroot/files/data-up.json', true, 0644);
|
|
$file->create();
|
|
$status = $file->write(json_encode($results), 'w', true);
|
|
echo $status;
|
|
$file->close();
|
|
$this->viewBuilder()->layout('getjson');
|
|
}
|
|
|
|
public function usStatistik() {
|
|
$file = new File('/var/www/html/asd-control/webroot/files/prod-data-us.json', true, 0644);
|
|
$ts = $file->lastChange();
|
|
$time = Time::createFromTimestamp($ts);
|
|
$time->timezone = 'Europe/Paris';
|
|
$this->set('time', $time);
|
|
$this->viewBuilder()->setLayout('pivot');
|
|
}
|
|
|
|
public function usStatistikPara() {
|
|
$file = new File('/var/www/html/asd-control/webroot/files/para-data-us.json', true, 0644);
|
|
$ts = $file->lastChange();
|
|
$time = Time::createFromTimestamp($ts);
|
|
$time->timezone = 'Europe/Paris';
|
|
$this->set('time', $time);
|
|
$this->viewBuilder()->setLayout('pivot');
|
|
}
|
|
|
|
public function upStatistik() {
|
|
$file = new File('/var/www/html/asd-control/webroot/files/data-up.json', true, 0644);
|
|
$ts = $file->lastChange();
|
|
$time = Time::createFromTimestamp($ts);
|
|
$time->timezone = 'Europe/Paris';
|
|
$this->set('time', $time);
|
|
$this->viewBuilder()->layout('pivot');
|
|
}
|
|
|
|
public function asdus()
|
|
{
|
|
$curl = new AsdUs();
|
|
//debug($curl->status);
|
|
$ch = $curl->init_curl_params();
|
|
$curl->login_school($ch);
|
|
$curl->login_asd($ch);
|
|
|
|
$output = $curl->get_us_statistic($ch);
|
|
|
|
$this->loadModel('Monitorings');
|
|
if (!empty($this->request['pass'])) {
|
|
$command = $this->request['pass']['0'];
|
|
if ($command == 'save') {
|
|
$data['action'] = 'asdus';
|
|
$data['school'] = '';
|
|
$data['data'] = json_encode($output);
|
|
$now = Time::parse();
|
|
$now->timezone = "Europe/Berlin";
|
|
$data['date'] = $now;
|
|
$data['comment'] = '';
|
|
$monitoring = $this->Monitorings->newEntity();
|
|
$monitoring = $this->Monitorings->patchEntity($monitoring, $data);
|
|
$result = $this->Monitorings->save($monitoring);
|
|
}
|
|
}
|
|
|
|
$all = $this->Monitorings->find('all', array('conditions' => array('action' => 'asdus'), 'order' => array('id' => 'DESC')));
|
|
$old = $all->first();
|
|
$now = Time::parse();
|
|
$now->timezone = "Europe/Berlin";
|
|
$this->set('now', $now);
|
|
$this->set('old', $old);
|
|
$this->set('output', $output);
|
|
$this->set('html', $this->html);
|
|
}
|
|
}
|