func (s *Spyglass) prowToGCS(prowKey string) (string, error) {
	jobName, buildID, err := s.KeyToJob(prowKey)
	if err != nil {
		return "", fmt.Errorf("could not get GCS src: %v", err)
	}

	job, err := s.jobAgent.GetProwJob(jobName, buildID)
	if err != nil {
		return "", fmt.Errorf("Failed to get prow job from src %q: %v", prowKey, err)
	}

	url := job.Status.URL
	prefix := s.config().Plank.GetJobURLPrefix(job.Spec.Refs)
	if !strings.HasPrefix(url, prefix) {
		return "", fmt.Errorf("unexpected job URL %q when finding GCS path: expected something starting with %q", url, prefix)
	}
	return url[len(prefix):], nil
}
func (s *Spyglass) prowToGCS(prowKey string) (string, error) {
	jobName, buildID, err := s.KeyToJob(prowKey)
	if err != nil {
		return "", fmt.Errorf("could not get GCS src: %v", err)
	}

	job, err := s.jobAgent.GetProwJob(jobName, buildID)
	if err != nil {
		return "", fmt.Errorf("Failed to get prow job from src %q: %v", prowKey, err)
	}

	url := job.Status.URL
	prefix := s.config().Plank.GetJobURLPrefix(job.Spec.Refs)
	if !strings.HasPrefix(url, prefix) {
		return "", fmt.Errorf("unexpected job URL %q when finding GCS path: expected something starting with %q", url, prefix)
	}
	return url[len(prefix):], nil
}
func ( s * Spyglass ) prowToGCS ( prowKey string ) ( string , error ) { jobName , buildID , err := s . KeyToJob ( prowKey ) if err != nil { return " " , fmt . Errorf ( " " , err ) } job , err := s . jobAgent . GetProwJob ( jobName , buildID ) if err != nil { return " " , fmt . Errorf ( " " , prowKey , err ) } url := job . Status . URL prefix := s . config ( ) . Plank . GetJobURLPrefix ( job . Spec . Refs ) if ! strings . HasPrefix ( url , prefix ) { return " " , fmt . Errorf ( " " , url , prefix ) } return url [ len ( prefix ) : ] , nil }
// prowToGCS returns the GCS key corresponding to the given prow key
prowToGCS returns the GCS key corresponding to the given prow key