-
Notifications
You must be signed in to change notification settings - Fork 72
/
cluster_api.go
48 lines (42 loc) · 1.58 KB
/
cluster_api.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package cluster
import (
"github.com/AlecAivazis/survey/v2"
"github.com/redhat-developer/app-services-cli/pkg/shared/cluster/kubeclient"
"github.com/redhat-developer/app-services-cli/pkg/shared/cluster/services"
"github.com/redhat-developer/app-services-cli/pkg/shared/cluster/v1alpha"
"github.com/redhat-developer/app-services-cli/pkg/shared/servicespec"
)
// KubernetesClusterAPIImpl implements KubernetesClusterAPI
type KubernetesClusterAPIImpl struct {
KubernetesClients *kubeclient.KubernetesClients
CommandEnvironment *v1alpha.CommandEnvironment
}
// see bind.go cluster.go status.go for interface implementations
func (c *KubernetesClusterAPIImpl) createServiceInstance(serviceType string) (services.RHOASKubernetesService, error) {
var service services.RHOASKubernetesService
if serviceType == "" {
serviceTypeInput := &survey.Select{
Message: c.CommandEnvironment.Localizer.MustLocalize("cluster.common.input.servicetype"),
Options: servicespec.AllServiceLabels,
}
surveyErr := survey.AskOne(serviceTypeInput, &serviceType)
if surveyErr != nil {
return nil, surveyErr
}
}
switch serviceType {
case servicespec.KafkaServiceName:
service = &services.KafkaService{
CommandEnvironment: c.CommandEnvironment,
KubernetesClients: c.KubernetesClients,
}
case servicespec.ServiceRegistryServiceName:
service = &services.RegistryService{
CommandEnvironment: c.CommandEnvironment,
KubernetesClients: c.KubernetesClients,
}
default:
return nil, c.CommandEnvironment.Localizer.MustLocalizeError("cluster.common.error.servicetype")
}
return service, nil
}