25
"github.com/stretchr/testify/require"
27
"github.com/cubefs/cubefs/blobstore/common/proto"
28
"github.com/cubefs/cubefs/blobstore/common/trace"
29
_ "github.com/cubefs/cubefs/blobstore/testing/nolog"
32
func TestNewBlobNodeClient(t *testing.T) {
33
span, ctx := trace.StartSpanFromContextWithTraceID(context.Background(), "", "NewBlobNodeService")
35
mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
36
if req.Header.Get("X-Crc-Encoded") != "" {
37
w.Header().Set("X-Ack-Crc-Encoded", "1")
39
w.WriteHeader(http.StatusOK)
46
diskid := proto.DiskID(100002)
48
stat, err := cli.Stat(ctx, mockServer.URL)
49
require.NoError(t, err)
50
span.Infof("stat: %v\n", stat)
52
diskStatArgs := &DiskStatArgs{
55
diskInfo, err := cli.DiskInfo(ctx, mockServer.URL, diskStatArgs)
56
require.NoError(t, err)
57
span.Infof("disk info: %v\n", diskInfo)
59
creteChunkArgs := &CreateChunkArgs{
63
err = cli.CreateChunk(ctx, mockServer.URL, creteChunkArgs)
64
require.NoError(t, err)
66
changeChunkArgs := &ChangeChunkStatusArgs{
70
err = cli.ReleaseChunk(ctx, mockServer.URL, changeChunkArgs)
71
require.NoError(t, err)
73
changeChunkArgs.Vuid = 20003
74
err = cli.SetChunkReadonly(ctx, mockServer.URL, changeChunkArgs)
75
require.NoError(t, err)
77
changeChunkArgs.Vuid = 20004
78
err = cli.SetChunkReadwrite(ctx, mockServer.URL, changeChunkArgs)
79
require.NoError(t, err)
81
listChunkArgs := &ListChunkArgs{
84
chunks, err := cli.ListChunks(ctx, mockServer.URL, listChunkArgs)
85
require.NoError(t, err)
86
span.Infof("chunks: %v\n", chunks)
88
databytes := []byte("test context")
89
putShardArgs := &PutShardArgs{
93
Size: int64(len(databytes)),
94
Body: bytes.NewReader(databytes),
96
_, err = cli.PutShard(ctx, mockServer.URL, putShardArgs)
97
require.NoError(t, err)
99
getShardArgs := &RangeGetShardArgs{
100
GetShardArgs: GetShardArgs{
108
body, _, err := cli.RangeGetShard(ctx, mockServer.URL, getShardArgs)
109
require.NoError(t, err)
111
b, _ := ioutil.ReadAll(body)
112
span.Infof("body: %s\n", b)
115
deleteShardArgs := &DeleteShardArgs{
120
err = cli.MarkDeleteShard(ctx, mockServer.URL, deleteShardArgs)
121
require.NoError(t, err)
123
deleteShardArgs.Vuid = 20009
124
deleteShardArgs.Bid = 300005
125
err = cli.DeleteShard(ctx, mockServer.URL, deleteShardArgs)
126
require.NoError(t, err)
128
statShardArgs := &StatShardArgs{
133
blobInfo, err := cli.StatShard(ctx, mockServer.URL, statShardArgs)
134
require.NoError(t, err)
135
span.Infof("blob info: %v\n", blobInfo)
137
listShardsArgs := &ListShardsArgs{
141
Status: ShardStatusMarkDelete,
144
bids, _, err := cli.ListShards(ctx, mockServer.URL, listShardsArgs)
145
require.NoError(t, err)
146
span.Infof("bids: %v\n", bids)
148
listShardsArgs.Status = ShardStatusNormal
149
bids, _, err = cli.ListShards(ctx, mockServer.URL, listShardsArgs)
150
require.NoError(t, err)
151
span.Infof("bids: %v\n", bids)
153
_ = cli.String(ctx, mockServer.URL)
154
_ = cli.Close(ctx, mockServer.URL)
155
_ = cli.IsOnline(ctx, mockServer.URL)