From b4d7b1e282a2fa7064a392af6aa492305cf7e574 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 14 Aug 2019 12:01:29 -0400 Subject: [PATCH] capture error in CLI layer --- cmd/geth/main.go | 4 +++- permission/permission.go | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cmd/geth/main.go b/cmd/geth/main.go index b29e5ae18..11f386a7f 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -345,7 +345,9 @@ func startNode(ctx *cli.Context, stack *node.Node) { //initialize permission as we can create eth client only after the node and RPC are started if stack.IsPermissionEnabled() { - permission.StartPermissionService(stack) + if err := permission.StartPermissionService(stack); err != nil { + utils.Fatalf("Unable to start Smart Contract based Permission Service due to %s", err) + } } // Start auxiliary services if enabled diff --git a/permission/permission.go b/permission/permission.go index 897d6f791..6dc714c05 100644 --- a/permission/permission.go +++ b/permission/permission.go @@ -12,7 +12,6 @@ import ( "sync" "time" - "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/raft" "github.com/ethereum/go-ethereum/rpc" @@ -143,22 +142,23 @@ func waitForSync(e *eth.Ethereum) { } } -func StartPermissionService(stack *node.Node) { +func StartPermissionService(stack *node.Node) error { //initialize permission as we can create eth client only after the node and RPC are started var permissionService *PermissionCtrl if err := stack.Service(&permissionService); err != nil { - utils.Fatalf("cannot access permissions service %v", err) + return fmt.Errorf("cannot access permissions service %v", err) } if permissionService == nil { - utils.Fatalf("permission service unavailable") + return fmt.Errorf("permission service unavailable") } //initialize the service to create eth client and get ethereum service if err := permissionService.InitializeService(); err != nil { - utils.Fatalf("permissions service initialization failed %v", err) + return fmt.Errorf("permissions service initialization failed %v", err) } if err := permissionService.Start(stack.Server()); err != nil { - utils.Fatalf("permissions service start failed %v", err) + return fmt.Errorf("permissions service start failed %v", err) } + return nil } // Creates the controls structure for permissions