@@ -4,6 +4,7 @@ package main
44
55import (
66 "log"
7+ "strings"
78 "strconv"
89
910 "github.com/MustWin/baremetal-sdk-go"
@@ -152,26 +153,21 @@ func (s *LoadBalancerBackendResourceCrud) DeletedTarget() []string {
152153 }
153154}
154155
155- func makeBackendOptions (data * schema.ResourceData ) * baremetal.CreateLoadBalancerBackendOptions {
156+ func (s * LoadBalancerBackendResourceCrud ) Create () (e error ) {
157+
156158 opts := & baremetal.CreateLoadBalancerBackendOptions {}
157- if v , ok := data .GetOk ("backup" ); ok {
159+ if v , ok := s . D .GetOk ("backup" ); ok {
158160 opts .Backup = v .(bool )
159161 }
160- if v , ok := data .GetOk ("drain" ); ok {
162+ if v , ok := s . D .GetOk ("drain" ); ok {
161163 opts .Drain = v .(bool )
162164 }
163- if v , ok := data .GetOk ("offline" ); ok {
165+ if v , ok := s . D .GetOk ("offline" ); ok {
164166 opts .Offline = v .(bool )
165167 }
166- if v , ok := data .GetOk ("weight" ); ok {
168+ if v , ok := s . D .GetOk ("weight" ); ok {
167169 opts .Weight = v .(int )
168170 }
169- return opts
170- }
171-
172- func (s * LoadBalancerBackendResourceCrud ) Create () (e error ) {
173-
174- opts := makeBackendOptions (s .D )
175171
176172 var workReqID string
177173 workReqID , e = s .Client .CreateBackend (
@@ -201,15 +197,34 @@ func (s *LoadBalancerBackendResourceCrud) Get() (e error) {
201197}
202198
203199func (s * LoadBalancerBackendResourceCrud ) Update () (e error ) {
204- opts := makeBackendOptions (s .D )
200+ opts := & baremetal.UpdateLoadBalancerBackendOptions {}
201+ if v , ok := s .D .GetOk ("backup" ); ok {
202+ opts .Backup = v .(bool )
203+ }
204+ if v , ok := s .D .GetOk ("drain" ); ok {
205+ opts .Drain = v .(bool )
206+ }
207+ if v , ok := s .D .GetOk ("offline" ); ok {
208+ opts .Offline = v .(bool )
209+ }
210+ if v , ok := s .D .GetOk ("weight" ); ok {
211+ opts .Weight = v .(int )
212+ }
205213
206214 var workReqID string
207215 workReqID , e = s .Client .UpdateBackend (s .D .Get ("load_balancer_id" ).(string ), s .D .Get ("backendset_name" ).(string ), s .D .Id (), opts )
208216 if e != nil {
209217 return
210218 }
211219 s .WorkRequest , e = s .Client .GetWorkRequest (workReqID , nil )
212- return
220+ if e != nil {
221+ return
222+ }
223+ e = crud .LoadBalancerWaitForWorkRequest (s .Client , s .D , s .WorkRequest )
224+ if e != nil {
225+ return
226+ }
227+ return s .Get ()
213228}
214229
215230func (s * LoadBalancerBackendResourceCrud ) SetData () {
@@ -223,6 +238,10 @@ func (s *LoadBalancerBackendResourceCrud) SetData() {
223238}
224239
225240func (s * LoadBalancerBackendResourceCrud ) Delete () (e error ) {
241+ // TODO: make sure this actually works
242+ if strings .Contains (s .D .Id (), "ocid1.loadbalancerworkrequest" ) {
243+ return
244+ }
226245 var workReqID string
227246 workReqID , e = s .Client .DeleteBackend (s .D .Get ("load_balancer_id" ).(string ), s .D .Get ("backendset_name" ).(string ), s .D .Id (), nil )
228247 if e != nil {
0 commit comments