github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/nsxt_alb_settings.go (about) 1 package govcd 2 3 import ( 4 "fmt" 5 6 "github.com/vmware/go-vcloud-director/v2/types/v56" 7 ) 8 9 // GetAlbSettings retrieves NSX-T ALB settings for a particular Edge Gateway 10 func (egw *NsxtEdgeGateway) GetAlbSettings() (*types.NsxtAlbConfig, error) { 11 client := egw.client 12 endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbEdgeGateway 13 apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) 14 if err != nil { 15 return nil, err 16 } 17 18 urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) 19 if err != nil { 20 return nil, err 21 } 22 23 typeResponse := &types.NsxtAlbConfig{} 24 err = client.OpenApiGetItem(apiVersion, urlRef, nil, &typeResponse, nil) 25 if err != nil { 26 return nil, err 27 } 28 29 return typeResponse, nil 30 } 31 32 // UpdateAlbSettings updates NSX-T ALB settings for a particular Edge Gateway 33 func (egw *NsxtEdgeGateway) UpdateAlbSettings(config *types.NsxtAlbConfig) (*types.NsxtAlbConfig, error) { 34 client := egw.client 35 endpoint := types.OpenApiPathVersion1_0_0 + types.OpenApiEndpointAlbEdgeGateway 36 apiVersion, err := client.getOpenApiHighestElevatedVersion(endpoint) 37 if err != nil { 38 return nil, err 39 } 40 41 urlRef, err := client.OpenApiBuildEndpoint(fmt.Sprintf(endpoint, egw.EdgeGateway.ID)) 42 if err != nil { 43 return nil, err 44 } 45 46 typeResponse := &types.NsxtAlbConfig{} 47 err = client.OpenApiPutItem(apiVersion, urlRef, nil, config, typeResponse, nil) 48 if err != nil { 49 return nil, err 50 } 51 52 return typeResponse, nil 53 } 54 55 // DisableAlb is a shortcut wrapping UpdateAlbSettings which disables ALB configuration 56 func (egw *NsxtEdgeGateway) DisableAlb() error { 57 config := &types.NsxtAlbConfig{ 58 Enabled: false, 59 } 60 _, err := egw.UpdateAlbSettings(config) 61 if err != nil { 62 return fmt.Errorf("error disabling NSX-T ALB: %s", err) 63 } 64 65 return nil 66 }