diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-08-12 15:31:47 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-08-12 15:10:06 +0000 |
| commit | 6ba02fb7c5dd2e8985ade7303b33c940d4d1d6a9 (patch) | |
| tree | b0b2839d83a064d3359122501ab448c0ad4ac0c2 | |
| parent | 842184b3e1b0aec492d32f6e846268739826cb10 (diff) | |
pkg/asset: simplify gcs code
| -rw-r--r-- | pkg/asset/backend_dummy.go | 12 | ||||
| -rw-r--r-- | pkg/asset/backend_gcs.go | 15 | ||||
| -rw-r--r-- | pkg/asset/storage.go | 16 | ||||
| -rw-r--r-- | pkg/gcs/gcs.go | 3 |
4 files changed, 16 insertions, 30 deletions
diff --git a/pkg/asset/backend_dummy.go b/pkg/asset/backend_dummy.go index c6a6aac1d..b46c2aaee 100644 --- a/pkg/asset/backend_dummy.go +++ b/pkg/asset/backend_dummy.go @@ -7,6 +7,8 @@ import ( "fmt" "strings" "time" + + "github.com/google/syzkaller/pkg/gcs" ) type objectUploadCallback func(req *uploadRequest) (*uploadResponse, error) @@ -69,12 +71,12 @@ func (be *dummyStorageBackend) getPath(url string) (string, error) { return "", fmt.Errorf("unknown URL format") } -func (be *dummyStorageBackend) list() ([]storedObject, error) { - ret := []storedObject{} +func (be *dummyStorageBackend) list() ([]*gcs.Object, error) { + ret := []*gcs.Object{} for path, obj := range be.objects { - ret = append(ret, storedObject{ - path: path, - createdAt: obj.createdAt, + ret = append(ret, &gcs.Object{ + Path: path, + CreatedAt: obj.createdAt, }) } return ret, nil diff --git a/pkg/asset/backend_gcs.go b/pkg/asset/backend_gcs.go index 2706fb426..a196d89b9 100644 --- a/pkg/asset/backend_gcs.go +++ b/pkg/asset/backend_gcs.go @@ -103,19 +103,8 @@ func (csb *cloudStorageBackend) getPath(downloadURL string) (string, error) { return u.Path[len(prefix):], nil } -func (csb *cloudStorageBackend) list() ([]storedObject, error) { - list, err := csb.client.ListObjects(csb.bucket) - if err != nil { - return nil, err - } - ret := []storedObject{} - for _, obj := range list { - ret = append(ret, storedObject{ - path: obj.Path, - createdAt: obj.CreatedAt, - }) - } - return ret, nil +func (csb *cloudStorageBackend) list() ([]*gcs.Object, error) { + return csb.client.ListObjects(csb.bucket) } func (csb *cloudStorageBackend) remove(path string) error { diff --git a/pkg/asset/storage.go b/pkg/asset/storage.go index 468031524..749ec6a19 100644 --- a/pkg/asset/storage.go +++ b/pkg/asset/storage.go @@ -15,6 +15,7 @@ import ( "strings" "time" + "github.com/google/syzkaller/pkg/gcs" "github.com/ulikunitz/xz" "github.com/google/syzkaller/dashboard/dashapi" @@ -245,18 +246,18 @@ func (storage *Storage) DeprecateAssets() error { intersection := 0 for _, obj := range existing { keep := false - if time.Since(obj.createdAt) < deletionEmbargo { + if time.Since(obj.CreatedAt) < deletionEmbargo { // To avoid races between object upload and object deletion, we don't delete // newly uploaded files for a while after they're uploaded. keep = true } - if val, ok := needed[obj.path]; ok && val { + if val, ok := needed[obj.Path]; ok && val { keep = true intersection++ } - storage.tracer.Log("-- object %v, %v: keep %t", obj.path, obj.createdAt, keep) + storage.tracer.Log("-- object %v, %v: keep %t", obj.Path, obj.CreatedAt, keep) if !keep { - toDelete = append(toDelete, obj.path) + toDelete = append(toDelete, obj.Path) } } const intersectionCheckCutOff = 4 @@ -290,14 +291,9 @@ type uploadResponse struct { writer io.WriteCloser } -type storedObject struct { - path string - createdAt time.Time -} - type StorageBackend interface { upload(req *uploadRequest) (*uploadResponse, error) - list() ([]storedObject, error) + list() ([]*gcs.Object, error) remove(path string) error downloadURL(path string, publicURL bool) (string, error) getPath(url string) (string, error) diff --git a/pkg/gcs/gcs.go b/pkg/gcs/gcs.go index 2b7a87ab9..e46350d2c 100644 --- a/pkg/gcs/gcs.go +++ b/pkg/gcs/gcs.go @@ -177,8 +177,7 @@ type Object struct { } func (client *Client) ListObjects(bucket string) ([]*Object, error) { - ctx := context.Background() - it := client.client.Bucket(bucket).Objects(ctx, nil) + it := client.client.Bucket(bucket).Objects(client.ctx, nil) ret := []*Object{} for { objAttrs, err := it.Next() |
