aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-08-12 15:31:47 +0200
committerTaras Madan <tarasmadan@google.com>2024-08-12 15:10:06 +0000
commit6ba02fb7c5dd2e8985ade7303b33c940d4d1d6a9 (patch)
treeb0b2839d83a064d3359122501ab448c0ad4ac0c2
parent842184b3e1b0aec492d32f6e846268739826cb10 (diff)
pkg/asset: simplify gcs code
-rw-r--r--pkg/asset/backend_dummy.go12
-rw-r--r--pkg/asset/backend_gcs.go15
-rw-r--r--pkg/asset/storage.go16
-rw-r--r--pkg/gcs/gcs.go3
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()