forked from cloudfoundry/bosh-bootloader
/
azure_delete_lbs.go
45 lines (36 loc) · 966 Bytes
/
azure_delete_lbs.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
package commands
import "github.com/cloudfoundry/bosh-bootloader/storage"
type AzureDeleteLBs struct {
cloudConfigManager cloudConfigManager
stateStore stateStore
terraformManager terraformApplier
}
func NewAzureDeleteLBs(cloudConfigManager cloudConfigManager, stateStore stateStore, terraformManager terraformApplier) AzureDeleteLBs {
return AzureDeleteLBs{
cloudConfigManager: cloudConfigManager,
stateStore: stateStore,
terraformManager: terraformManager,
}
}
func (a AzureDeleteLBs) Execute(state storage.State) error {
err := a.terraformManager.ValidateVersion()
if err != nil {
return err
}
state.LB = storage.LB{}
if !state.NoDirector {
err = a.cloudConfigManager.Update(state)
if err != nil {
return err
}
}
state, err = a.terraformManager.Apply(state)
if err != nil {
return handleTerraformError(err, a.stateStore)
}
err = a.stateStore.Set(state)
if err != nil {
return err
}
return nil
}