@@ -18,6 +18,7 @@ package async
1818
1919import (
2020 "context"
21+ "fmt"
2122 "net/http"
2223 "strconv"
2324 "time"
@@ -96,9 +97,9 @@ func processOngoingOperation(ctx context.Context, scope FutureScope, client Futu
9697 return client .Result (ctx , sdkFuture , future .Type )
9798}
9899
99- // CreateResource implements the logic for creating a resource Asynchronously.
100- func (s * Service ) CreateResource (ctx context.Context , spec azure.ResourceSpecGetter , serviceName string ) (result interface {}, err error ) {
101- ctx , log , done := tele .StartSpanWithLogger (ctx , "async.Service.CreateResource " )
100+ // CreateOrUpdateResource implements the logic for creating a new, or updating an existing, resource Asynchronously.
101+ func (s * Service ) CreateOrUpdateResource (ctx context.Context , spec azure.ResourceSpecGetter , serviceName string ) (result interface {}, err error ) {
102+ ctx , log , done := tele .StartSpanWithLogger (ctx , "async.Service.CreateOrUpdateResource " )
102103 defer done ()
103104
104105 resourceName := spec .ResourceName ()
@@ -132,20 +133,25 @@ func (s *Service) CreateResource(ctx context.Context, spec azure.ResourceSpecGet
132133 }
133134
134135 // Create or update the resource with the desired parameters.
135- log .V (2 ).Info ("creating resource" , "service" , serviceName , "resource" , resourceName , "resourceGroup" , rgName )
136+ logMessageVerbPrefix := "creat"
137+ if existingResource != nil {
138+ logMessageVerbPrefix = "updat"
139+ }
140+ log .V (2 ).Info (fmt .Sprintf ("%sing resource" , logMessageVerbPrefix ), "service" , serviceName , "resource" , resourceName , "resourceGroup" , rgName )
136141 result , sdkFuture , err := s .Creator .CreateOrUpdateAsync (ctx , spec , parameters )
142+ errWrapped := errors .Wrapf (err , fmt .Sprintf ("failed to %se resource %s/%s (service: %s)" , logMessageVerbPrefix , rgName , resourceName , serviceName ))
137143 if sdkFuture != nil {
138144 future , err := converters .SDKToFuture (sdkFuture , infrav1 .PutFuture , serviceName , resourceName , rgName )
139145 if err != nil {
140- return nil , errors . Wrapf ( err , "failed to create resource %s/%s (service: %s)" , rgName , resourceName , serviceName )
146+ return nil , errWrapped
141147 }
142148 s .Scope .SetLongRunningOperationState (future )
143149 return nil , azure .WithTransientError (azure .NewOperationNotDoneError (future ), getRequeueAfterFromFuture (sdkFuture ))
144150 } else if err != nil {
145- return nil , errors . Wrapf ( err , "failed to create resource %s/%s (service: %s)" , rgName , resourceName , serviceName )
151+ return nil , errWrapped
146152 }
147153
148- log .V (2 ).Info ("successfully created resource" , "service" , serviceName , "resource" , resourceName , "resourceGroup" , rgName )
154+ log .V (2 ).Info (fmt . Sprintf ( "successfully %sed resource" , logMessageVerbPrefix ) , "service" , serviceName , "resource" , resourceName , "resourceGroup" , rgName )
149155 return result , nil
150156}
151157
0 commit comments