diff options
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/mgrconfig/config.go | 12 | ||||
| -rw-r--r-- | pkg/mgrconfig/load.go | 9 |
2 files changed, 21 insertions, 0 deletions
diff --git a/pkg/mgrconfig/config.go b/pkg/mgrconfig/config.go index 46270ab0c..68242faf8 100644 --- a/pkg/mgrconfig/config.go +++ b/pkg/mgrconfig/config.go @@ -5,6 +5,8 @@ package mgrconfig import ( "encoding/json" + + "github.com/google/syzkaller/pkg/asset" ) type Config struct { @@ -191,6 +193,16 @@ type Config struct { // Parameters for concrete types are in Config type in vm/TYPE/TYPE.go, e.g. vm/qemu/qemu.go. VM json.RawMessage `json:"vm"` + // Asset storage configuration. There can be specified the upload location and crash assets + // to upload. + // A sample config: + // { + // "upload_to": "gs://bucket", + // "public_access": true + // } + // More details can be found in pkg/asset/config.go. + AssetStorage *asset.Config `json:"asset_storage"` + // Implementation details beyond this point. Filled after parsing. Derived `json:"-"` } diff --git a/pkg/mgrconfig/load.go b/pkg/mgrconfig/load.go index f1063ed17..bef05faa4 100644 --- a/pkg/mgrconfig/load.go +++ b/pkg/mgrconfig/load.go @@ -182,6 +182,15 @@ func Complete(cfg *Config) error { if err != nil { return err } + if !cfg.AssetStorage.IsEmpty() { + if cfg.DashboardClient == "" { + return fmt.Errorf("asset storage also requires dashboard client") + } + err = cfg.AssetStorage.Validate() + if err != nil { + return err + } + } cfg.initTimeouts() return nil } |
