Add server status
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import Vapor
|
||||
import Clairvoyant
|
||||
|
||||
var deviceManager: DeviceManager!
|
||||
|
||||
@ -12,10 +13,23 @@ public func configure(_ app: Application) throws {
|
||||
let storageFolder = URL(fileURLWithPath: app.directory.resourcesDirectory)
|
||||
let logFolder = storageFolder.appendingPathComponent("logs")
|
||||
|
||||
let accessManager = AccessTokenManager([])
|
||||
let monitor = MetricObserver(
|
||||
logFolder: logFolder,
|
||||
accessManager: accessManager,
|
||||
logMetricId: "sesame.log")
|
||||
MetricObserver.standard = monitor
|
||||
|
||||
let status = Metric<ServerStatus>("sesame.status")
|
||||
status.update(.initializing)
|
||||
|
||||
monitor.registerRoutes(app)
|
||||
|
||||
let configUrl = storageFolder.appendingPathComponent("config.json")
|
||||
let config = try Config(loadFrom: configUrl)
|
||||
|
||||
config.authenticationTokens.map { $0.data(using: .utf8)! }.forEach(accessManager.add)
|
||||
|
||||
app.http.server.configuration.port = config.port
|
||||
|
||||
let keyFile = storageFolder.appendingPathComponent(config.keyFileName)
|
||||
@ -30,6 +44,8 @@ public func configure(_ app: Application) throws {
|
||||
deviceManager.removeDeviceConnection()
|
||||
}
|
||||
}
|
||||
|
||||
status.update(.nominal)
|
||||
}
|
||||
|
||||
private func loadKeys(at url: URL) throws -> (deviceKey: Data, remoteKey: Data) {
|
||||
|
Reference in New Issue
Block a user