driftctl/pkg/terraform/providers.go

42 lines
857 B
Go
Raw Normal View History

package terraform
import (
"github.com/sirupsen/logrus"
)
const (
2021-02-15 13:24:20 +00:00
AWS string = "aws"
GITHUB string = "github"
2021-08-04 15:17:27 +00:00
GOOGLE string = "google"
2021-08-24 08:32:56 +00:00
AZURE string = "azurerm"
)
type ProviderLibrary struct {
providers map[string]TerraformProvider
}
func NewProviderLibrary() *ProviderLibrary {
logrus.Debug("New provider library created")
return &ProviderLibrary{
make(map[string]TerraformProvider),
}
}
func (p *ProviderLibrary) AddProvider(name string, provider TerraformProvider) {
p.providers[name] = provider
}
func (p *ProviderLibrary) Provider(name string) TerraformProvider {
return p.providers[name]
}
func (p *ProviderLibrary) Cleanup() {
logrus.Debug("Closing providers")
for providerKey, provider := range p.providers {
logrus.WithFields(logrus.Fields{
"key": providerKey,
}).Debug("Closing provider")
provider.Cleanup()
}
}