root / hci / trunk / eneraptor-web-app / grails-app / controllers / com / eneraptor / hci / SysLogController.groovy @ 11
History | View | Annotate | Download (2.83 KB)
1 | 3 | alexbesir | package com.eneraptor.hci
|
---|---|---|---|
2 | |||
3 | 11 | alexbesir | import groovy.sql.* |
4 | import java.sql.* |
||
5 | |||
6 | 3 | alexbesir | class SysLogController { |
7 | 11 | alexbesir | |
8 | def dataSource
|
||
9 | |||
10 | 3 | alexbesir | def index = { }
|
11 | |||
12 | def main = {
|
||
13 | |||
14 | 11 | alexbesir | def db_sql = new Sql(dataSource) |
15 | |||
16 | def single = db_sql.firstRow("show data_directory") |
||
17 | def loca = single.data_directory
|
||
18 | def partition = new File(loca) |
||
19 | def totalSpace = partition.getTotalSpace()
|
||
20 | def freeSpace = partition.getFreeSpace()
|
||
21 | |||
22 | totalSpace = (int)((totalSpace/1024)/1024) |
||
23 | freeSpace = (int)((freeSpace/1024)/1024) |
||
24 | |||
25 | def percent = 100 - ((int) ((freeSpace/totalSpace)*100)) |
||
26 | |||
27 | [totalSpace: totalSpace, freeSpace: freeSpace, percent: percent] |
||
28 | |||
29 | 3 | alexbesir | } |
30 | |||
31 | def browse = {
|
||
32 | |||
33 | 6 | alexbesir | flash['warnings'] = null |
34 | |||
35 | 3 | alexbesir | def entries = LoggedData.list()
|
36 | 6 | alexbesir | Map devices = new HashMap() |
37 | Map icons = new HashMap() |
||
38 | List unknownDevices = new ArrayList() |
||
39 | DeviceInfo.list().each { |
||
40 | devices[it.deviceId] = it.friendlyName |
||
41 | if(it.iconPath) { |
||
42 | icons[it.deviceId] = it.iconPath |
||
43 | } |
||
44 | } |
||
45 | entries.each { |
||
46 | if(!devices[it.deviceId]) { |
||
47 | if(!unknownDevices.contains(it.deviceId)) { |
||
48 | unknownDevices << it.deviceId
|
||
49 | } |
||
50 | } |
||
51 | } |
||
52 | unknownDevices.each { |
||
53 | if(!flash['warnings']) flash['warnings'] = "" |
||
54 | flash['warnings'] += "<p>There was found at least one log entry for a device with id <b>${it}</b>, which is <b>unknown</b> to HCI. You should <b>add this device</b> by <b>" + g.link(controller: 'config', action: 'addDevice', params: ['deviceId' : it], "clicking here") + "</b>.</p>" |
||
55 | } |
||
56 | 3 | alexbesir | |
57 | 6 | alexbesir | [data: entries, devices: devices, icons: icons] |
58 | 3 | alexbesir | |
59 | } |
||
60 | |||
61 | def detail = {
|
||
62 | |||
63 | 6 | alexbesir | def detailsOf = LoggedData.findById(params.id)
|
64 | if(!detailsOf) {
|
||
65 | flash['errors'] = "<p>There is no logged data with id ${params.id}</p>" |
||
66 | redirect(action: 'browse') |
||
67 | return false |
||
68 | } |
||
69 | return detailsOf.getProperties()
|
||
70 | 3 | alexbesir | } |
71 | |||
72 | def deleteEntry = {
|
||
73 | |||
74 | def entry = LoggedData.findById(params.id)
|
||
75 | if(entry) {
|
||
76 | entry.delete() |
||
77 | flash['confirms'] = "<p>Log entry with id " + params.id + " deleted successfully.</p>" |
||
78 | redirect(action: 'browse') |
||
79 | } else {
|
||
80 | flash['errors'] = "<p>Cannot find log entry with id " + params.id + "</p>" |
||
81 | redirect(action: 'browse') |
||
82 | } |
||
83 | |||
84 | } |
||
85 | 11 | alexbesir | |
86 | def graph = {
|
||
87 | |||
88 | List devices = new ArrayList() |
||
89 | List data = new ArrayList() |
||
90 | |||
91 | DeviceInfo.findAllByInputDevice(true).each {
|
||
92 | devices << it
|
||
93 | } |
||
94 | |||
95 | if(params['dataList']) |
||
96 | data = params['dataList']
|
||
97 | else if(params['deviceId'] && params['fromDate'] && params['tillDate']) { |
||
98 | |||
99 | def c = LoggedData.createCriteria()
|
||
100 | def results = c {
|
||
101 | and { |
||
102 | eq("deviceId",params['deviceId']) |
||
103 | between("dateRecieved",params['fromDate'],params['tillDate']) |
||
104 | } |
||
105 | order("dateRecieved","asc") |
||
106 | } |
||
107 | |||
108 | results.each { |
||
109 | data << [it.dateRecieved.getTime(),it.reportedData] |
||
110 | } |
||
111 | |||
112 | } |
||
113 | |||
114 | [data: data, devices: devices, params:params] |
||
115 | |||
116 | } |
||
117 | 3 | alexbesir | |
118 | } |