b589fbfbd9
* ci: switch to go1.12.12 on machine executors - This brings in recent ci changes from the release/1.2.x branch. * go mod vendor * ci: remove ent build tags * ci: fix gopath * go mod vendor * ci: ensure yarn install * ci: add debug commands * ci: debugging * ci: increment yarn cache; remove debugging * ci: remove redundant yarn install
73 lines
1.9 KiB
Go
73 lines
1.9 KiB
Go
package rabbithole
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"net/url"
|
|
)
|
|
|
|
// Federation definition: additional arguments
|
|
// added to the entities (queues, exchanges or both)
|
|
// that match a policy.
|
|
type FederationDefinition struct {
|
|
Uri string `json:"uri"`
|
|
Expires int `json:"expires"`
|
|
MessageTTL int32 `json:"message-ttl"`
|
|
MaxHops int `json:"max-hops"`
|
|
PrefetchCount int `json:"prefetch-count"`
|
|
ReconnectDelay int `json:"reconnect-delay"`
|
|
AckMode string `json:"ack-mode,omitempty"`
|
|
TrustUserId bool `json:"trust-user-id"`
|
|
Exchange string `json:"exchange"`
|
|
Queue string `json:"queue"`
|
|
}
|
|
|
|
// Represents a configured Federation upstream.
|
|
type FederationUpstream struct {
|
|
Definition FederationDefinition `json:"value"`
|
|
}
|
|
|
|
//
|
|
// PUT /api/parameters/federation-upstream/{vhost}/{upstream}
|
|
//
|
|
|
|
// Updates a federation upstream
|
|
func (c *Client) PutFederationUpstream(vhost string, upstreamName string, fDef FederationDefinition) (res *http.Response, err error) {
|
|
fedUp := FederationUpstream{
|
|
Definition: fDef,
|
|
}
|
|
body, err := json.Marshal(fedUp)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
req, err := newRequestWithBody(c, "PUT", "parameters/federation-upstream/"+url.PathEscape(vhost)+"/"+url.PathEscape(upstreamName), body)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if res, err = executeRequest(c, req); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return res, nil
|
|
}
|
|
|
|
//
|
|
// DELETE /api/parameters/federation-upstream/{vhost}/{name}
|
|
//
|
|
|
|
// Deletes a federation upstream.
|
|
func (c *Client) DeleteFederationUpstream(vhost, upstreamName string) (res *http.Response, err error) {
|
|
req, err := newRequestWithBody(c, "DELETE", "parameters/federation-upstream/"+url.PathEscape(vhost)+"/"+url.PathEscape(upstreamName), nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
if res, err = executeRequest(c, req); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return res, nil
|
|
}
|