[botanist] Support for fetching data sinks

This extends botanist to support fetching data sink files that are
described by the summary.json file.

Change-Id: I68c9c89ecbe49a8a4f912c9617ef9acf4fc8b8ab
diff --git a/cmd/botanist/main.go b/cmd/botanist/main.go
index 1cd9026..556612e 100644
--- a/cmd/botanist/main.go
+++ b/cmd/botanist/main.go
@@ -123,6 +123,10 @@
 		Name       string `json:"name"`
 		OutputFile string `json:"output_file"`
 		Result     string `json:"result"`
+		DataSinks  map[string][]struct {
+			Name string `json:"name"`
+			File string `json:"file"`
+		} `json:"data_sinks,omitempty"`
 	} `json:"tests"`
 	Outputs map[string]string `json:"outputs,omitempty"`
 }
@@ -264,6 +268,14 @@
 		if err = writeFileToTar(client, tftpAddr, tw, testdir, test.OutputFile); err != nil {
 			return err
 		}
+		// Copy data sinks if any are present.
+		for _, sinks := range test.DataSinks {
+			for _, sink := range sinks {
+				if err = writeFileToTar(client, tftpAddr, tw, testdir, sink.File); err != nil {
+					return err
+				}
+			}
+		}
 	}
 
 	return nil