Skip to content

Commit 4366dbe

Browse files
committed
clean up TODOs
1 parent f3f3488 commit 4366dbe

File tree

11 files changed

+398
-117
lines changed

11 files changed

+398
-117
lines changed

gremlin-go/driver/auth.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ func Sigv4AuthWithCredentials(region, service string, credentialsProvider aws.Cr
5656
}
5757

5858
signer := v4.NewSigner()
59-
stdReq := req.ToStdRequest()
59+
stdReq, err := req.ToStdRequest()
60+
if err != nil {
61+
return err
62+
}
6063
stdReq.Body = nil // Body is handled separately via payload hash
6164

6265
if err := signer.SignHTTP(ctx, creds, stdReq, req.PayloadHash(), service, region, time.Now()); err != nil {

gremlin-go/driver/client.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ func NewClient(url string, configurations ...func(settings *ClientSettings)) (*C
112112
// Close closes the client via connection.
113113
// This is idempotent due to the underlying close() methods being idempotent as well.
114114
func (client *Client) Close() {
115-
// TODO check what needs to be closed
116115
client.logHandler.logf(Info, closeClient, client.url)
116+
if client.protocol != nil {
117+
client.protocol.close()
118+
}
117119
}
118120

119121
func (client *Client) errorCallback() {
@@ -124,9 +126,6 @@ func (client *Client) errorCallback() {
124126
func (client *Client) SubmitWithOptions(traversalString string, requestOptions RequestOptions) (ResultSet, error) {
125127
client.logHandler.logf(Debug, submitStartedString, traversalString)
126128
request := MakeStringRequest(traversalString, client.traversalSource, requestOptions)
127-
128-
// TODO interceptors (ie. auth)
129-
130129
rs, err := client.protocol.send(&request)
131130
return rs, err
132131
}
@@ -143,10 +142,8 @@ func (client *Client) Submit(traversalString string, bindings ...map[string]inte
143142
}
144143

145144
// submitGremlinLang submits GremlinLang to the server to execute and returns a ResultSet.
146-
// TODO test and update when connection is set up
147145
func (client *Client) submitGremlinLang(gremlinLang *GremlinLang) (ResultSet, error) {
148146
client.logHandler.logf(Debug, submitStartedString, *gremlinLang)
149-
// TODO placeholder
150147
requestOptionsBuilder := new(RequestOptionsBuilder)
151148
if len(gremlinLang.GetParameters()) > 0 {
152149
requestOptionsBuilder.SetBindings(gremlinLang.GetParameters())

gremlin-go/driver/driverRemoteConnection.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ func (driver *DriverRemoteConnection) Submit(traversalString string) (ResultSet,
125125
}
126126

127127
// submitGremlinLang sends a GremlinLang traversal to the server.
128-
// TODO test and update when connection is set up
129128
func (driver *DriverRemoteConnection) submitGremlinLang(gremlinLang *GremlinLang) (ResultSet, error) {
130129
if driver.isClosed {
131130
return nil, newError(err0203SubmitGremlinLangToClosedConnectionError)

gremlin-go/driver/gremlinlang.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -567,17 +567,3 @@ func (gl *GremlinLang) convertArgument(arg interface{}) (interface{}, error) {
567567
}
568568
}
569569
}
570-
571-
// TODO revisit and remove if necessary
572-
//var withOptionsMap map[any]string = map[any]string{
573-
// WithOptions.Tokens: "WithOptions.tokens",
574-
// WithOptions.None: "WithOptions.none",
575-
// WithOptions.Ids: "WithOptions.ids",
576-
// WithOptions.Labels: "WithOptions.labels",
577-
// WithOptions.Keys: "WithOptions.keys",
578-
// WithOptions.Values: "WithOptions.values",
579-
// WithOptions.All: "WithOptions.all",
580-
// WithOptions.Indexer: "WithOptions.indexer",
581-
// WithOptions.List: "WithOptions.list",
582-
// WithOptions.Map: "WithOptions.map",
583-
//}

gremlin-go/driver/httpConnection.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,14 @@ func NewHttpRequest(method, rawURL string) (*HttpRequest, error) {
6262
}
6363

6464
// ToStdRequest converts HttpRequest to a standard http.Request for signing.
65-
func (r *HttpRequest) ToStdRequest() *http.Request {
66-
req, _ := http.NewRequest(r.Method, r.URL.String(), bytes.NewReader(r.Body))
65+
// Returns nil if the request cannot be created (invalid method or URL).
66+
func (r *HttpRequest) ToStdRequest() (*http.Request, error) {
67+
req, err := http.NewRequest(r.Method, r.URL.String(), bytes.NewReader(r.Body))
68+
if err != nil {
69+
return nil, err
70+
}
6771
req.Header = r.Headers
68-
return req
72+
return req, nil
6973
}
7074

7175
// PayloadHash returns the SHA256 hash of the request body for SigV4 signing.
@@ -184,7 +188,11 @@ func (c *httpConnection) executeAndStream(data []byte, rs ResultSet) {
184188
rs.setError(err)
185189
return
186190
}
187-
defer resp.Body.Close()
191+
defer func() {
192+
if err := resp.Body.Close(); err != nil {
193+
c.logHandler.logf(Debug, failedToCloseResponseBody, err.Error())
194+
}
195+
}()
188196

189197
reader, zlibReader, err := c.getReader(resp)
190198
if err != nil {
@@ -193,7 +201,11 @@ func (c *httpConnection) executeAndStream(data []byte, rs ResultSet) {
193201
return
194202
}
195203
if zlibReader != nil {
196-
defer zlibReader.Close()
204+
defer func() {
205+
if err := zlibReader.Close(); err != nil {
206+
c.logHandler.logf(Debug, failedToCloseDecompReader, err.Error())
207+
}
208+
}()
197209
}
198210

199211
c.streamToResultSet(reader, rs)
@@ -224,8 +236,8 @@ func (c *httpConnection) getReader(resp *http.Response) (io.Reader, io.Closer, e
224236
}
225237

226238
func (c *httpConnection) streamToResultSet(reader io.Reader, rs ResultSet) {
227-
d := newStreamingDeserializer(reader)
228-
if err := d.readHeader(); err != nil {
239+
d := NewStreamingDeserializer(reader)
240+
if err := d.ReadHeader(); err != nil {
229241
if err != io.EOF {
230242
c.logHandler.logf(Error, failedToReceiveResponse, err.Error())
231243
rs.setError(err)
@@ -234,7 +246,7 @@ func (c *httpConnection) streamToResultSet(reader io.Reader, rs ResultSet) {
234246
}
235247

236248
for {
237-
obj, err := d.readFullyQualified()
249+
obj, err := d.ReadFullyQualified()
238250
if err != nil {
239251
if err != io.EOF {
240252
c.logHandler.logf(Error, failedToReceiveResponse, err.Error())
@@ -244,7 +256,7 @@ func (c *httpConnection) streamToResultSet(reader io.Reader, rs ResultSet) {
244256
}
245257

246258
if marker, ok := obj.(Marker); ok && marker == EndOfStream() {
247-
code, msg, _, err := d.readStatus()
259+
code, msg, _, err := d.ReadStatus()
248260
if err != nil {
249261
c.logHandler.logf(Error, failedToReceiveResponse, err.Error())
250262
rs.setError(err)

gremlin-go/driver/logger.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,6 @@ const (
114114
logErrorGeneric errorKey = "LOG_ERROR_GENERIC"
115115
closeDriverRemoteConnection errorKey = "CLOSE_DRIVER_REMOTE_CONNECTION"
116116
closeClient errorKey = "CLOSE_CLIENT"
117+
failedToCloseResponseBody errorKey = "FAILED_TO_CLOSE_RESPONSE_BODY"
118+
failedToCloseDecompReader errorKey = "FAILED_TO_CLOSE_DECOMPRESSION_READER"
117119
)

gremlin-go/driver/resources/logger-messages/en.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,7 @@
2020
"POOL_NEW_CONNECTION_ERROR": "Falling back to least-used connection. Creating new connection due to least-used connection exceeding concurrent usage threshold failed: %s",
2121
"POOL_INITIAL_EXCEEDS_MAXIMUM": "InitialConcurrentConnections setting %d exceeded MaximumConcurrentConnections setting %d - limiting InitialConcurrentConnections to %d.",
2222
"FAILED_TO_RECEIVE_RESPONSE": "Failed to receive response: %s",
23-
"FAILED_TO_SEND_REQUEST": "Failed to send request: %s"
23+
"FAILED_TO_SEND_REQUEST": "Failed to send request: %s",
24+
"FAILED_TO_CLOSE_RESPONSE_BODY": "Error closing response body: %s",
25+
"FAILED_TO_CLOSE_DECOMPRESSION_READER": "Error closing decompression reader: %s"
2426
}

gremlin-go/driver/serializer.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,26 +149,20 @@ func (gs *GraphBinarySerializer) DeserializeMessage(message []byte) (Response, e
149149

150150
//Skip version and nullable byte.
151151
i := 2
152-
// TODO temp serialization before fully streaming set-up
153152
for len(message) > 0 {
154153
n, err := readFullyQualifiedNullable(&message, &i, true)
155154
if err != nil {
156155
return msg, err
157156
}
158-
// TODO for debug, remove later
159-
//_, _ = fmt.Fprintf(os.Stdout, "Deserializing data : %v\n", n)
160157
if n == EndOfStream() {
161158
break
162159
}
163160
results = append(results, n)
164161
}
165162

166-
// TODO for debug, remove later
167-
//_, _ = fmt.Fprintf(os.Stdout, "Deserialized results : %s\n", results)
168163
msg.ResponseResult.Data = results
169164
code := readUint32Safe(&message, &i)
170165
msg.ResponseStatus.code = code
171-
// TODO read status message
172166
msg.ResponseStatus.message = "OK"
173167
statusMsg, err := readUnqualified(&message, &i, stringType, true)
174168
if err != nil {

0 commit comments

Comments
 (0)