MCPcopy
hub / github.com/ContainerSSH/ContainerSSH / getConfiguredBackend

Method getConfiguredBackend

internal/backend/handler.go:139–177  ·  view source on GitHub ↗
(
	appConfig config.AppConfig,
	backendLogger log.Logger,
	backendRequestsCounter metrics.Counter,
	backendErrorCounter metrics.Counter,
)

Source from the content-addressed store, hash-verified

137}
138
139func (n *networkHandler) getConfiguredBackend(
140 appConfig config.AppConfig,
141 backendLogger log.Logger,
142 backendRequestsCounter metrics.Counter,
143 backendErrorCounter metrics.Counter,
144) (backend sshserver.NetworkConnectionHandler, failureReason error) {
145 switch appConfig.Backend {
146 case "docker":
147 backend, failureReason = docker.New(
148 n.remoteAddr,
149 n.connectionID,
150 appConfig.Docker,
151 backendLogger.WithLabel("backend", "docker"),
152 backendRequestsCounter,
153 backendErrorCounter,
154 )
155 case "kubernetes":
156 backend, failureReason = kubernetes.New(
157 n.remoteAddr,
158 n.connectionID,
159 appConfig.Kubernetes,
160 backendLogger.WithLabel("backend", "kubernetes"),
161 backendRequestsCounter,
162 backendErrorCounter,
163 )
164 case "sshproxy":
165 backend, failureReason = sshproxy.New(
166 n.remoteAddr,
167 n.connectionID,
168 appConfig.SSHProxy,
169 backendLogger.WithLabel("backend", "sshproxy"),
170 backendRequestsCounter,
171 backendErrorCounter,
172 )
173 default:
174 failureReason = fmt.Errorf("invalid backend: %s", appConfig.Backend)
175 }
176 return backend, failureReason
177}
178
179func (n *networkHandler) loadConnectionSpecificConfig(
180 meta metadata.ConnectionAuthenticatedMetadata,

Callers 1

initBackendMethod · 0.95

Calls 5

NewFunction · 0.92
NewFunction · 0.92
NewFunction · 0.92
WithLabelMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected