-
Notifications
You must be signed in to change notification settings - Fork 1
/
interface.go
34 lines (24 loc) · 1.23 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package drivers
import (
"context"
"sigs.k8s.io/controller-runtime/pkg/client"
netconv1alpha1 "github.com/janog-netcon/netcon-problem-management-subsystem/api/v1alpha1"
)
type ProblemEnvironmentStatus string
const (
// StatusInit indicates ProblemEnvironment has not been deployed yet
StatusInit ProblemEnvironmentStatus = "Init"
// StatusInit indicates ProblemEnvironment was deployed successfully
StatusDeployed ProblemEnvironmentStatus = "Deployed"
// StatusInit indicates ProblemEnvironment was not deployed successfully
StatusError ProblemEnvironmentStatus = "Error"
)
type ProblemEnvironmentDriver interface {
// Check whether ProblemEnvironment is deployed or not and return ContainerStatus
// []ContainerDetailStatus should be nil if ProblemEnvironment is not deployed successfully
Check(ctx context.Context, reader client.Client, problemEnvironment netconv1alpha1.ProblemEnvironment) (ProblemEnvironmentStatus, []netconv1alpha1.ContainerStatus)
// Deploy ProblemEnvironment
Deploy(ctx context.Context, reader client.Client, problemEnvironment netconv1alpha1.ProblemEnvironment) error
// Destroy ProblemEnvironment
Destroy(ctx context.Context, reader client.Client, problemEnvironment netconv1alpha1.ProblemEnvironment) error
}