Releases: michaelklishin/rabbit-hole
2.8.0
Changes Between 2.7.0 and 2.8.0 (Apr 12, 2021)
Global Runtime Parameters
The library now supports global runtime parameters:
// list all global parameters
params, err := rmqc.ListGlobalParameters()
// => []GlobalRuntimeParameter, error
// get a global parameter
p, err := rmqc.GetGlobalParameter("name")
// => *GlobalRuntimeParameter, error
// declare or update a global parameter
resp, err := rmqc.PutGlobalParameter("name", map[string]interface{
endpoints: "amqp://server-name",
})
// => *http.Response, error
// delete a global parameter
resp, err := rmqc.DeleteGlobalParameter("name")
// => *http.Response, error
Contributed by @ChunyiLyu.
GitHub issue: #180
v2.7.0
Changes Between 2.6.0 and 2.7.0 (Mar 30, 2021)
This release contains minor breaking public API changes
and targets RabbitMQ 3.8.x (the only supported version at the time of writing)
exclusively.
Support for Modern Health Check Endpoints
The client now supports modern health check endpoints
(same checks as provided by rabbitmq-diagnostics
):
import (
"github.com/michaelklishin/rabbit-hole/v2"
)
rmqc, _ = NewClient("http://127.0.0.1:15672", "username", "$3KrEƮ")
res1, err1 := rmqc.HealthCheckAlarms()
res2, err2 := rmqc.HealthCheckLocalAlarms()
res3, err3 := rmqc.HealthCheckCertificateExpiration(1, DAYS)
res4, err4 := rmqc.HealthCheckPortListener(5672)
res5, err5 := rmqc.HealthCheckProtocolListener(AMQP091)
res6, err6 := rmqc.HealthCheckVirtualHosts()
res7, err7 := rmqc.HealthCheckNodeIsMirrorSyncCritical()
res8, err8 := rmqc.HealthCheckNodeIsQuorumCritical()
Contributed by Martin @mkrueger-sabio Krueger.
GitHub issue: #173
Support for Inspecting Shovel Status
ListShovelStatus
is a new function that returns a list of
Shovel status reports for a virtual host:
res, err := rmqc.ListShovelStatus("a-virtual-host")
Contributed by Martin @mkrueger-sabio Krueger.
GitHub issue: #178
Support for Lists of Shovel URIs
Shovel definition now uses a dedicated type, ShovelURISet
, to represent
a set of URIs that will be tried sequentially until the Shovel
can successfully connect and authenticate:
sDef := ShovelDefinition{
SourceURI: ShovelURISet([]string{"amqp://host2/%2f", "amqp://host3/%2f"}),
SourceQueue: "mySourceQueue",
DestinationURI: ShovelURISet([]string{"amqp://host1/%2f"}),
DestinationQueue: "myDestQueue",
AddForwardHeaders: true,
AckMode: "on-confirm",
DeleteAfter: "never",
}
Source and destination URI sets are only supported by the Shovel plugin in
RabbitMQ 3.8.x.
Originally suggested by @pathcl in #172.
Definition Export
rabbithole.ListDefinitions
is a new function that retuns
exported definitions from a cluster
as a typed Go data structure.
Contributed by @pathcl.
GitHub issue: #170
User Tags as Array
For forward compatibility with RabbitMQ 3.9, as of this
version the list of user tags is returned as an array
intead of a comma-separated string.
Compatibility with earlier RabbitMQ HTTP API versions, such as 3.8,
has been preserved.
Optional Federation Parameters are Now Marked with omitempty
Contributed by Michał @michalkurzeja Kurzeja.
GitHub issue: #177
v2.6.0
v2.5.0
Changes Between 2.4.0 and 2.5.0 (Sep 28th, 2020)
Shovels: Support for Numerical Delete-After Values
The delete-after
Shovel parameter now can be deserialised to
a numerical TTL value as well as special string values such as "never"
.
Contributed by Michal @mkuratczyk Kuratczyk.
GitHub issue: #164
v2.4.0
Changes Between 2.3.0 and 2.4.0 (Aug 4th, 2020)
More Thorough Error Checking of HTTP[S] Requests
Suggested by @mammothbane.
GitHub issue: #158
Salt Generation Helper Now Uses crypto/rand
Instead of math/rand
Suggested by @mammothbane.
GitHub issue: #160
More Standardized Response Errors
Error responses (40x
with the exception of 404
in response to DELETE
operations,
50x
) HTTP API response errors are now always wrapped intoErrorResponse
,
even if they do not carry a JSON payload.
v2.3.0
Changes Between 2.2.0 and 2.3.0 (July 11th, 2020)
New Endpoints for Listing Federation Links
Contributed by @niclic.
GitHub issue: #155
Support for More Shovel Parameters (e.g. for AMQP 1.0 Sources and Destinations)
Contributed by @akurz.
GitHub issue: #155
Conditional Exclusion of Expiration Field
Contributed by @niclic.
GitHub issue: #154
v2.2.0
Changes Between 2.1.0 and 2.2.0 (May 21st, 2020)
Runtime Parameter and Federation Upstream Management
Contributed by @niclic.
GitHub issue: #150
Improved Error Reporting
Contributed by @niclic.
GitHub issue: michaelklishin/rabbit-hole#152
Fixed a null Pointer in HTTP Response Handling
Contributed by @justabaka.
GitHub issue: #148
v1.4.0
Enhancements
-
HTTP operations now have a timeout. Contributed by Pierre Durand.
GitHub issue: #102.
-
Support for cluster name operations. Contributed by @sheepkiller.
GitHub issue: #104.
-
Allow empty passwords in
PUT /api/users/{name}
. Contributed by @jeandeaual.GitHub issue: #101.