@@ -212,7 +212,7 @@ func (db *SQLDB) UnclaimActualLRP(ctx context.Context, logger lager.Logger, key
212
212
}
213
213
beforeActualLRP = * actualLRP
214
214
215
- if actualLRP .State == models .ActualLRPStateUnclaimed || actualLRP . State == models . ActualLRPStateClaimed {
215
+ if actualLRP .State == models .ActualLRPStateUnclaimed {
216
216
logger .Debug ("already-" + actualLRP .State )
217
217
return models .ErrActualLRPCannotBeUnclaimed
218
218
}
@@ -253,6 +253,27 @@ func (db *SQLDB) UnclaimActualLRP(ctx context.Context, logger lager.Logger, key
253
253
return & beforeActualLRP , actualLRP , err
254
254
}
255
255
256
+ func (db * SQLDB ) GetActualLRP (ctx context.Context , logger lager.Logger , key * models.ActualLRPKey ) (* models.ActualLRP , error ) {
257
+ logger = logger .Session ("db-get-actual-lrp" , lager.Data {"key" : key })
258
+ logger .Info ("starting" )
259
+ defer logger .Info ("complete" )
260
+
261
+ var actualLRP * models.ActualLRP
262
+ processGuid := key .ProcessGuid
263
+ index := key .Index
264
+
265
+ err := db .transact (ctx , logger , func (logger lager.Logger , tx helpers.Tx ) error {
266
+ var err error
267
+ actualLRP , err = db .fetchActualLRPForUpdate (ctx , logger , processGuid , index , models .ActualLRP_Ordinary , tx )
268
+ if err != nil {
269
+ logger .Error ("failed-fetching-actual-lrp-for-share" , err )
270
+ return err
271
+ }
272
+ return nil
273
+ })
274
+ return actualLRP , err
275
+ }
276
+
256
277
func (db * SQLDB ) ClaimActualLRP (ctx context.Context , logger lager.Logger , processGuid string , index int32 , instanceKey * models.ActualLRPInstanceKey ) (* models.ActualLRP , * models.ActualLRP , error ) {
257
278
logger = logger .Session ("db-claim-actual-lrp" , lager.Data {"process_guid" : processGuid , "index" : index , "instance_key" : instanceKey })
258
279
logger .Info ("starting" )
0 commit comments