mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 11:55:40 +01:00
Add support for remote validation services. (#185)
* Simple tool to test the remote validation * Added remote validator support to provider. * Added remote validation to aggregator. * Calm golint * Removed csaf_remote_validator tool as it was only for dev. * Re-added csaf_remote_validator tool. Testing is not done. * Embed the document entirely * Include testing the remote validator in the Itests * Change permission of the script * Remove code for Itests * As these will be done in another branch Co-authored-by: Fadi Abbud <fadi.abbud@intevation.de>
This commit is contained in:
parent
7cbbb4bf81
commit
78d8b89aca
16 changed files with 466 additions and 43 deletions
|
|
@ -36,7 +36,7 @@ func (w *worker) setupProviderFull(provider *provider) error {
|
|||
w.provider = provider
|
||||
|
||||
// Each job needs a separate client.
|
||||
w.client = w.cfg.httpClient(provider)
|
||||
w.client = w.processor.cfg.httpClient(provider)
|
||||
|
||||
// We need the provider metadata in all cases.
|
||||
if err := w.locateProviderMetadata(provider.Domain); err != nil {
|
||||
|
|
@ -83,6 +83,22 @@ func (p *processor) full() error {
|
|||
var doWork fullWorkFunc
|
||||
|
||||
if p.cfg.runAsMirror() {
|
||||
|
||||
// check if we need to setup a remote validator
|
||||
if p.cfg.RemoteValidatorOptions != nil {
|
||||
validator, err := p.cfg.RemoteValidatorOptions.Open()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Not sure if we really need it to be serialized.
|
||||
p.remoteValidator = csaf.SynchronizedRemoteValidator(validator)
|
||||
defer func() {
|
||||
p.remoteValidator.Close()
|
||||
p.remoteValidator = nil
|
||||
}()
|
||||
}
|
||||
|
||||
doWork = (*worker).mirror
|
||||
log.Println("Running in aggregator mode")
|
||||
} else {
|
||||
|
|
@ -96,7 +112,7 @@ func (p *processor) full() error {
|
|||
log.Printf("Starting %d workers.\n", p.cfg.Workers)
|
||||
for i := 1; i <= p.cfg.Workers; i++ {
|
||||
wg.Add(1)
|
||||
w := newWorker(i, p.cfg)
|
||||
w := newWorker(i, p)
|
||||
go w.fullWork(&wg, doWork, queue)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue