Skip to content

Commit 82b7c85

Browse files
Revise package revision caching strategy (#4094)
1 parent aff697d commit 82b7c85

File tree

9 files changed

+241
-121
lines changed

9 files changed

+241
-121
lines changed

e2e/testdata/porch/rpkg-update/config.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ commands:
6161
stdout: |
6262
NAME PACKAGE WORKSPACENAME REVISION LATEST LIFECYCLE REPOSITORY
6363
git-3f036055f7ba68706372cbe0c4b14d553794f7c4 basens-edit update-1 false Draft git
64+
git-804ab1a9d043e44255ef3fb77820d5ad7b1576a9 basens-edit update-3 main false Published git
6465
git-7fcdd499f0790ac3bd8f805e3e5e00825641eb60 basens-edit update-3 v1 true Published git
6566
git-7ab0219ace10c1081a8b40a6b97d5da58bdb62e0 basens-edit-clone update-2 false Draft git
6667
- args:
@@ -82,6 +83,7 @@ commands:
8283
stdout: |
8384
PACKAGE REVISION UPSTREAM REPOSITORY UPSTREAM UPDATES
8485
git-3f036055f7ba68706372cbe0c4b14d553794f7c4 No update available
86+
git-804ab1a9d043e44255ef3fb77820d5ad7b1576a9 No update available
8587
git-7fcdd499f0790ac3bd8f805e3e5e00825641eb60 No update available
8688
git-7ab0219ace10c1081a8b40a6b97d5da58bdb62e0 git v1
8789
- args:
@@ -110,6 +112,7 @@ commands:
110112
stdout: |
111113
PACKAGE REVISION UPSTREAM REPOSITORY UPSTREAM UPDATES
112114
git-3f036055f7ba68706372cbe0c4b14d553794f7c4 No update available
115+
git-804ab1a9d043e44255ef3fb77820d5ad7b1576a9 No update available
113116
git-7fcdd499f0790ac3bd8f805e3e5e00825641eb60 No update available
114117
git-7ab0219ace10c1081a8b40a6b97d5da58bdb62e0 git No update available
115118
- args:

porch/pkg/cache/draft.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package cache
1616

1717
import (
1818
"context"
19+
"fmt"
1920

2021
"github.com/GoogleContainerTools/kpt/porch/pkg/repository"
2122
)
@@ -28,9 +29,20 @@ type cachedDraft struct {
2829
var _ repository.PackageDraft = &cachedDraft{}
2930

3031
func (cd *cachedDraft) Close(ctx context.Context) (repository.PackageRevision, error) {
31-
if closed, err := cd.PackageDraft.Close(ctx); err != nil {
32+
closed, err := cd.PackageDraft.Close(ctx)
33+
if err != nil {
3234
return nil, err
33-
} else {
34-
return cd.cache.update(ctx, closed)
3535
}
36+
37+
err = cd.cache.reconcileCache(ctx, "close-draft")
38+
if err != nil {
39+
return nil, err
40+
}
41+
42+
cpr := cd.cache.getPackageRevision(closed.Key())
43+
if cpr == nil {
44+
return nil, fmt.Errorf("closed draft not found")
45+
}
46+
47+
return cpr, nil
3648
}

0 commit comments

Comments
 (0)