Newer
Older
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Server extends Model
{
protected $fillable = ["token"];
static $sensors = [
\App\Sensor\LoadAvg::class,
\App\Sensor\Reboot::class,
public function __construct(array $attributes = array()) {
$attributes["token"] = str_random(32);
parent::__construct($attributes);
}
public function organization() {
return $this->belongsTo("App\Organization");
}
$collection = \Mongo::get()->monitoring->records;
return $collection->findOne(
["server_id" => $this->id],
["sort" => ["_id" => -1]]);
}
$last_record = $this->lastRecord();
if ($last_record === null) {
return \Carbon\Carbon::createFromTimestamp(0);
}
return \Carbon\Carbon::createFromTimestamp($last_record->time);
$last_record = $this->lastRecord();
if ($last_record == null) {
return "none";
}
return $last_record->version;
public function getSensors() {
$sensors = [];
foreach (self::$sensors as $sensor) {
$sensors[] = new $sensor($this);
}
return $sensors;
}