56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
package util
|
|
|
|
import (
|
|
"context"
|
|
"net/url"
|
|
|
|
"github.com/go-logr/logr"
|
|
|
|
httpv1alpha1 "github.com/kedacore/http-add-on/operator/apis/http/v1alpha1"
|
|
)
|
|
|
|
type contextKey int
|
|
|
|
const (
|
|
ckLogger contextKey = iota
|
|
ckHTTPSO
|
|
ckStream
|
|
ckFailoverStream
|
|
)
|
|
|
|
func ContextWithLogger(ctx context.Context, logger logr.Logger) context.Context {
|
|
return context.WithValue(ctx, ckLogger, logger)
|
|
}
|
|
|
|
func LoggerFromContext(ctx context.Context) logr.Logger {
|
|
cv, _ := ctx.Value(ckLogger).(logr.Logger)
|
|
return cv
|
|
}
|
|
|
|
func ContextWithHTTPSO(ctx context.Context, httpso *httpv1alpha1.HTTPScaledObject) context.Context {
|
|
return context.WithValue(ctx, ckHTTPSO, httpso)
|
|
}
|
|
|
|
func HTTPSOFromContext(ctx context.Context) *httpv1alpha1.HTTPScaledObject {
|
|
cv, _ := ctx.Value(ckHTTPSO).(*httpv1alpha1.HTTPScaledObject)
|
|
return cv
|
|
}
|
|
|
|
func ContextWithStream(ctx context.Context, url *url.URL) context.Context {
|
|
return context.WithValue(ctx, ckStream, url)
|
|
}
|
|
|
|
func StreamFromContext(ctx context.Context) *url.URL {
|
|
cv, _ := ctx.Value(ckStream).(*url.URL)
|
|
return cv
|
|
}
|
|
|
|
func ContextWithFailoverStream(ctx context.Context, url *url.URL) context.Context {
|
|
return context.WithValue(ctx, ckFailoverStream, url)
|
|
}
|
|
|
|
func FailoverStreamFromContext(ctx context.Context) *url.URL {
|
|
cv, _ := ctx.Value(ckFailoverStream).(*url.URL)
|
|
return cv
|
|
}
|