Skip to content
This repository has been archived by the owner on Apr 27, 2019. It is now read-only.

0.7.0

Compare
Choose a tag to compare
@highlyunavailable highlyunavailable released this 15 Sep 14:28
· 102 commits to master since this release
  • The method of configuring the ConsulClient has been reworked. It now
    uses Actions to configure the options inside itself - e.g.
    var client = new ConsulClient((cfg) => { cfg.Datacenter = "us-west-2"; }
    See the file Consul.Test/ClientTest.cs and the test method
    Client_Constructors() for more examples. The old method will work
    but has been made Obsolete.
  • The ExecuteAbortableLocked method has been removed.
  • Requests to use the X-Consul-Token header instead of the ?token=
    query parameter. This may break use of ACLs with very old Consuls (<
    0.6.0). Please file an issue if this breaks for you.
  • Ported in changes from the Consul Go API for 0.7.0. Most of these
    require 0.7.0 servers/agents. The changes are:
    • Atomic transactions for the KV store
    • Only retry locks/semaphores on Consul errors, not on all errors
    • Add the Near property to Prepared Queries
    • Add Query Templates to Prepared Queries, with regex filtering
    • Change all requests to use the X-Consul-Token header instead of
      the ?token= query parameter.
    • Add the ability to deregister a service that has been critical for
      an arbitrary period of time.
    • Signal WAN address translation and add the ability to look up
      the WAN and LAN addresses if address translation is being used.
    • Added Operator API to allow Raft editing.
  • Added the ability to set LockOpts.LockRetryTime. Thanks @pfrejlich!
  • Add an optional CancellationToken parameter to every method that ends up
    doing an HTTP request. Some of these can create an unstable Consul state
    (e.g. allowing the release of a distribted Semaphore to be canceled) but in
    many cases they should only be used if the call can possibly fail and a
    secondary timeout is needed.
  • Add .NET Core port and build process thanks to work by @akatz0813.
  • Converted all Locks and Semaphores to be totally async thanks to
    work by @mjgoethe.
  • Entirely removed the method ExecuteAbortableLocked and all
    functionality around aborting a thread based on a Consul lock.
  • Reworked configuration of the ConsulClient to use Action<T> to
    configure options.