mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-07-31 22:13:16 +00:00
101 lines
2.9 KiB
Nim
101 lines
2.9 KiB
Nim
import std/json
|
|
import std/monotimes
|
|
import std/os
|
|
import std/strutils
|
|
|
|
import pkg/chronos
|
|
import pkg/results
|
|
|
|
import ../asynctest
|
|
import ../checktest
|
|
import ../../library/storage_thread_requests/requests/node_lifecycle_request
|
|
import ../../library/storage_thread_requests/requests/node_info_request
|
|
import ../../library/storage_thread_requests/requests/node_storage_request
|
|
import ../../library/storage_thread_requests/requests/node_debug_request
|
|
|
|
from ../../storage/storage import StorageServer
|
|
|
|
asyncchecksuite "Libstorage - request on a node that is not created":
|
|
var uncreated: StorageServer
|
|
|
|
test "rejects a start":
|
|
let res =
|
|
await NodeLifecycleRequest.createShared(START_NODE).process(addr uncreated)
|
|
|
|
check res.isErr and "not created" in res.error
|
|
|
|
test "rejects a stop":
|
|
let res = await NodeLifecycleRequest.createShared(STOP_NODE).process(addr uncreated)
|
|
|
|
check res.isErr and "not created" in res.error
|
|
|
|
test "rejects a close":
|
|
let res =
|
|
await NodeLifecycleRequest.createShared(CLOSE_NODE).process(addr uncreated)
|
|
|
|
check res.isErr and "not created" in res.error
|
|
|
|
test "rejects an info request":
|
|
let res =
|
|
await NodeInfoRequest.createShared(NodeInfoMsgType.SPR).process(addr uncreated)
|
|
|
|
check res.isErr and "not created" in res.error
|
|
|
|
test "rejects a storage list request":
|
|
let res = await NodeStorageRequest.createShared(NodeStorageMsgType.LIST).process(
|
|
addr uncreated
|
|
)
|
|
|
|
check res.isErr and "not created" in res.error
|
|
|
|
test "accepts a metrics request, it reads the process registry":
|
|
let res = await NodeInfoRequest.createShared(NodeInfoMsgType.METRICS).process(
|
|
addr uncreated
|
|
)
|
|
|
|
check res.isOk
|
|
|
|
test "accepts a node creation":
|
|
let dataDir = getTempDir() / "libstorage-requests" / $getMonoTime()
|
|
|
|
defer:
|
|
removeDir(dataDir)
|
|
|
|
var created: StorageServer
|
|
let config = $ %*{"data-dir": dataDir}
|
|
let res = await NodeLifecycleRequest
|
|
.createShared(CREATE_NODE, config.cstring)
|
|
.process(addr created)
|
|
|
|
check res.isOk
|
|
|
|
let closed =
|
|
await NodeLifecycleRequest.createShared(CLOSE_NODE).process(addr created)
|
|
check closed.isOk
|
|
|
|
test "rejects a second close, the node is dropped by the first one":
|
|
let dataDir = getTempDir() / "libstorage-requests" / $getMonoTime()
|
|
|
|
defer:
|
|
removeDir(dataDir)
|
|
|
|
var created: StorageServer
|
|
let config = $ %*{"data-dir": dataDir}
|
|
check (
|
|
await NodeLifecycleRequest.createShared(CREATE_NODE, config.cstring).process(
|
|
addr created
|
|
)
|
|
).isOk
|
|
check (await NodeLifecycleRequest.createShared(CLOSE_NODE).process(addr created)).isOk
|
|
|
|
let res = await NodeLifecycleRequest.createShared(CLOSE_NODE).process(addr created)
|
|
|
|
check res.isErr and "not created" in res.error
|
|
|
|
test "accepts a log level change":
|
|
let res = await NodeDebugRequest
|
|
.createShared(NodeDebugMsgType.LOG_LEVEL, logLevel = "WARN")
|
|
.process(addr uncreated)
|
|
|
|
check res.isOk
|