mirror of
https://github.com/Luzifer/mondash.git
synced 2024-12-23 12:31:18 +00:00
Knut Ahlers
f3c31476b4
* Update dependencies * Improve code quality * Apply linter advices * Add gzip compression to all requests * Rework frontend * Apply bootswatch theme * Hide historic details when not requested * Remove debugging header * Apply auto-migration of meta fields * Fix broken "last update" time * Pre-sort metrics for frontend / API * Add tooltip with absolute time * Some design fixes * Add tooltip with absolute date to last ok * Implement filters * Apply eslint --fix * Remove unused var * Remove remains of old template engine * Update baked in assets * Update Dockerfile for new version Signed-off-by: Knut Ahlers <knut@ahlers.me>
54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package protocol
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
"github.com/aws/aws-sdk-go/aws/request"
|
|
)
|
|
|
|
// HostPrefixHandlerName is the handler name for the host prefix request
|
|
// handler.
|
|
const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler"
|
|
|
|
// NewHostPrefixHandler constructs a build handler
|
|
func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) request.NamedHandler {
|
|
builder := HostPrefixBuilder{
|
|
Prefix: prefix,
|
|
LabelsFn: labelsFn,
|
|
}
|
|
|
|
return request.NamedHandler{
|
|
Name: HostPrefixHandlerName,
|
|
Fn: builder.Build,
|
|
}
|
|
}
|
|
|
|
// HostPrefixBuilder provides the request handler to expand and prepend
|
|
// the host prefix into the operation's request endpoint host.
|
|
type HostPrefixBuilder struct {
|
|
Prefix string
|
|
LabelsFn func() map[string]string
|
|
}
|
|
|
|
// Build updates the passed in Request with the HostPrefix template expanded.
|
|
func (h HostPrefixBuilder) Build(r *request.Request) {
|
|
if aws.BoolValue(r.Config.DisableEndpointHostPrefix) {
|
|
return
|
|
}
|
|
|
|
var labels map[string]string
|
|
if h.LabelsFn != nil {
|
|
labels = h.LabelsFn()
|
|
}
|
|
|
|
prefix := h.Prefix
|
|
for name, value := range labels {
|
|
prefix = strings.Replace(prefix, "{"+name+"}", value, -1)
|
|
}
|
|
|
|
r.HTTPRequest.URL.Host = prefix + r.HTTPRequest.URL.Host
|
|
if len(r.HTTPRequest.Host) > 0 {
|
|
r.HTTPRequest.Host = prefix + r.HTTPRequest.Host
|
|
}
|
|
}
|