From 160eee3df637216b011ee5e758c8e2bf0bbe1355 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Mon, 11 Jul 2016 13:56:09 +0200
Subject: [PATCH] =?UTF-8?q?Admin=20Interface=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Http/Controllers/AdminInterface.php |  31 ++++++++++++
 app/Http/routes.php                     |   2 +
 app/Providers/AppServiceProvider.php    |   8 ++--
 database/metager.sqlite                 | Bin 0 -> 13312 bytes
 resources/views/admin.blade.php         |  60 ++++++++++++++++++++++++
 5 files changed, 98 insertions(+), 3 deletions(-)
 create mode 100644 app/Http/Controllers/AdminInterface.php
 create mode 100644 resources/views/admin.blade.php

diff --git a/app/Http/Controllers/AdminInterface.php b/app/Http/Controllers/AdminInterface.php
new file mode 100644
index 000000000..b0d2117a6
--- /dev/null
+++ b/app/Http/Controllers/AdminInterface.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+
+use App\Http\Requests;
+use Redis;
+
+class AdminInterface extends Controller
+{
+    public function index ()
+    {
+    	# Zunächst einmal die Redis-Verbindung:
+    	$redis = Redis::connection('redisLogs');
+
+    	# Dann lesen wir alle Server aus:
+    	$member = $redis->smembers('logs.worker');
+
+    	# Jetzt besorgen wir uns die Daten für jeden Server:
+    	$data = [];
+    	foreach( $member as $mem )
+    	{
+    		$tmp = $redis->hgetall('logs.worker.' . $mem);
+    		$data[$mem] = $tmp;
+    	}
+    	return view('admin')
+    		->with('data', $data)
+    		->with('title', "Admin-Interface-MetaGer");
+    }
+}
diff --git a/app/Http/routes.php b/app/Http/routes.php
index 1d421d716..7440f70e5 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -112,6 +112,8 @@
                 ->with('navbarFocus', 'dienste');
 		});
 		
+        Route::get('admin', ['middleware' => 'auth.basic', 'uses' => 'AdminInterface@index']);
+
 		Route::get('settings', 'StartpageController@loadSettings');
 
 		
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index ca47ee395..775130e3a 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -25,14 +25,16 @@ class AppServiceProvider extends ServiceProvider
             $this->begin = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))));
         });
         Queue::after(function (JobProcessed $event) {
-            $this->end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))));
+            $today = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d"), date("Y"))));
+            $end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))) - $today;
             $expireAt = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d")+1, date("Y"))));
             $redis = Redis::connection('redisLogs');
             $p = getmypid();
             $host = gethostname();
