问题描述
我想删除etcd中的密钥,而其他人将密钥放入etcd中。所以我想在删除时指定修订。如果密钥版本低于修订版本,则将其删除。否则什么也不做。
// putInfoOp returns a PUT etcd operation for Info.
func putInfoOp(info Info) (clientv3.Op,error) {
value,err := info.toJSON()
if err != nil {
return clientv3.Op{},err
}
key := KeyAdapter.Encode(info.A,info.B)
return clientv3.OpPut(key,value),nil
}
// deleteInfoOp returns a DELETE etcd operation for info.
func deleteInfoOp(info Info) clientv3.Op {
return clientv3.OpDelete(KeyAdapter.Encode(
info.A,info.B))
}
// my code
func handleinfo(info Info){
putop,_ := putInfoOp(info)
_,rev,err := etcdutil.DoOpsInOneTxnWithRetry(cli,putop)
dosomething()
delOp,_ := deleteInfoOp(Info) // how to delete it with rev?
}