Statistics
| Revision:

root / hci / trunk / eneraptor-web-app / grails-app / controllers / com / eneraptor / hci / ConfigController.groovy @ 66

History | View | Annotate | Download (4.55 KB)

1
package com.eneraptor.hci
2

    
3
import groovy.sql.*
4
import java.sql.*
5

    
6
class ConfigController {
7
        
8
        def dataSource
9

    
10
    def main = { }
11
        
12
        def hci = {
13
                
14
                /*
15
                 * DISK USAGE - ONLY IF ENERAPTOR HCI IS SUPERUSER
16
                 */ 
17
                def totalSpace = 0
18
                def freeSpace = 0
19
                def percent = 0
20
                /*
21
                def db_sql = new Sql(dataSource)
22
                
23
                def single = db_sql.firstRow("show data_directory")
24
                def loca = single.data_directory
25
                def partition = new File(loca)
26
                totalSpace = partition.getTotalSpace()
27
                freeSpace  = partition.getFreeSpace()
28
                
29
                totalSpace = (int)((totalSpace/1024)/1024)
30
                freeSpace = (int)((freeSpace/1024)/1024)
31
                
32
                percent = 100 - ((int) ((freeSpace/totalSpace)*100))
33
                
34
                */
35
                
36
                def allDevices = HardwareSet.get(session.hwSet.id).devices
37
                
38
                [conf: InternalConfig, devices: allDevices, totalSpace: totalSpace, freeSpace: freeSpace, percent: percent]                
39
        }
40
        
41
        def addDevice = {
42
        }
43
        
44
        def addDeviceSave = {
45
                def newDevice = new DeviceInfo(params)
46
                HardwareSet.get(session.hwSet.id).addToDevices(newDevice)
47
                if(newDevice.validate() && (params.inputDevice || params.outputDevice)) {
48
                        newDevice.save()
49
                        flash['confirms'] = "<p>New device added successfully.</p>"
50
                        redirect(action:'hci')
51
                } else {
52
                        flash['errors'] = "<p>New device was not saved. Check input data.</p>"
53
                        if(!params.inputDevice && !params.outputDevice)
54
                                flash['errors'] += "<p>Device must be capable of making masurements, actions or both. You have selected none.</p>"
55
                        redirect(action:'addDevice', params: params)
56
                }
57
        }
58
        
59
        def deleteHciEntry = {
60
                
61
                def deviceToBeDeleted = DeviceInfo.findById(params.id)
62
                
63
                if(deviceToBeDeleted) {
64
                        deviceToBeDeleted.delete()
65
                        flash['confirms'] = "<p>Device deleted succesfully.</p>"
66
                } else {
67
                        flash['errors'] = "<p>There was no device deleted.</p><p>There was no device with id ${params.id}.</p>"
68
                }
69
                redirect(action: 'hci')
70
                
71
        }
72
        
73
        def changeHciEntry = {
74
                
75
                def deviceToBeChanged = DeviceInfo.findById(params.id)
76
                if(!deviceToBeChanged) {
77
                        flash['errors'] = "<p>There is no device with id ${params.id}.</p>"
78
                        redirect(action: 'hci')
79
                        return false
80
                }
81
                deviceToBeChanged.getProperties()
82
    }
83
        
84
        def changeHciEntrySave = {
85
                
86
                def deviceToBeUpdated = DeviceInfo.findById(params.id)
87
                deviceToBeUpdated.properties = params
88
                if(deviceToBeUpdated.save()) {
89
                        flash['confirms'] = "<p>Device updated succesfully.</p>"
90
                        redirect(action: 'hci')
91
                } else {
92
                        flash['errors'] = "<p>Device was not changed.</p>"
93
                        redirect(action:'changeHciEntry', params: params)
94
                }
95
                
96
        }
97
        
98
        def dbInfo = {
99
                
100
                List databaseInfo = new ArrayList()
101
                def db_sql = new Sql(dataSource)
102
                db_sql.eachRow "SHOW ALL", {
103
                        databaseInfo << it.toRowResult()
104
                }
105
                
106
                [databaseInfo: databaseInfo]
107
                
108
        }
109
        
110
        def logic = {
111
                
112
                def hwSet = session.hwSet
113
                
114
                [hwSet:hwSet]
115
                
116
        }
117
        
118
        def connection = {
119
                
120
                def hwSet = session.hwSet
121
                
122
                [hwSet: hwSet]
123
                
124
        }
125
        
126
        def saveConnection = {
127
                
128
                if(params['logic-ip'] == 'localhost') params['logic-ip'] = '127.0.0.1'
129
                
130
                if(params['logic-ip'] && params['logic-port'] && params['logic-port'].isInteger()) {
131
                        
132
                        session.hwSet.IPaddress = params['logic-ip']
133
                        session.hwSet.portNumber = (params['logic-port'] as int)
134
                        flash['confirms'] = "<p>Changes saved.</p>"
135
                        redirect(action: 'connection')
136
                } else {
137
                        flash['errors'] = "<p>Could not save changes.</p><p>Logic IP address and port fields cannot be blank. Port number must be an integer.</p>"
138
                        redirect(action: 'connection')
139
                }
140
                
141
        }
142
        
143
        def dbExec = {
144
                
145
                if(params['sqlQuery']) {
146
                        
147
                        flash['confirms'] = null
148
                        flash['errors'] = null
149
                        
150
                        def db_sql = new Sql(dataSource)
151
                        List rows
152
                        List keys = new ArrayList()
153
                        boolean wasError = false
154
                        try {
155
                                rows = db_sql.rows(params['sqlQuery'])
156
                                rows[0].each {
157
                                        keys << it.key
158
                                }
159
                                flash['confirms'] = "<p>SQL query executed succesfully. Chrck returned rows below.</p>"
160
                        } catch (SQLException e) {
161
                                rows = new ArrayList()
162
                                if(e.getSQLState().equals("02000")) {
163
                                        keys << 'SQL query result'
164
                                        rows << ['SQL query result' : 'No rows were returned.']
165
                                        flash['confirms'] = "<p>SQL query executed succesfully.</p>"
166
                                } else {
167
                                        rows << e
168
                                        rows << e.getSQLState()
169
                                        wasError = true
170
                                        flash['errors'] = "<p>There was an error while executing the SQL query. Check the report below.</p><p>The query was not executed</p>"
171
                                }
172
                        }
173
                        return [sqlResult: rows, keys: keys, wasError: wasError]
174
                }
175
                
176
        }
177
        
178
        def getHelp = {
179
                [what : params.what]
180
        }
181
        
182
        def database = { }
183
        
184
}