Skip to content

Commit

Permalink
Implement errors properly, all types except of PerRowErrorPB
Browse files Browse the repository at this point in the history
  • Loading branch information
radekg committed Dec 12, 2021
1 parent f96abbb commit 1e2797e
Show file tree
Hide file tree
Showing 42 changed files with 729 additions and 80 deletions.
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.1-alpha.10
0.0.1-alpha.9.1
3 changes: 2 additions & 1 deletion client/implementation/op_check_exists.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -23,5 +24,5 @@ func (c *defaultYBCliClient) CheckExists(opConfig *configs.OpGetTableSchemaConfi
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_get_is_load_balancer_idle.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -11,5 +12,5 @@ func (c *defaultYBCliClient) GetIsLoadBalancerIdle() (*ybApi.IsLoadBalancerIdleR
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_get_leader_blacklist_completion.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -11,5 +12,5 @@ func (c *defaultYBCliClient) GetLeaderBlacklistCompletion() (*ybApi.GetLoadMoveP
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_get_load_move_completion.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -11,5 +12,5 @@ func (c *defaultYBCliClient) GetLoadMoveCompletion() (*ybApi.GetLoadMovePercentR
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_get_master_registration.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -11,5 +12,5 @@ func (c *defaultYBCliClient) GetMasterRegistration() (*ybApi.GetMasterRegistrati
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
5 changes: 3 additions & 2 deletions client/implementation/op_get_tablets_for_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"

"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -23,8 +24,8 @@ func (c *defaultYBCliClient) GetTabletsForTable(opConfig *configs.OpGetTableLoca
if err := c.connectedClient.Execute(payloadListTables, responseListTablesPayload); err != nil {
return nil, err
}
if err := responseListTablesPayload.GetError(); err != nil {
return nil, fmt.Errorf(err.String())
if responseListTablesPayload.Error != nil {
return nil, clientErrors.NewMasterError(responseListTablesPayload.Error)
}

for _, tableInfo := range responseListTablesPayload.Tables {
Expand Down
3 changes: 2 additions & 1 deletion client/implementation/op_get_universe_config.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -11,5 +12,5 @@ func (c *defaultYBCliClient) GetUniverseConfig() (*ybApi.GetMasterClusterConfigR
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_is_load_balanced.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -20,5 +21,5 @@ func (c *defaultYBCliClient) IsLoadBalanced(opConfig *configs.OpIsLoadBalancedCo
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
7 changes: 5 additions & 2 deletions client/implementation/op_is_tablet_server_ready.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package implementation

import ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

// IsTabletServerReady checks if a given tablet server is ready or returns an error.
func (c *defaultYBCliClient) IsTabletServerReady() (*ybApi.IsTabletServerReadyResponsePB, error) {
Expand All @@ -9,5 +12,5 @@ func (c *defaultYBCliClient) IsTabletServerReady() (*ybApi.IsTabletServerReadyRe
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewTabletServerError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_leader_stepdown.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -19,5 +20,5 @@ func (c *defaultYBCliClient) LeaderStepDown(opConfig *configs.OpLeaderStepDownCo
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewTabletServerError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_list_masters.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -11,5 +12,5 @@ func (c *defaultYBCliClient) ListMasters() (*ybApi.ListMastersResponsePB, error)
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_list_tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand Down Expand Up @@ -33,5 +34,5 @@ func (c *defaultYBCliClient) ListTables(opConfig *configs.OpListTablesConfig) (*
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_list_tablet_servers.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -15,5 +16,5 @@ func (c *defaultYBCliClient) ListTabletServers(opConfig *configs.OpListTabletSer
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
7 changes: 5 additions & 2 deletions client/implementation/op_master_leader_stepdown.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"time"

"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand Down Expand Up @@ -33,9 +34,11 @@ func (c *defaultYBCliClient) MasterLeaderStepDown(opConfig *configs.OpMMasterLea
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
if err := responsePayload.GetError(); err != nil {
return nil, fmt.Errorf(err.String())
if responsePayload.Error != nil {
return nil, clientErrors.NewTabletServerError(responsePayload.Error)
}

// TODO: this does not belong here...
continuousErrors := 0
var registration *ybApi.GetMasterRegistrationResponsePB
topExit:
Expand Down
6 changes: 5 additions & 1 deletion client/implementation/op_modify_placement_info.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
"github.com/radekg/yugabyte-db-go-client/utils/ybdbid"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
Expand All @@ -16,6 +17,9 @@ func (c *defaultYBCliClient) ModifyPlacementInfo(opConfig *configs.OpModifyPlace
if err := c.connectedClient.Execute(payloadCurrent, responseCurrent); err != nil {
return nil, err
}
if responseCurrent.Error != nil {
return nil, clientErrors.NewMasterError(responseCurrent.Error)
}

sysClusterConfigEntry := responseCurrent.ClusterConfig

Expand Down Expand Up @@ -65,5 +69,5 @@ func (c *defaultYBCliClient) ModifyPlacementInfo(opConfig *configs.OpModifyPlace
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responseCurrent.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_set_load_balancer_state.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package implementation

import (
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -14,5 +15,5 @@ func (c *defaultYBCliClient) SetLoadBalancerState(enable bool) (*ybApi.ChangeLoa
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_set_preferred_zones.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"strings"

"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)

Expand All @@ -26,7 +27,7 @@ func (c *defaultYBCliClient) SetPreferredZones(opConfig *configs.OpSetPreferredZ
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}

func zoneInfoToCloudPB(input string) (*ybApi.CloudInfoPB, error) {
Expand Down
5 changes: 3 additions & 2 deletions client/implementation/op_snapshots_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"

"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
"github.com/radekg/yugabyte-db-go-client/utils/ybdbid"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
Expand Down Expand Up @@ -90,7 +91,7 @@ func createSnapshotYCQL(c *defaultYBCliClient, opConfig *configs.OpSnapshotCreat
return nil, err
}

return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}

func createSnapshotYSQL(c *defaultYBCliClient, opConfig *configs.OpSnapshotCreateConfig, ns *parsedKeyspace) (*ybApi.CreateSnapshotResponsePB, error) {
Expand Down Expand Up @@ -127,5 +128,5 @@ func createSnapshotYSQL(c *defaultYBCliClient, opConfig *configs.OpSnapshotCreat
return nil, err
}

return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_snapshots_create_schedule.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
"github.com/radekg/yugabyte-db-go-client/utils/relativetime"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
Expand Down Expand Up @@ -61,5 +62,5 @@ func (c *defaultYBCliClient) SnapshotsCreateSchedule(opConfig *configs.OpSnapsho
return nil, err
}

return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_snapshots_delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils/ybdbid"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -24,5 +25,5 @@ func (c *defaultYBCliClient) SnapshotsDelete(opConfig *configs.OpSnapshotDeleteC
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
3 changes: 2 additions & 1 deletion client/implementation/op_snapshots_delete_schedule.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package implementation

import (
"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils/ybdbid"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand All @@ -24,5 +25,5 @@ func (c *defaultYBCliClient) SnapshotsDeleteSchedule(opConfig *configs.OpSnapsho
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
4 changes: 4 additions & 0 deletions client/implementation/op_snapshots_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"os"

"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
"github.com/radekg/yugabyte-db-go-client/utils/ybdbid"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
Expand Down Expand Up @@ -37,6 +38,9 @@ func (c *defaultYBCliClient) SnapshotsExport(opConfig *configs.OpSnapshotExportC
if err := c.connectedClient.Execute(payload, responsePayload); err != nil {
return nil, err
}
if responsePayload.Error != nil {
return nil, clientErrors.NewMasterError(responsePayload.Error)
}

if len(responsePayload.Snapshots) > 1 {
c.logger.Warn("too many snapshots returned, expected at most 1",
Expand Down
3 changes: 2 additions & 1 deletion client/implementation/op_snapshots_import.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"os"

"github.com/radekg/yugabyte-db-go-client/configs"
clientErrors "github.com/radekg/yugabyte-db-go-client/errors"
"github.com/radekg/yugabyte-db-go-client/utils"
ybApi "github.com/radekg/yugabyte-db-go-proto/v2/yb/api"
)
Expand Down Expand Up @@ -186,5 +187,5 @@ func (c *defaultYBCliClient) SnapshotsImport(opConfig *configs.OpSnapshotImportC
return nil, err
}

return responsePayload, nil
return responsePayload, clientErrors.NewMasterError(responsePayload.Error)
}
Loading

0 comments on commit 1e2797e

Please sign in to comment.