func()

in pkg/client/store.go [87:115]


func (c *storeClientTx) GetKey(ctx context.Context, name string) ([]byte, bool, error) {
	if c.brokenErr != nil {
		return nil, false, ErrStoreTxBroken
	}
	if c.discarded {
		return nil, false, ErrStoreTxDiscarded
	}
	if c.committed {
		return nil, false, ErrStoreTxCommitted
	}
	res, err := c.client.client.storeClient.GetKey(ctx, &proto.StoreGetKeyRequest{
		Token: c.client.client.token,
		TxId:  c.txID,
		Name:  name,
	})
	if err != nil {
		c.brokenErr = err
		return nil, false, err
	}
	switch res.Status {
	case proto.StoreGetKeyResponse_FOUND:
		return res.Value, true, nil
	case proto.StoreGetKeyResponse_NOT_FOUND:
		return nil, false, nil
	}
	err = errors.New("unknown StoreGetKeyResponseStatus")
	c.brokenErr = err
	return nil, false, err
}