You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
3.3 KiB
148 lines
3.3 KiB
<?php |
|
|
|
class Servers_model extends CI_Model{ |
|
|
|
function __construct(){ |
|
parent::__construct(); |
|
} |
|
|
|
public function get_groups() |
|
{ |
|
$this->db->select('groups AS name'); |
|
$this->db->from('servers'); |
|
$this->db->where('active', '1'); |
|
$this->db->group_by('groups'); |
|
|
|
$query = $this->db->get(); |
|
|
|
return $query->result_array(); |
|
} |
|
|
|
public function get_total_servers() |
|
{ |
|
$count = $this->db->count_all('servers'); |
|
return $count; |
|
} |
|
|
|
public function get_servers($group, $status) |
|
{ |
|
$this->db->select('name, status, timestamp, hostname'); |
|
$this->db->from('servers'); |
|
$this->db->where('active', '1'); |
|
$this->db->where('groups', $group); |
|
|
|
if ($status != 'all' && $status != 'problem') { |
|
$this->db->where('status', $status); |
|
} elseif ($status == 'problem') { |
|
$this->db->where('status !=', 'ok'); |
|
} |
|
|
|
$this->db->join('status', 'servers.id = status.id', 'left'); |
|
$this->db->order_by('name'); |
|
|
|
$query = $this->db->get(); |
|
|
|
return $query->result_array(); |
|
} |
|
|
|
/* |
|
Historische info: |
|
select name, status, timestamp, hostname |
|
from servers |
|
left join (select MAX(timestamp) AS timestamp, serverid, serviceid, status from logbook where serviceid = '0' and timestamp < '2013-01-21 13:55:00' group by serverid) logbook |
|
on servers.id = logbook.serverid |
|
where active = '1' |
|
and groups = 'Blueview' |
|
order by timestamp desc |
|
*/ |
|
|
|
public function get_servers_list($count, $offset) |
|
{ |
|
$this->db->select('id, name, hostname, groups, active'); |
|
$this->db->from('servers'); |
|
$this->db->limit($count, $offset); |
|
$this->db->order_by('groups, name'); |
|
|
|
$query = $this->db->get(); |
|
|
|
return $query->result_array(); |
|
} |
|
|
|
public function get_servers_cron() |
|
{ |
|
$this->db->select('id, hostname, port, username, password, type, defaultproxy, proxyhost, proxyport, proxytype, proxyuser, proxypassword'); |
|
$this->db->from('servers'); |
|
$this->db->where('active', '1'); |
|
$this->db->order_by('id'); |
|
|
|
$query = $this->db->get(); |
|
|
|
return $query->result_array(); |
|
} |
|
|
|
public function check_serverid($id) |
|
{ |
|
$this->db->from('servers'); |
|
$this->db->where('id', $id); |
|
|
|
$query = $this->db->get(); |
|
|
|
if ($query->num_rows() == 1) |
|
{ |
|
return true; |
|
} else { |
|
return false; |
|
} |
|
} |
|
|
|
public function get_serverstatus($id) |
|
{ |
|
$this->db->select('status'); |
|
$this->db->from('status'); |
|
$this->db->where('id', $id); |
|
|
|
$query = $this->db->get(); |
|
return $query->row_array(); |
|
} |
|
|
|
public function enable_server($id) |
|
{ |
|
// Change to active |
|
$data = array('active' => '1'); |
|
$this->db->where('id', $id); |
|
$this->db->update('servers', $data); |
|
|
|
return; |
|
} |
|
|
|
public function disable_server($id) |
|
{ |
|
// Change to disable. |
|
$data = array('active' => '0'); |
|
$this->db->where('id', $id); |
|
$this->db->update('servers', $data); |
|
|
|
return; |
|
} |
|
|
|
public function update_server_status($id, $status) |
|
{ |
|
// Check if service exists in status table |
|
$this->db->from('status'); |
|
$this->db->where('id', $id); |
|
$query = $this->db->get(); |
|
|
|
$data = array('id' => $id, 'status' => $status, 'timestamp' => NULL); |
|
|
|
if ($query->num_rows() == 1) |
|
{ |
|
$this->db->where('id', $id); |
|
$this->db->update('status', $data); |
|
} else { |
|
$this->db->insert('status', $data); |
|
} |
|
|
|
return; |
|
} |
|
|
|
} |