@@ -140,9 +140,8 @@ func (z *zkEtcd) GetChildren2(xid Xid, op *GetChildren2Request) ZKResponse {
140
140
return mkErr (err )
141
141
}
142
142
143
- resp .Stat = statTxn (txnresp )
144
- if op .Path != "/" && resp .Stat .Ctime == 0 {
145
- return mkZKErr (xid , ZXid (txnresp .Header .Revision ), errNoNode )
143
+ if resp .Stat , err = statTxn (op .Path , txnresp ); err != nil {
144
+ return apiErrToZKErr (xid , ZXid (txnresp .Header .Revision ), err )
146
145
}
147
146
148
147
children := txnresp .Responses [5 ].GetResponseRange ()
@@ -258,7 +257,7 @@ func (z *zkEtcd) Exists(xid Xid, op *ExistsRequest) ZKResponse {
258
257
}
259
258
260
259
exResp := & ExistsResponse {}
261
- exResp .Stat = statTxn (txnresp )
260
+ exResp .Stat , err = statTxn (op . Path , txnresp )
262
261
zxid := ZXid (txnresp .Header .Revision )
263
262
z .s .Wait (exResp .Stat .Czxid , p , EventNodeCreated )
264
263
@@ -279,8 +278,8 @@ func (z *zkEtcd) Exists(xid Xid, op *ExistsRequest) ZKResponse {
279
278
z .s .Watch (zxid , xid , p , ev , f )
280
279
}
281
280
282
- if exResp . Stat . Mtime == 0 {
283
- return mkZKErr (xid , zxid , errNoNode )
281
+ if err != nil {
282
+ return apiErrToZKErr (xid , zxid , err )
284
283
}
285
284
286
285
glog .V (7 ).Infof ("Exists(%v) = (zxid=%v, resp=%+v)" , xid , zxid , * exResp )
@@ -298,9 +297,8 @@ func (z *zkEtcd) GetData(xid Xid, op *GetDataRequest) ZKResponse {
298
297
zxid := ZXid (txnresp .Header .Revision )
299
298
300
299
datResp := & GetDataResponse {}
301
- datResp .Stat = statTxn (txnresp )
302
- if datResp .Stat .Mtime == 0 {
303
- return mkZKErr (xid , zxid , errNoNode )
300
+ if datResp .Stat , err = statTxn (op .Path , txnresp ); err != nil {
301
+ return apiErrToZKErr (xid , zxid , err )
304
302
}
305
303
306
304
z .s .Wait (datResp .Stat .Mzxid , p , EventNodeDataChanged )
@@ -362,7 +360,8 @@ func (z *zkEtcd) mkSetDataTxnOp(op *SetDataRequest) opBundle {
362
360
glog .Warningf ("set data failed (%v)" , err )
363
361
return mkZKErr (xid , zxid , errSystemError )
364
362
}
365
- return mkZKResp (xid , zxid , & SetDataResponse {Stat : statTxn (statResp )})
363
+ st , _ := statTxn (op .Path , statResp )
364
+ return mkZKResp (xid , zxid , & SetDataResponse {Stat : st })
366
365
}
367
366
368
367
return opBundle {apply , reply }
@@ -382,9 +381,8 @@ func (z *zkEtcd) GetAcl(xid Xid, op *GetAclRequest) ZKResponse {
382
381
zxid := ZXid (txnresp .Header .Revision )
383
382
resps := txnresp .Responses
384
383
txnresp .Responses = resps [1 :]
385
- resp .Stat = statTxn (txnresp )
386
- if resp .Stat .Ctime == 0 {
387
- return mkZKErr (xid , zxid , errNoNode )
384
+ if resp .Stat , err = statTxn (op .Path , txnresp ); err != nil {
385
+ return apiErrToZKErr (xid , zxid , err )
388
386
}
389
387
resp .Acl = decodeACLs (resps [0 ].GetResponseRange ().Kvs [0 ].Value )
390
388
@@ -410,9 +408,8 @@ func (z *zkEtcd) GetChildren(xid Xid, op *GetChildrenRequest) ZKResponse {
410
408
return mkErr (err )
411
409
}
412
410
413
- s := statTxn (txnresp )
414
- if op .Path != "/" && s .Ctime == 0 {
415
- return mkZKErr (xid , ZXid (txnresp .Header .Revision ), errNoNode )
411
+ if _ , err := statTxn (op .Path , txnresp ); err != nil {
412
+ return apiErrToZKErr (xid , ZXid (txnresp .Header .Revision ), err )
416
413
}
417
414
418
415
children := txnresp .Responses [5 ].GetResponseRange ()
0 commit comments