mirror of
https://github.com/harness/drone.git
synced 2025-05-04 14:30:28 +08:00
feat: [CDE-192]: added a new factory method for infraproviders. (#2431)
* feat: [CDE-192]: added a new factory method for infraproviders. * feat: [CDE-192]: added a new factory method for infraproviders.
This commit is contained in:
parent
1748e57189
commit
3d4cbb95ec
@ -20,17 +20,21 @@ import (
|
|||||||
"github.com/harness/gitness/types/enum"
|
"github.com/harness/gitness/types/enum"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Factory struct {
|
type Factory interface {
|
||||||
|
GetInfraProvider(providerType enum.InfraProviderType) (InfraProvider, error)
|
||||||
|
}
|
||||||
|
|
||||||
|
type factory struct {
|
||||||
providers map[enum.InfraProviderType]InfraProvider
|
providers map[enum.InfraProviderType]InfraProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFactory(dockerProvider *DockerProvider) Factory {
|
func NewFactory(dockerProvider *DockerProvider) Factory {
|
||||||
providers := make(map[enum.InfraProviderType]InfraProvider)
|
providers := make(map[enum.InfraProviderType]InfraProvider)
|
||||||
providers[enum.InfraProviderTypeDocker] = dockerProvider
|
providers[enum.InfraProviderTypeDocker] = dockerProvider
|
||||||
return Factory{providers: providers}
|
return &factory{providers: providers}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Factory) GetInfraProvider(providerType enum.InfraProviderType) (InfraProvider, error) {
|
func (f *factory) GetInfraProvider(providerType enum.InfraProviderType) (InfraProvider, error) {
|
||||||
val := f.providers[providerType]
|
val := f.providers[providerType]
|
||||||
if val == nil {
|
if val == nil {
|
||||||
return nil, fmt.Errorf("unknown infra provider type: %s", providerType)
|
return nil, fmt.Errorf("unknown infra provider type: %s", providerType)
|
||||||
|
Loading…
Reference in New Issue
Block a user