-
Notifications
You must be signed in to change notification settings - Fork 388
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* working on put request for nsclient * working on put request for nsclient * netstate put * netstate put * wip testing client * wip - testing client and working through some errors * wip - testing client and working through some errors * put request works * put request works for client * get request working * get request working * get request working-minor edit * get request working-minor edit * list request works * list request works * working through delete error * working through delete error * fixed exp client, still working through delete error * fixed exp client, still working through delete error * delete works; fixed formatting issues * delete works; fixed formatting issues * deleted comment * deleted comment * resolving merge conflicts * resolving merge conflict * fixing merge conflict * implemented and modified kayloyans paths file * working on testing * added test for path_test.go * fixed string, read through netstate test * deleted env variables * initial commit for mocking out grpc client- got it working * mocked grpc client * mock put passed test * 2 tests pass for PUT with mock * put requests test pass, wip- want mini review * get tests pass mock * list test working * initial commit for list test * all list req. working, starting on delete tests * delete tests passed * cleaned up tests * resolved merge conflicts * resolved merge conflicts * fixed linter errors * fixed error found in travis * initial commit for fixes from PR comments * fixed pr comments and linting * added error handling for api creds, and rebased * fixes from dennis comments * fixed pr with dennis suggestioon * added copyrights to files * fixed casing per dennis great comment * fixed travis complaint on sprintf
- Loading branch information
Showing
15 changed files
with
943 additions
and
624 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
// Copyright (C) 2018 Storj Labs, Inc. | ||
// See LICENSE for copying information. | ||
|
||
package test | ||
|
||
import ( | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
// Copyright (C) 2018 Storj Labs, Inc. | ||
// See LICENSE for copying information. | ||
|
||
package node | ||
|
||
import ( | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
// Copyright (C) 2018 Storj Labs, Inc. | ||
// See LICENSE for copying information. | ||
|
||
package node | ||
|
||
import ( | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
// Copyright (C) 2018 Storj Labs, Inc. | ||
// See LICENSE for copying information. | ||
|
||
package pointerdb | ||
|
||
import ( | ||
"context" | ||
|
||
"github.com/golang/protobuf/proto" | ||
"google.golang.org/grpc" | ||
monkit "gopkg.in/spacemonkeygo/monkit.v2" | ||
|
||
p "storj.io/storj/pkg/paths" | ||
pb "storj.io/storj/protos/pointerdb" | ||
) | ||
|
||
var ( | ||
mon = monkit.Package() | ||
) | ||
|
||
// PointerDB creates a grpcClient | ||
type PointerDB struct { | ||
grpcClient pb.PointerDBClient | ||
} | ||
|
||
// Client services offerred for the interface | ||
type Client interface { | ||
Put(ctx context.Context, path p.Path, pointer *pb.Pointer, APIKey []byte) error | ||
Get(ctx context.Context, path p.Path, APIKey []byte) (*pb.Pointer, error) | ||
List(ctx context.Context, startingPathKey []byte, limit int64, APIKey []byte) ( | ||
paths []byte, truncated bool, err error) | ||
Delete(ctx context.Context, path p.Path, APIKey []byte) error | ||
} | ||
|
||
// NewClient initializes a new pointerdb client | ||
func NewClient(address string) (*PointerDB, error) { | ||
c, err := clientConnection(address, grpc.WithInsecure()) | ||
|
||
if err != nil { | ||
return nil, err | ||
} | ||
return &PointerDB{ | ||
grpcClient: c, | ||
}, nil | ||
} | ||
|
||
// ClientConnection makes a server connection | ||
func clientConnection(serverAddr string, opts ...grpc.DialOption) (pb.PointerDBClient, error) { | ||
conn, err := grpc.Dial(serverAddr, opts...) | ||
|
||
if err != nil { | ||
return nil, err | ||
} | ||
return pb.NewPointerDBClient(conn), nil | ||
} | ||
|
||
// Put is the interface to make a PUT request, needs Pointer and APIKey | ||
func (pdb *PointerDB) Put(ctx context.Context, path p.Path, pointer *pb.Pointer, APIKey []byte) (err error) { | ||
defer mon.Task()(&ctx)(&err) | ||
|
||
_, err = pdb.grpcClient.Put(ctx, &pb.PutRequest{Path: path.Bytes(), Pointer: pointer, APIKey: APIKey}) | ||
|
||
return err | ||
} | ||
|
||
// Get is the interface to make a GET request, needs PATH and APIKey | ||
func (pdb *PointerDB) Get(ctx context.Context, path p.Path, APIKey []byte) (pointer *pb.Pointer, err error) { | ||
defer mon.Task()(&ctx)(&err) | ||
|
||
res, err := pdb.grpcClient.Get(ctx, &pb.GetRequest{Path: path.Bytes(), APIKey: APIKey}) | ||
if err != nil { | ||
return nil, err | ||
} | ||
|
||
pointer = &pb.Pointer{} | ||
err = proto.Unmarshal(res.GetPointer(), pointer) | ||
|
||
return pointer, nil | ||
} | ||
|
||
// List is the interface to make a LIST request, needs StartingPathKey, Limit, and APIKey | ||
func (pdb *PointerDB) List(ctx context.Context, startingPathKey p.Path, limit int64, APIKey []byte) (paths [][]byte, truncated bool, err error) { | ||
defer mon.Task()(&ctx)(&err) | ||
res, err := pdb.grpcClient.List(ctx, &pb.ListRequest{StartingPathKey: startingPathKey.Bytes(), Limit: limit, APIKey: APIKey}) | ||
|
||
if err != nil { | ||
return nil, false, err | ||
} | ||
|
||
return res.Paths, res.Truncated, nil | ||
} | ||
|
||
// Delete is the interface to make a Delete request, needs Path and APIKey | ||
func (pdb *PointerDB) Delete(ctx context.Context, path p.Path, APIKey []byte) (err error) { | ||
defer mon.Task()(&ctx)(&err) | ||
|
||
_, err = pdb.grpcClient.Delete(ctx, &pb.DeleteRequest{Path: path.Bytes(), APIKey: APIKey}) | ||
|
||
return err | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.