Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2897)

Unified Diff: ct/go/worker_scripts/capture_skps/main.go

Issue 1994663002: Use swarming in capture_skps and capture_skps_from_pdfs CT tasks (Closed) Base URL: https://skia.googlesource.com/buildbot@ct-5-capture_archives
Patch Set: Address comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ct/go/util/util.go ('k') | ct/go/worker_scripts/capture_skps_from_pdfs/main.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ct/go/worker_scripts/capture_skps/main.go
diff --git a/ct/go/worker_scripts/capture_skps/main.go b/ct/go/worker_scripts/capture_skps/main.go
index 89532db4ce04bfcf79d866f16346464b448d6ee4..79a0ac7079a36ff70ec880bd7f35c4af34e59b36 100644
--- a/ct/go/worker_scripts/capture_skps/main.go
+++ b/ct/go/worker_scripts/capture_skps/main.go
@@ -2,13 +2,13 @@
package main
import (
- "encoding/csv"
"flag"
"fmt"
"io/ioutil"
"os"
+ "path"
"path/filepath"
- "runtime"
+ "strconv"
"sync"
"time"
@@ -26,7 +26,8 @@ const (
)
var (
- workerNum = flag.Int("worker_num", 1, "The number of this CT worker. It will be in the {1..100} range.")
+ startRange = flag.Int("start_range", 1, "The number this worker will capture SKPs from.")
+ num = flag.Int("num", 100, "The total number of SKPs to capture starting from the start_range.")
pagesetType = flag.String("pageset_type", util.PAGESET_TYPE_MOBILE_10k, "The type of pagesets to create SKPs from. Eg: 10k, Mobile10k, All.")
chromiumBuild = flag.String("chromium_build", "", "The chromium build that will be used to create the SKPs.")
runID = flag.String("run_id", "", "The unique run id (typically requester + timestamp).")
@@ -37,9 +38,6 @@ var (
func main() {
defer common.LogPanic()
worker_common.Init()
- if !*worker_common.Local {
- defer util.CleanTmpDir()
- }
defer util.TimeTrack(time.Now(), "Capturing SKPs")
defer glog.Flush()
@@ -68,10 +66,6 @@ func main() {
return
}
- // Create the task file so that the master knows this worker is still busy.
- skutil.LogErr(util.CreateTaskFile(util.ACTIVITY_CAPTURING_SKPS))
- defer util.DeleteTaskFile(util.ACTIVITY_CAPTURING_SKPS)
-
// Instantiate GsUtil object.
gs, err := util.NewGsUtil(nil)
if err != nil {
@@ -96,35 +90,31 @@ func main() {
}
// Download pagesets if they do not exist locally.
- if err := gs.DownloadWorkerArtifacts(util.PAGESETS_DIR_NAME, *pagesetType, *workerNum); err != nil {
+ pathToPagesets := filepath.Join(util.PagesetsDir, *pagesetType)
+ if _, err := gs.DownloadSwarmingArtifacts(pathToPagesets, util.PAGESETS_DIR_NAME, *pagesetType, *startRange, *num); err != nil {
glog.Error(err)
return
}
- pathToPagesets := filepath.Join(util.PagesetsDir, *pagesetType)
+ defer skutil.RemoveAll(pathToPagesets)
// Download archives if they do not exist locally.
- if err := gs.DownloadWorkerArtifacts(util.WEB_ARCHIVES_DIR_NAME, *pagesetType, *workerNum); err != nil {
+ pathToArchives := filepath.Join(util.WebArchivesDir, *pagesetType)
+ archivesToIndex, err := gs.DownloadSwarmingArtifacts(pathToArchives, util.WEB_ARCHIVES_DIR_NAME, *pagesetType, *startRange, *num)
+ if err != nil {
glog.Error(err)
return
}
+ defer skutil.RemoveAll(pathToArchives)
// Create the dir that SKPs will be stored in.
pathToSkps := filepath.Join(util.SkpsDir, *pagesetType, *chromiumBuild)
// Delete and remake the local SKPs directory.
skutil.RemoveAll(pathToSkps)
skutil.MkdirAll(pathToSkps, 0700)
-
- // Establish output paths.
- localOutputDir := filepath.Join(util.StorageDir, util.BenchmarkRunsDir, *runID)
- skutil.RemoveAll(localOutputDir)
- skutil.MkdirAll(localOutputDir, 0700)
- defer skutil.RemoveAll(localOutputDir)
+ defer skutil.RemoveAll(pathToSkps)
// Construct path to the ct_run_benchmark python script.
- _, currentFile, _, _ := runtime.Caller(0)
- pathToPyFiles := filepath.Join(
- filepath.Dir((filepath.Dir(filepath.Dir(filepath.Dir(currentFile))))),
- "py")
+ pathToPyFiles := util.GetPathToPyFiles(!*worker_common.Local)
timeoutSecs := util.PagesetTypeToInfo[*pagesetType].CaptureSKPsTimeoutSecs
fileInfos, err := ioutil.ReadDir(pathToPagesets)
@@ -168,12 +158,17 @@ func main() {
glog.Infof("===== Processing %s =====", pagesetPath)
skutil.LogErr(os.Chdir(pathToPyFiles))
+ index, ok := archivesToIndex[decodedPageset.ArchiveDataFile]
+ if !ok {
+ glog.Errorf("%s not found in the archivesToIndex map", decodedPageset.ArchiveDataFile)
+ continue
+ }
args := []string{
filepath.Join(util.TelemetryBinariesDir, util.BINARY_RUN_BENCHMARK),
util.BenchmarksToTelemetryName[util.BENCHMARK_SKPICTURE_PRINTER],
"--also-run-disabled-tests",
"--page-repeat=1", // Only need one run for SKPs.
- "--skp-outdir=" + pathToSkps,
+ "--skp-outdir=" + path.Join(pathToSkps, strconv.Itoa(index)),
"--extra-browser-args=" + util.DEFAULT_BROWSER_ARGS,
"--user-agent=" + decodedPageset.UserAgent,
"--urls-list=" + decodedPageset.UrlsList,
@@ -195,7 +190,6 @@ func main() {
util.ExecuteCmd("python", args, env, time.Duration(timeoutSecs)*time.Second, nil, nil))
mutex.RUnlock()
-
}
}()
}
@@ -209,51 +203,14 @@ func main() {
wg.Wait()
// Move and validate all SKP files.
- if err := util.ValidateSKPs(pathToSkps); err != nil {
+ if err := util.ValidateSKPs(pathToSkps, pathToPyFiles); err != nil {
glog.Error(err)
return
}
- // Write timestamp to the SKPs dir.
- skutil.LogErr(util.CreateTimestampFile(pathToSkps))
-
// Upload SKPs dir to Google Storage.
- if err := gs.UploadWorkerArtifacts(util.SKPS_DIR_NAME, filepath.Join(*pagesetType, *chromiumBuild), *workerNum); err != nil {
+ if err := gs.UploadSwarmingArtifacts(util.SKPS_DIR_NAME, *pagesetType); err != nil {
glog.Error(err)
return
}
}
-
-func getRowsFromCSV(csvPath string) ([]string, []string, error) {
- csvFile, err := os.Open(csvPath)
- defer skutil.Close(csvFile)
- if err != nil {
- return nil, nil, fmt.Errorf("Could not open %s: %s", csvPath, err)
- }
- reader := csv.NewReader(csvFile)
- reader.FieldsPerRecord = -1
- rawCSVdata, err := reader.ReadAll()
- if err != nil {
- return nil, nil, fmt.Errorf("Could not read %s: %s", csvPath, err)
- }
- if len(rawCSVdata) != 2 {
- return nil, nil, fmt.Errorf("No data in %s", csvPath)
- }
- return rawCSVdata[0], rawCSVdata[1], nil
-}
-
-func writeRowsToCSV(csvPath string, headers, values []string) error {
- csvFile, err := os.OpenFile(csvPath, os.O_WRONLY, 666)
- defer skutil.Close(csvFile)
- if err != nil {
- return fmt.Errorf("Could not open %s: %s", csvPath, err)
- }
- writer := csv.NewWriter(csvFile)
- defer writer.Flush()
- for _, row := range [][]string{headers, values} {
- if err := writer.Write(row); err != nil {
- return fmt.Errorf("Could not write to %s: %s", csvPath, err)
- }
- }
- return nil
-}
« no previous file with comments | « ct/go/util/util.go ('k') | ct/go/worker_scripts/capture_skps_from_pdfs/main.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698