-            $redis->pipeline(function($pipe) use ($p, $expireAt, $host)
+            $begin = $this->begin - $today;
+            $redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
             {
-                for( $i = $this->begin; $i <= $this->end; $i++)
+                for( $i = $begin; $i <= $end; $i++)
                 {
                     $pipe->sadd("logs.worker.$host.$i", strval($p));
                     $pipe->expire("logs.worker.$host.$i", 10);
diff --git a/database/metager.sqlite b/database/metager.sqlite
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c137bd09eb073efcb5f2b6db4f36729f0a8172f9 100644
GIT binary patch
literal 13312
zcmeI2PjA~c6u?E(j^eECEf9L?SS8pZr1m5`b-JFKralBqg8Xr|br*rL7)OmIITG#0
zz;;mE+rGwb`vUtGyA0TO*lm{{w#!J$e-$}c3Un9}3jRa!y+=L$Uc~nt@^F9Kr39S>
zp@%7|DtQF}<rzYXqTFNeyX-wYimZ_zp0IB)(Vo@3r<DHurNEWp-(2UD<ZG6??3V;2
zf&Y#`vA`ejJls*>@9-!1J!{BA5|9Kwj6f+5aj{}rHQTJ&)|zcqD>c)yn<2rJ*eBR+
z6UTlP97i_A$8GW%goi2h$Cb6A`dH7(L6_^X0ZrSguupyr^*T6;UI(FLha@6&F!bjD
z9!;7Ei;+n;BH=)hKmP!pE9@l?Nk9_#*aYG`ps1``aY3n8Uj&}(yJu+cg!sPOa+1?$
zQP;yI(knY;xzb;@%;kN**LFAS<@GAr`>t-Sx!&%RSKaOP(Cl2acKTl(gpYCMWy9%w
z`PwAsW%BiD?RlBcLnU*)WLe0nJhiN+W-X&DdH&xk@cqZWaXG#uAPM|G2+RYh6-5=W
zz#Ibb4~4ztAqhwVH<rL6w2GH244(g|{;PLm?_b`SBp?Z-3Gn<cpZ_!!c`gau4g&J|
zza4RwcPR;E5#aTI0hAT^WA0t90)A!9pOqB_W$DVk_(4I{R#!nBi3Ob0(o5=eZu6kN
z(Ws-w#`Enu(o<3$t?0yKOF}y8;jnp%L*xe(`Q3K=5z=XJM*K`kvY6!9nCi%3%SzPs
z$jH*bc~!GC5UZ~5kc(uUM_k43`tEs`h@Qg0v7_Cs{i8bC+I>;~7U`Fjbrkr6{;{{l
z9-QL{UJ3%yd7Et?u_MC9_M0Sinx7(&60Z2zBafJ+@g|>BHBAF=TVhP%i1>h0_KAnw
z6W7s^>r>JqV`!)ox*iVu=#2Cc?$W^Z87hzXl;Px;%A`3v0>f}+n(=|XV-niwI3>}`
zj!`1(c6ij%@nbS00;=}#A&4zO!E;+7rf%Rz<5q5($5_CjjLtGWKE||pdYPIbfB(x_
zO%k}h1VsK<HWc_n?l15gc*2_3J7T(^YD-Jt?H6L&n%Lwp(Y!l7aZN}*XgY5OzE7Hb
za?}we7c6UzGbc}SY_3mtcW}QQV3s%1f`Knn>C_=7xZ9>^^XTB9zT2=HTRZi`#>URx
z=t4$(zo=^8EQ0t@WLmLVLtI*H!w7q9hUfb+L<3WMq;zLMVvuzIm0gmDxhkiX+#pM8
z!}0ZrHZKc|H%s%Xwzvr186qUykiQqEgD@QL+R1c4IHPKr2^mvLybfjlr_=U??^g;%
zy)!aSQYr4S@`-PxnHG-!7AEuX$aWw$VntQ8O;*c&DuOf2_oHnzyaG$&mJ-cRhcG2g
zN`k~N30z8n$1o`ym<w}PxsViYS>CBvyD(um(}kq+G34+6>rHo3TN1cQ1Z4exlcFi_
KMH09kfqwv&O3A<g

literal 0
HcmV?d00001

diff --git a/resources/views/admin.blade.php b/resources/views/admin.blade.php
new file mode 100644
index 000000000..61cbcf091
--- /dev/null
+++ b/resources/views/admin.blade.php
@@ -0,0 +1,60 @@
+@extends('layouts.subPages')
+
+@section('title', $title )
+
+@section('content')
+
+@foreach( $data as $serverName => $dataPoints )
+<div>
+<h1>{{ $serverName }}</h1>
+<svg width="100%" height="500px">
+	<!-- Zunächst die Achsen: -->
+	<!-- Y-Achse -->
+	<line x1="1%" y1="0" x2="1%" y2="95%" style="stroke:rgb(0,0,0);stroke-width:3" />
+	<line x1="1%" y1="0" x2="0" y2="3%" style="stroke:rgb(0,0,0);stroke-width:3" />
+	<line x1="1%" y1="0" x2="2%" y2="3%" style="stroke:rgb(0,0,0);stroke-width:3" />
+
+	<!-- Beschriftungen der Y-Achse -->
+	@for( $y = ((95-0) / 10); $y < ((95-0) / 10) * 10; $y = $y + ((95-0) / 10) )
+	<line x1="0.5%" y1="{{ $y }}%" x2="1.5%" y2="{{ $y }}%" style="stroke:rgb(0,0,0);stroke-width:1" />
+	<text x="1.8%" y="{{ $y }}%" fill="black" style="font-size:10px;">{{ 100 - (($y / 95)*100) }}</text>
+	@endfor
+	<text x="3%" y="2%" fill="red">Anzahl Worker: x</text>
+
+	<!-- X-Achse -->
+	<line x1="1%" y1="95%" x2="99%" y2="95%" style="stroke:rgb(0,0,0);stroke-width:3" />
+	<line x1="99%" y1="95%" x2="98%" y2="92%" style="stroke:rgb(0,0,0);stroke-width:3" />
+	<line x1="99%" y1="95%" x2="98%" y2="98%" style="stroke:rgb(0,0,0);stroke-width:3" />
+
+	<!-- Beschriftungen der X-Achse -->
+	@for( $x = (((99-1) / 24) + 1); $x < 98.9; $x = ($x + ((99-1) / 24)) )
+	<line x1="{{ $x }}%" y1="93%" x2="{{ $x }}%" y2="97%" style="stroke:rgb(0,0,0);stroke-width:1" />
+	<text x="{{ $x }}%" y="99%" fill="black" style="font-size:10px;">{{ (($x-1) / 98)*24 }}</text>
+	@endfor
+	<text x="95%" y="90%" fill="red">Zeit (h): y</text>
+
+	<!-- Nun die Datenpunkte: -->
+	<?php
+		$count = 0;
+
+		foreach($dataPoints as $key => $value)
+		{
+			if($count > 0)
+			{
+				$x1 = ($oldKey / 86400) * 98;
+				$x2 = ($key / 86400) * 98;
+			
+				$y1 = 95 - (($oldVal / 100) * 95);
+				$y2 = 95 - (($value / 100) * 95);
+				echo '<line x1="'.$x1.'%" y1="'.$y1.'%" x2="'.$x2.'%" y2="'.$y2.'%" style="stroke:rgb(0,0,0);stroke-width:1" />';
+			}
+			$oldKey = $key;
+			$oldVal = $value;
+			$count++;
+		}
+	?>
+</svg>
+</div>
+@endforeach
+
+@endsection
\ No newline at end of file
-- 
GitLab