Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

Commit de69b36

Browse files
committed
api, common, live, webui: Use the node name in the Conf structure
1 parent 4b292c9 commit de69b36

File tree

6 files changed

+52
-50
lines changed

6 files changed

+52
-50
lines changed

api/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func main() {
8181
}
8282

8383
// Connect to MQ server
84-
com.NodeName = "API server"
84+
com.Conf.Live.Nodename = "API server"
8585
com.AmqpChan, err = com.ConnectMQ()
8686
if err != nil {
8787
log.Fatal(err)

build_dbhub.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ if [ -d "${GOBIN}" ]; then
6161
cd live
6262
go install .
6363
cd ..
64-
echo "Compiling DBHub.io web User Interface executable"
64+
echo "Compiling DBHub.io Web User Interface executable"
6565
cd webui
6666
go install .
6767
cd ..

common/live.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@ var (
2424
// AmqpDebug controls whether to output - via Log.Print*() functions - useful messages during processing. Mostly
2525
// useful for development / debugging purposes
2626
AmqpDebug = true
27-
28-
// NodeName holds the name of the current Live node
29-
NodeName string
3027
)
3128

3229
// LiveDBColumnsResponse holds the fields used for receiving column list responses from our AMQP backend
@@ -124,22 +121,22 @@ func ConnectMQ() (channel *amqp.Channel, err error) {
124121
if err != nil {
125122
return
126123
}
127-
log.Printf("%s connected to AMQP server using mutual TLS (mTLS): %v:%d\n", NodeName, Conf.MQ.Server, Conf.MQ.Port)
124+
log.Printf("%s connected to AMQP server using mutual TLS (mTLS): %v:%d\n", Conf.Live.Nodename, Conf.MQ.Server, Conf.MQ.Port)
128125
} else {
129126
// Fallback to just verifying the server certs for TLS
130127
conn, err = amqp.Dial(fmt.Sprintf("amqps://%s:%s@%s:%d/", Conf.MQ.Username, Conf.MQ.Password, Conf.MQ.Server, Conf.MQ.Port))
131128
if err != nil {
132129
return
133130
}
134-
log.Printf("%s connected to AMQP server with server-only TLS: %v:%d\n", NodeName, Conf.MQ.Server, Conf.MQ.Port)
131+
log.Printf("%s connected to AMQP server with server-only TLS: %v:%d\n", Conf.Live.Nodename, Conf.MQ.Server, Conf.MQ.Port)
135132
}
136133
} else {
137134
// Everywhere else (eg docker container) doesn't *have* to use TLS
138135
conn, err = amqp.Dial(fmt.Sprintf("amqp://%s:%s@%s:%d/", Conf.MQ.Username, Conf.MQ.Password, Conf.MQ.Server, Conf.MQ.Port))
139136
if err != nil {
140137
return
141138
}
142-
log.Printf("%s connected to AMQP server without encryption: %v:%d\n", NodeName, Conf.MQ.Server, Conf.MQ.Port)
139+
log.Printf("%s connected to AMQP server without encryption: %v:%d\n", Conf.Live.Nodename, Conf.MQ.Server, Conf.MQ.Port)
143140
}
144141

145142
channel, err = conn.Channel()

common/minio.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func LiveRetrieveDatabaseMinio(baseDir, dbOwner, dbName string) (dbPath string,
7474

7575
if AmqpDebug {
7676
log.Printf("Live node '%s': Database file '%s/%s' written to filesystem at: '%s'",
77-
NodeName, dbOwner, dbName, dbPath)
77+
Conf.Live.Nodename, dbOwner, dbName, dbPath)
7878
}
7979
return
8080
}

live/main.go

