From a266755050f5b0c413c5b5e2d664b0c0c9c80ad3 Mon Sep 17 00:00:00 2001 From: Andrey Bocharnikov Date: Fri, 24 May 2024 18:11:31 +0400 Subject: [PATCH] fix(settings): fix saveNewWakuNode in the settings fixes #12918 (part 4/4) --- .../main/profile_section/waku/controller.nim | 4 +-- .../main/profile_section/waku/module.nim | 6 ++--- .../service/node_configuration/service.nim | 27 +++++++++---------- src/app_service/service/settings/service.nim | 6 ----- src/backend/node_config.nim | 23 ++++++++-------- vendor/status-go | 2 +- 6 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/app/modules/main/profile_section/waku/controller.nim b/src/app/modules/main/profile_section/waku/controller.nim index 5f002b7d8cf..99756754e3c 100644 --- a/src/app/modules/main/profile_section/waku/controller.nim +++ b/src/app/modules/main/profile_section/waku/controller.nim @@ -34,5 +34,5 @@ proc init*(self: Controller) = proc getAllWakuNodes*(self: Controller): seq[string] = return self.nodeConfigurationService.getAllWakuNodes() -proc saveNewWakuNode*(self: Controller, nodeAddress: string) = - self.nodeConfigurationService.saveNewWakuNode(nodeAddress) +proc saveNewWakuNode*(self: Controller, nodeAddress: string): bool = + return self.nodeConfigurationService.saveNewWakuNode(nodeAddress) diff --git a/src/app/modules/main/profile_section/waku/module.nim b/src/app/modules/main/profile_section/waku/module.nim index f4f3d13ddbf..ec61143a59c 100644 --- a/src/app/modules/main/profile_section/waku/module.nim +++ b/src/app/modules/main/profile_section/waku/module.nim @@ -61,6 +61,6 @@ method getModuleAsVariant*(self: Module): QVariant = return self.viewVariant method saveNewWakuNode*(self: Module, nodeAddress: string) = - self.controller.saveNewWakuNode(nodeAddress) - let item = initItem(nodeAddress) - self.view.model().addItem(item) + if self.controller.saveNewWakuNode(nodeAddress): + let item = initItem(nodeAddress) + self.view.model().addItem(item) diff --git a/src/app_service/service/node_configuration/service.nim b/src/app_service/service/node_configuration/service.nim index 277f6ca4e64..dad51eec72c 100644 --- a/src/app_service/service/node_configuration/service.nim +++ b/src/app_service/service/node_configuration/service.nim @@ -71,15 +71,6 @@ proc init*(self: Service) = error "error: ", errDesription return -proc saveConfiguration(self: Service, configuration: NodeConfigDto): bool = - # FIXME: this method should be removed and the configuration should be updated in the status-go - # (see SetLogLevel, #14643) - if(not self.settingsService.saveNodeConfiguration(configuration.toJsonNode())): - error "error saving node configuration " - return false - self.configuration = configuration - return true - proc getWakuVersion*(self: Service): int = if self.configuration.WakuConfig.Enabled: return WAKU_VERSION_1 @@ -143,11 +134,19 @@ proc getFleetAsString*(self: Service): string = proc getAllWakuNodes*(self: Service): seq[string] = return self.wakuNodes -proc saveNewWakuNode*(self: Service, nodeAddress: string) = - var newConfiguration = self.configuration - newConfiguration.ClusterConfig.WakuNodes.add(nodeAddress) - self.configuration = newConfiguration - discard self.saveConfiguration(newConfiguration) +proc saveNewWakuNode*(self: Service, nodeAddress: string): bool = + try: + let response = status_node_config.saveNewWakuNode(nodeAddress) + + if not response.error.isNil: + error "failed to add new waku node: ", errDescription = response.error.message + return false + + self.configuration.ClusterConfig.WakuNodes.add(nodeAddress) + except Exception as e: + error "error saving new waku node: ", errDescription = e.msg + return false + return true proc setFleet*(self: Service, fleet: string): bool = if (not self.settingsService.saveFleet(fleet)): diff --git a/src/app_service/service/settings/service.nim b/src/app_service/service/settings/service.nim index 02c6cb6f1da..3b70b697be0 100644 --- a/src/app_service/service/settings/service.nim +++ b/src/app_service/service/settings/service.nim @@ -421,12 +421,6 @@ QtObject: proc unpinMailserver*(self: Service, fleet: Fleet): bool = return self.pinMailserver("", fleet) - proc saveNodeConfiguration*(self: Service, value: JsonNode): bool = - if(self.saveSetting(KEY_NODE_CONFIG, value)): - self.settings.nodeConfig = value - return true - return false - proc saveAutoMessageEnabled*(self: Service, value: bool): bool = if(self.saveSetting(KEY_AUTO_MESSAGE_ENABLED, value)): self.settings.autoMessageEnabled = value diff --git a/src/backend/node_config.nim b/src/backend/node_config.nim index 6af3bb885eb..05ddd6e99e3 100644 --- a/src/backend/node_config.nim +++ b/src/backend/node_config.nim @@ -28,33 +28,32 @@ proc switchFleet*(fleet: string, nodeConfig: JsonNode): RpcResponse[JsonNode] = error "error doing rpc request", methodName = "switchFleet", exception=e.msg raise newException(RpcException, e.msg) -proc callRPCMethod*(methodName: string, payload: JsonNode): RpcResponse[JsonNode] = - try: - result = core.callPrivateRPC(methodName.prefix, payload) - except RpcException as e: - error "error doing rpc request", methodName=methodName, exception=e.msg - raise newException(RpcException, e.msg) - proc enableCommunityHistoryArchiveSupport*(): RpcResponse[JsonNode] = - result = callRPCMethod("enableCommunityHistoryArchiveProtocol", %* []) + return core.callPrivateRPC("enableCommunityHistoryArchiveProtocol".prefix, %* []) proc disableCommunityHistoryArchiveSupport*(): RpcResponse[JsonNode] = - result = callRPCMethod("disableCommunityHistoryArchiveProtocol", %* []) + return core.callPrivateRPC("disableCommunityHistoryArchiveProtocol".prefix, %* []) proc setLogLevel*(logLevel: LogLevel): RpcResponse[JsonNode] = let payload = %*[{ "logLevel": $logLevel }] - result = callRPCMethod("setLogLevel", payload) + result = core.callPrivateRPC("setLogLevel".prefix, payload) proc setMaxLogBackups*(maxLogBackups: int): RpcResponse[JsonNode] = let payload = %*[{ "maxLogBackups": maxLogBackups }] - result = callRPCMethod("setMaxLogBackups", payload) + return core.callPrivateRPC("setMaxLogBackups".prefix, payload) proc setLightClient*(enabled: bool): RpcResponse[JsonNode] = let payload = %*[{ "enabled": enabled }] - result = callRPCMethod("setLightClient", payload) + return core.callPrivateRPC("setLightClient".prefix, payload) + +proc saveNewWakuNode*(nodeAddress: string): RpcResponse[JsonNode] = + let payload = %*[{ + "nodeAddress": nodeAddress + }] + return core.callPrivateRPC("saveNewWakuNode".prefix, payload) diff --git a/vendor/status-go b/vendor/status-go index b28af95e6d0..cdb936d3e40 160000 --- a/vendor/status-go +++ b/vendor/status-go @@ -1 +1 @@ -Subproject commit b28af95e6d0ef20b32ba1e0efe095d8f95d0e6fd +Subproject commit cdb936d3e406389fd3d4d8dd50323ca86b7666fe