Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit 020bc5c

Browse files
committed
[FAB-5172] Keyvaluestore refactor and test coverage..
[FAB-4694] Orderer package refactoring Change-Id: I5b79826e8bf1f50bce1053617d9014ceecde325a Signed-off-by: Sudesh Shetty <sudesh.shetty@securekey.com>
1 parent aeef71d commit 020bc5c

File tree

10 files changed

+50
-25
lines changed

10 files changed

+50
-25
lines changed

api/apifabclient/keyvaluestore.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type KeyValueStore interface {
2020
* @param {string} name of the key
2121
* @returns {[]byte}
2222
*/
23-
GetValue(key string) ([]byte, error)
23+
Value(key string) ([]byte, error)
2424

2525
/**
2626
* Set the value associated with name.

api/apifabclient/orderer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
// Orderer The Orderer class represents a peer in the target blockchain network to which
1414
// HFC sends a block of transactions of endorsed proposals requiring ordering.
1515
type Orderer interface {
16-
GetURL() string
16+
URL() string
1717
SendBroadcast(envelope *SignedEnvelope) (*common.Status, error)
1818
SendDeliver(envelope *SignedEnvelope) (chan *common.Block, chan error)
1919
}

pkg/fabric-client/channel/channel.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,12 +250,13 @@ func (c *channel) PrimaryPeer() fab.Peer {
250250
* @param {Orderer} orderer An instance of the Orderer class.
251251
* @throws {Error} if the orderer with that url already exists.
252252
*/
253+
253254
func (c *channel) AddOrderer(orderer fab.Orderer) error {
254-
url := orderer.GetURL()
255+
url := orderer.URL()
255256
if c.orderers[url] != nil {
256257
return fmt.Errorf("Orderer with URL %s already exists", url)
257258
}
258-
c.orderers[orderer.GetURL()] = orderer
259+
c.orderers[orderer.URL()] = orderer
259260
return nil
260261
}
261262

@@ -264,8 +265,9 @@ func (c *channel) AddOrderer(orderer fab.Orderer) error {
264265
* Remove orderer endpoint from a channel object, this is a local-only operation.
265266
* @param {Orderer} orderer An instance of the Orderer class.
266267
*/
268+
267269
func (c *channel) RemoveOrderer(orderer fab.Orderer) {
268-
url := orderer.GetURL()
270+
url := orderer.URL()
269271
if c.orderers[url] != nil {
270272
delete(c.orderers, url)
271273
logger.Debugf("Removed orderer with URL %s", url)
@@ -1297,14 +1299,14 @@ func (c *channel) BroadcastEnvelope(envelope *fab.SignedEnvelope) ([]*apitxn.Tra
12971299
defer wg.Done()
12981300
var transactionResponse *apitxn.TransactionResponse
12991301

1300-
logger.Debugf("Broadcasting envelope to orderer :%s\n", orderer.GetURL())
1302+
logger.Debugf("Broadcasting envelope to orderer :%s\n", orderer.URL())
13011303
if _, err := orderer.SendBroadcast(envelope); err != nil {
13021304
logger.Debugf("Receive Error Response from orderer :%v\n", err)
1303-
transactionResponse = &apitxn.TransactionResponse{Orderer: orderer.GetURL(),
1304-
Err: fmt.Errorf("Error calling orderer '%s': %s", orderer.GetURL(), err)}
1305+
transactionResponse = &apitxn.TransactionResponse{Orderer: orderer.URL(),
1306+
Err: fmt.Errorf("Error calling orderer '%s': %s", orderer.URL(), err)}
13051307
} else {
13061308
logger.Debugf("Receive Success Response from orderer\n")
1307-
transactionResponse = &apitxn.TransactionResponse{Orderer: orderer.GetURL(), Err: nil}
1309+
transactionResponse = &apitxn.TransactionResponse{Orderer: orderer.URL(), Err: nil}
13081310
}
13091311

13101312
responseMtx.Lock()
@@ -1331,8 +1333,10 @@ func (c *channel) SendEnvelope(envelope *fab.SignedEnvelope) (*common.Block, err
13311333

13321334
// Send the request to all orderers and return as soon as one responds with a block.
13331335
for _, o := range c.orderers {
1336+
13341337
go func(orderer fab.Orderer) {
1335-
logger.Debugf("Broadcasting envelope to orderer :%s\n", orderer.GetURL())
1338+
logger.Debugf("Broadcasting envelope to orderer :%s\n", orderer.URL())
1339+
13361340
blocks, errors := orderer.SendDeliver(envelope)
13371341
select {
13381342
case block := <-blocks:

pkg/fabric-client/client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func (c *client) LoadUserFromStateStore(name string) (fab.User, error) {
198198
if c.cryptoSuite == nil {
199199
return nil, fmt.Errorf("cryptoSuite is nil")
200200
}
201-
value, err := c.stateStore.GetValue(name)
201+
value, err := c.stateStore.Value(name)
202202
if err != nil {
203203
return nil, nil
204204
}
@@ -423,7 +423,7 @@ func (c *client) CreateOrUpdateChannel(request *fab.CreateChannelRequest, haveEn
423423
Payload: payloadBytes,
424424
})
425425
if err != nil {
426-
return fmt.Errorf("Could not broadcast to orderer %s: %s", request.Orderer.GetURL(), err.Error())
426+
return fmt.Errorf("Could not broadcast to orderer %s: %s", request.Orderer.URL(), err.Error())
427427
}
428428

429429
return nil

pkg/fabric-client/client_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func TestClientMethods(t *testing.T) {
114114
}
115115
client.SetStateStore(stateStore)
116116
client.GetStateStore().SetValue("testvalue", []byte("data"))
117-
value, err := client.GetStateStore().GetValue("testvalue")
117+
value, err := client.GetStateStore().Value("testvalue")
118118
if err != nil {
119119
t.Fatalf("client.GetStateStore().GetValue() return error[%s]", err)
120120
}

pkg/fabric-client/keyvaluestore/filekeyvaluestore.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ func CreateNewFileKeyValueStore(path string) (*FileKeyValueStore, error) {
3333
return &FileKeyValueStore{path: path}, nil
3434
}
3535

36-
// GetValue ...
36+
// Value ...
3737
/**
3838
* Get the value associated with name.
3939
* @param {string} name
4040
* @returns []byte for the value
4141
*/
42-
func (fkvs *FileKeyValueStore) GetValue(key string) ([]byte, error) {
42+
func (fkvs *FileKeyValueStore) Value(key string) ([]byte, error) {
4343
file := path.Join(fkvs.path, key+".json")
4444
value, err := ioutil.ReadFile(file)
4545
if err != nil {

pkg/fabric-client/keyvaluestore/filekeyvaluestore_test.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,33 @@ func TestFKVSMethods(t *testing.T) {
1616
t.Fatalf("CreateNewFileKeyValueStore return error[%s]", err)
1717
}
1818
stateStore.SetValue("testvalue", []byte("data"))
19-
value, err := stateStore.GetValue("testvalue")
19+
value, err := stateStore.Value("testvalue")
2020
if err != nil {
2121
t.Fatalf("stateStore.GetValue return error[%s]", err)
2222
}
2323
if string(value) != "data" {
2424
t.Fatalf("stateStore.GetValue didn't return the right value")
2525
}
26+
}
27+
28+
func TestFKVSMethodsForFailures(t *testing.T) {
29+
30+
stateStore, err := CreateNewFileKeyValueStore("")
31+
32+
if err == nil || err.Error() != "FileKeyValueStore path is empty" {
33+
t.Fatal("File path validation on CreateNewFileKeyValueStore is not working as expected")
34+
}
35+
36+
stateStore, err = CreateNewFileKeyValueStore("/tmp/keyvaluestore")
37+
38+
_, err = stateStore.Value("invalid")
39+
if err == nil {
40+
t.Fatal(" fetching value was supposed to fail")
41+
}
42+
43+
err = stateStore.SetValue("testvalue.json//C;", []byte(""))
44+
if err == nil {
45+
t.Fatal(" setting value was supposed to fail")
46+
}
2647

2748
}

pkg/fabric-client/mocks/mockorderer.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ type MockOrderer interface {
2626
EnqueueForSendDeliver(value interface{})
2727
}
2828
type mockOrderer struct {
29-
URL string
29+
OrdererURL string
3030
BroadcastListener chan *fab.SignedEnvelope
3131
BroadcastErrors chan error
3232
Deliveries chan *common.Block
@@ -39,7 +39,7 @@ type mockOrderer struct {
3939
// NewMockOrderer ...
4040
func NewMockOrderer(url string, broadcastListener chan *fab.SignedEnvelope) fab.Orderer {
4141
o := &mockOrderer{
42-
URL: url,
42+
OrdererURL: url,
4343
BroadcastListener: broadcastListener,
4444
BroadcastErrors: make(chan error, 100),
4545
Deliveries: make(chan *common.Block, 1),
@@ -74,9 +74,9 @@ func delivery(o *mockOrderer) {
7474
}
7575
}
7676

77-
// GetURL returns the URL of the mock Orderer
78-
func (o *mockOrderer) GetURL() string {
79-
return o.URL
77+
// URL returns the URL of the mock Orderer
78+
func (o *mockOrderer) URL() string {
79+
return o.OrdererURL
8080
}
8181

8282
// SendBroadcast accepts client broadcast calls and reports them to the listener channel

pkg/fabric-client/orderer/orderer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ func createNewOrdererWithCertPool(url string, tlsCaCertPool *x509.CertPool, serv
5656
return &orderer{url: url, grpcDialOption: opts}
5757
}
5858

59-
// GetURL Get the Orderer url. Required property for the instance objects.
59+
// URL Get the Orderer url. Required property for the instance objects.
6060
// @returns {string} The address of the Orderer
61-
func (o *orderer) GetURL() string {
61+
func (o *orderer) URL() string {
6262
return o.url
6363
}
6464

pkg/fabric-client/orderer/orderer_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func TestOrdererViaChain(t *testing.T) {
4242
}
4343

4444
orderers := chain.Orderers()
45-
if orderers == nil || len(orderers) != 1 || orderers[0].GetURL() != "localhost:7050" {
45+
if orderers == nil || len(orderers) != 1 || orderers[0].URL() != "localhost:7050" {
4646
t.Fatalf("Failed to retieve the new orderer URL from the chain")
4747
}
4848
chain.RemoveOrderer(orderer)
@@ -56,7 +56,7 @@ func TestOrdererViaChain(t *testing.T) {
5656
}
5757
orderers = chain.Orderers()
5858

59-
if orderers == nil || len(orderers) != 1 || orderers[0].GetURL() != "localhost:7054" {
59+
if orderers == nil || len(orderers) != 1 || orderers[0].URL() != "localhost:7054" {
6060
t.Fatalf("Failed to retieve the new orderer URL from the chain")
6161
}
6262

0 commit comments

Comments
 (0)