Lines changed: 45 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ func main() {
2727

2828
// If node name and base directory were provided on the command line, then override the config file values
2929
if len(os.Args) == 3 {
30-
com.NodeName = os.Args[1]
30+
com.Conf.Live.Nodename = os.Args[1]
3131
com.Conf.Live.StorageDir = os.Args[2]
3232
}
3333

34+
// If we don't have the node name or storage dir after reading both the config and command line, then abort
35+
if com.Conf.Live.Nodename == "" || com.Conf.Live.StorageDir == "" {
36+
log.Fatal("Node name or Storage directory missing. Aborting")
37+
}
38+
3439
// If it doesn't exist, create the base directory for storing SQLite files
3540
_, err = os.Stat(com.Conf.Live.StorageDir)
3641
if err != nil {
@@ -81,9 +86,9 @@ func main() {
8186
err = json.Unmarshal(d.Body, &req)
8287
if err != nil {
8388
log.Println(err)
84-
err = com.MQCreateResponse(d, ch, com.NodeName, "failure")
89+
err = com.MQCreateResponse(d, ch, com.Conf.Live.Nodename, "failure")
8590
if err != nil {
86-
log.Printf("Error: occurred on live node '%s' in the create db code, while constructing an AMQP error message response: '%s'", com.NodeName, err)
91+
log.Printf("Error: occurred on live node '%s' in the create db code, while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
8792
}
8893
continue
8994
}
@@ -92,23 +97,23 @@ func main() {
9297
err = setupLiveDB(req.DBOwner, req.DBName)
9398
if err != nil {
9499
log.Println(err)
95-
err = com.MQCreateResponse(d, ch, com.NodeName, "failure")
100+
err = com.MQCreateResponse(d, ch, com.Conf.Live.Nodename, "failure")
96101
if err != nil {
97-
log.Printf("Error: occurred on live node '%s' in the create db code, while constructing an AMQP error message response (location 2): '%s'", com.NodeName, err)
102+
log.Printf("Error: occurred on live node '%s' in the create db code, while constructing an AMQP error message response (location 2): '%s'", com.Conf.Live.Nodename, err)
98103
}
99104
continue
100105
}
101106

102107
// Respond to the creation request with a success message
103-
err = com.MQCreateResponse(d, ch, com.NodeName, "success")
108+
err = com.MQCreateResponse(d, ch, com.Conf.Live.Nodename, "success")
104109
if err != nil {
105110
continue
106111
}
107112
}
108113
}()
109114

110115
// Create the queue for receiving database queries
111-
queryQueue, err := com.MQCreateQueryQueue(ch, com.NodeName)
116+
queryQueue, err := com.MQCreateQueryQueue(ch, com.Conf.Live.Nodename)
112117
if err != nil {
113118
log.Fatal(err)
114119
}
@@ -121,23 +126,23 @@ func main() {
121126
go func() {
122127
for msg := range requests {
123128
if com.AmqpDebug {
124-
log.Printf("'%s' received AMQP REQUEST (of not-yet-determined type)", com.NodeName)
129+
log.Printf("'%s' received AMQP REQUEST (of not-yet-determined type)", com.Conf.Live.Nodename)
125130
}
126131

127132
// Decode JSON request
128133
var req com.LiveDBRequest
129134
err = json.Unmarshal(msg.Body, &req)
130135
if err != nil {
131136
log.Println(err)
132-
err = com.MQErrorResponse(msg, ch, com.NodeName, err.Error())
137+
err = com.MQErrorResponse(msg, ch, com.Conf.Live.Nodename, err.Error())
133138
if err != nil {
134-
log.Printf("Error: occurred on '%s' the main live node switch{} while constructing an AMQP error message response: '%s'", com.NodeName, err)
139+
log.Printf("Error: occurred on '%s' the main live node switch{} while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
135140
}
136141
continue
137142
}
138143

139144
if com.AmqpDebug {
140-
log.Printf("Decoded request on '%s'. Correlation ID: '%s', request operation: '%s', request query: '%s'", com.NodeName, msg.CorrelationId, req.Operation, req.Query)
145+
log.Printf("Decoded request on '%s'. Correlation ID: '%s', request operation: '%s', request query: '%s'", com.Conf.Live.Nodename, msg.CorrelationId, req.Operation, req.Query)
141146
}
142147

143148
// Handle each operation
@@ -146,129 +151,129 @@ func main() {
146151
var columns []sqlite.Column
147152
columns, err = com.SQLiteGetColumnsLive(com.Conf.Live.StorageDir, req.DBOwner, req.DBName, req.Query) // We use the req.Query field to pass the table name
148153
if err != nil {
149-
err = com.MQColumnsResponse(msg, ch, com.NodeName, nil, err.Error())
154+
err = com.MQColumnsResponse(msg, ch, com.Conf.Live.Nodename, nil, err.Error())
150155
if err != nil {
151-
log.Printf("Error: occurred on '%s' in MQColumnsResponse() while constructing an AMQP error message response: '%s'", com.NodeName, err)
156+
log.Printf("Error: occurred on '%s' in MQColumnsResponse() while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
152157
}
153158
continue
154159
}
155160

156161
// Return the columns list to the caller
157-
err = com.MQColumnsResponse(msg, ch, com.NodeName, columns, "")
162+
err = com.MQColumnsResponse(msg, ch, com.Conf.Live.Nodename, columns, "")
158163
if err != nil {
159-
log.Printf("Error: occurred on '%s' in MQColumnsResponse() while constructing the AMQP columns list response: '%s'", com.NodeName, err)
164+
log.Printf("Error: occurred on '%s' in MQColumnsResponse() while constructing the AMQP columns list response: '%s'", com.Conf.Live.Nodename, err)
160165
}
161166
continue
162167

163168
case "delete":
164169
// Delete the database file on the node
165170
err = removeLiveDB(req.DBOwner, req.DBName)
166171
if err != nil {
167-
err = com.MQDeleteResponse(msg, ch, com.NodeName, err.Error())
172+
err = com.MQDeleteResponse(msg, ch, com.Conf.Live.Nodename, err.Error())
168173
continue
169174
}
170175

171176
// Return a success message (empty string in this case) to the caller
172-
err = com.MQDeleteResponse(msg, ch, com.NodeName, "")
177+
err = com.MQDeleteResponse(msg, ch, com.Conf.Live.Nodename, "")
173178
if err != nil {
174-
log.Printf("Error: occurred on '%s' in MQDeleteResponse() while constructing the AMQP delete database response: '%s'", com.NodeName, err)
179+
log.Printf("Error: occurred on '%s' in MQDeleteResponse() while constructing the AMQP delete database response: '%s'", com.Conf.Live.Nodename, err)
175180
}
176181
continue
177182

178183
case "exec":
179184
// Execute a query on the database file
180185
err = com.SQLiteExecQueryLive(com.Conf.Live.StorageDir, req.DBOwner, req.DBName, req.RequestingUser, req.Query)
181186
if err != nil {
182-
err = com.MQExecResponse(msg, ch, com.NodeName, err.Error())
187+
err = com.MQExecResponse(msg, ch, com.Conf.Live.Nodename, err.Error())
183188
continue
184189
}
185190

186191
// Return a success message (empty string in this case) to the caller
187-
err = com.MQExecResponse(msg, ch, com.NodeName, "")
192+
err = com.MQExecResponse(msg, ch, com.Conf.Live.Nodename, "")
188193
if err != nil {
189-
log.Printf("Error: occurred on '%s' in MQExecResponse() while constructing the AMQP execute query response: '%s'", com.NodeName, err)
194+
log.Printf("Error: occurred on '%s' in MQExecResponse() while constructing the AMQP execute query response: '%s'", com.Conf.Live.Nodename, err)
190195
}
191196
continue
192197

193198
case "indexes":
194199
var indexes []com.APIJSONIndex
195200
indexes, err = com.SQLiteGetIndexesLive(com.Conf.Live.StorageDir, req.DBOwner, req.DBName)
196201
if err != nil {
197-
err = com.MQIndexesResponse(msg, ch, com.NodeName, nil, err.Error())
202+
err = com.MQIndexesResponse(msg, ch, com.Conf.Live.Nodename, nil, err.Error())
198203
if err != nil {
199-
log.Printf("Error: occurred on '%s' in MQIndexesResponse() while constructing an AMQP error message response: '%s'", com.NodeName, err)
204+
log.Printf("Error: occurred on '%s' in MQIndexesResponse() while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
200205
}
201206
continue
202207
}
203208

204209
// Return the indexes list to the caller
205-
err = com.MQIndexesResponse(msg, ch, com.NodeName, indexes, "")
210+
err = com.MQIndexesResponse(msg, ch, com.Conf.Live.Nodename, indexes, "")
206211
if err != nil {
207-
log.Printf("Error: occurred on '%s' in MQIndexesResponse() while constructing the AMQP indexes list response: '%s'", com.NodeName, err)
212+
log.Printf("Error: occurred on '%s' in MQIndexesResponse() while constructing the AMQP indexes list response: '%s'", com.Conf.Live.Nodename, err)
208213
}
209214
continue
210215

211216
case "query":
212217
var rows com.SQLiteRecordSet
213218
rows, err = com.SQLiteRunQueryLive(com.Conf.Live.StorageDir, req.DBOwner, req.DBName, req.RequestingUser, req.Query)
214219
if err != nil {
215-
err = com.MQQueryResponse(msg, ch, com.NodeName, com.SQLiteRecordSet{}, err.Error())
220+
err = com.MQQueryResponse(msg, ch, com.Conf.Live.Nodename, com.SQLiteRecordSet{}, err.Error())
216221
if err != nil {
217-
log.Printf("Error: occurred on '%s' in MQQueryResponse() while constructing an AMQP error message response: '%s'", com.NodeName, err)
222+
log.Printf("Error: occurred on '%s' in MQQueryResponse() while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
218223
}
219224
continue
220225
}
221226

222227
// Return the query response to the caller
223-
err = com.MQQueryResponse(msg, ch, com.NodeName, rows, "")
228+
err = com.MQQueryResponse(msg, ch, com.Conf.Live.Nodename, rows, "")
224229
if err != nil {
225-
log.Printf("Error: occurred on '%s' in MQQueryResponse() while constructing the AMQP query response: '%s'", com.NodeName, err)
230+
log.Printf("Error: occurred on '%s' in MQQueryResponse() while constructing the AMQP query response: '%s'", com.Conf.Live.Nodename, err)
226231
}
227232
continue
228233

229234
case "tables":
230235
var tables []string
231236
tables, err = com.SQLiteGetTablesLive(com.Conf.Live.StorageDir, req.DBOwner, req.DBName)
232237
if err != nil {
233-
err = com.MQTablesResponse(msg, ch, com.NodeName, nil, err.Error())
238+
err = com.MQTablesResponse(msg, ch, com.Conf.Live.Nodename, nil, err.Error())
234239
if err != nil {
235-
log.Printf("Error: occurred on '%s' in MQTablesResponse() while constructing an AMQP error message response: '%s'", com.NodeName, err)
240+
log.Printf("Error: occurred on '%s' in MQTablesResponse() while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
236241
}
237242
continue
238243
}
239244

240245
// Return the tables list to the caller
241-
err = com.MQTablesResponse(msg, ch, com.NodeName, tables, "")
246+
err = com.MQTablesResponse(msg, ch, com.Conf.Live.Nodename, tables, "")
242247
if err != nil {
243-
log.Printf("Error: occurred on '%s' in MQTablesResponse() while constructing the AMQP tables list response: '%s'", com.NodeName, err)
248+
log.Printf("Error: occurred on '%s' in MQTablesResponse() while constructing the AMQP tables list response: '%s'", com.Conf.Live.Nodename, err)
244249
}
245250
continue
246251

247252
case "views":
248253
var views []string
249254
views, err = com.SQLiteGetViewsLive(com.Conf.Live.StorageDir, req.DBOwner, req.DBName)
250255
if err != nil {
251-
err = com.MQViewsResponse(msg, ch, com.NodeName, nil, err.Error())
256+
err = com.MQViewsResponse(msg, ch, com.Conf.Live.Nodename, nil, err.Error())
252257
if err != nil {
253-
log.Printf("Error: occurred on '%s' in MQViewsResponse() while constructing an AMQP error message response: '%s'", com.NodeName, err)
258+
log.Printf("Error: occurred on '%s' in MQViewsResponse() while constructing an AMQP error message response: '%s'", com.Conf.Live.Nodename, err)
254259
}
255260
continue
256261
}
257262

258263
// Return the views list to the caller
259-
err = com.MQViewsResponse(msg, ch, com.NodeName, views, "")
264+
err = com.MQViewsResponse(msg, ch, com.Conf.Live.Nodename, views, "")
260265
if err != nil {
261-
log.Printf("Error: occurred on '%s' in MQViewsResponse() while constructing the AMQP views list response: '%s'", com.NodeName, err)
266+
log.Printf("Error: occurred on '%s' in MQViewsResponse() while constructing the AMQP views list response: '%s'", com.Conf.Live.Nodename, err)
262267
}
263268
continue
264269

265270
default:
266-
log.Printf("'%s' received unknown '%s' request on this queue for %s/%s", com.NodeName, req.Operation, req.DBOwner, req.DBName)
271+
log.Printf("'%s' received unknown '%s' request on this queue for %s/%s", com.Conf.Live.Nodename, req.Operation, req.DBOwner, req.DBName)
267272
}
268273
}
269274
}()
270275

271-
log.Printf("Live server '%s' listening for requests", com.NodeName)
276+
log.Printf("Live server '%s' listening for requests", com.Conf.Live.Nodename)
272277

273278
// Endless loop
274279
var forever chan struct{}
@@ -311,7 +316,7 @@ func removeLiveDB(dbOwner, dbName string) (err error) {
311316

312317
if com.AmqpDebug {
313318
log.Printf("Live node '%s': Database file '%s/%s' removed from filesystem path: '%s'",
314-
com.NodeName, dbOwner, dbName, dbPath)
319+
com.Conf.Live.Nodename, dbOwner, dbName, dbPath)
315320
}
316321
return
317322
}

webui/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3083,7 +3083,7 @@ func main() {
30833083
}
30843084

30853085
// Connect to MQ server
3086-
com.NodeName = "WebUI server"
3086+
com.Conf.Live.Nodename = "WebUI server"
30873087
com.AmqpChan, err = com.ConnectMQ()
30883088
if err != nil {
30893089
log.Fatal(err)

0 commit comments

Comments
 (0)