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

Side by Side Diff: dm/appengine/deps/ensure_graph_data.go

Issue 2963503003: [errors] Greatly simplify common/errors package. (Closed)
Patch Set: fix nits Created 3 years, 5 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 unified diff | Download patch
« no previous file with comments | « dm/appengine/deps/auth.go ('k') | dm/appengine/deps/service.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The LUCI Authors. All rights reserved. 1 // Copyright 2015 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package deps 5 package deps
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 9
10 "golang.org/x/net/context" 10 "golang.org/x/net/context"
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 } 136 }
137 muts = append(muts, mut) 137 muts = append(muts, mut)
138 } 138 }
139 for qid, nums := range newAttempts.To { 139 for qid, nums := range newAttempts.To {
140 muts = append(muts, &mutate.EnsureQuestAttempts{ 140 muts = append(muts, &mutate.EnsureQuestAttempts{
141 Quest: &model.Quest{ID: qid}, 141 Quest: &model.Quest{ID: qid},
142 AIDs: nums.Nums, 142 AIDs: nums.Nums,
143 DoNotMergeQuest: true, 143 DoNotMergeQuest: true,
144 }) 144 })
145 } 145 }
146 » return grpcAnnotate(tumble.AddToJournal(c, muts...), codes.Internal). 146 » return grpcAnnotate(tumble.AddToJournal(c, muts...), codes.Internal, "at tempting to journal").Err()
147 » » Reason("attempting to journal").Err()
148 } 147 }
149 148
150 func (d *deps) ensureGraphData(c context.Context, req *dm.EnsureGraphDataReq, ne wQuests []*model.Quest, newAttempts *dm.AttemptList, rsp *dm.EnsureGraphDataRsp) (err error) { 149 func (d *deps) ensureGraphData(c context.Context, req *dm.EnsureGraphDataReq, ne wQuests []*model.Quest, newAttempts *dm.AttemptList, rsp *dm.EnsureGraphDataRsp) (err error) {
151 var ( 150 var (
152 fwdDepExists *ds.ExistsResult 151 fwdDepExists *ds.ExistsResult
153 fwdDepKeys []*ds.Key 152 fwdDepKeys []*ds.Key
154 ) 153 )
155 if req.ForExecution != nil { 154 if req.ForExecution != nil {
156 fwdDepKeys = model.FwdDepKeysFromList(c, req.ForExecution.Id.Att emptID(), newAttempts) 155 fwdDepKeys = model.FwdDepKeysFromList(c, req.ForExecution.Id.Att emptID(), newAttempts)
157 } 156 }
(...skipping 11 matching lines...) Expand all
169 gen <- func() (err error) { 168 gen <- func() (err error) {
170 fwdDepExists, err = ds.Exists(c, fwdDepKeys) 169 fwdDepExists, err = ds.Exists(c, fwdDepKeys)
171 if err != nil { 170 if err != nil {
172 err = fmt.Errorf("while finding FwdDeps: %s", err) 171 err = fmt.Errorf("while finding FwdDeps: %s", err)
173 } 172 }
174 return err 173 return err
175 } 174 }
176 } 175 }
177 }) 176 })
178 if err != nil { 177 if err != nil {
179 » » return grpcAnnotate(err, codes.Internal).Reason("failed to gathe r prerequisites").Err() 178 » » return grpcAnnotate(err, codes.Internal, "failed to gather prere quisites").Err()
180 } 179 }
181 180
182 // Now that we've walked the graph, prune the lists of new Quest and Att empts 181 // Now that we've walked the graph, prune the lists of new Quest and Att empts
183 // by the information retrieved in the graph walk. newQuest and newAttem pts 182 // by the information retrieved in the graph walk. newQuest and newAttem pts
184 // will be reduced to contain only the missing information. 183 // will be reduced to contain only the missing information.
185 newQuests, newQuestSet := filterQuestsByNewTemplateData(rsp.Result, newQ uests) 184 newQuests, newQuestSet := filterQuestsByNewTemplateData(rsp.Result, newQ uests)
186 newAttempts, newAttemptsLen, err := filterAttemptsByDNE(rsp.Result, newA ttempts, newQuestSet) 185 newAttempts, newAttemptsLen, err := filterAttemptsByDNE(rsp.Result, newA ttempts, newQuestSet)
187 if err != nil { 186 if err != nil {
188 » » return grpcAnnotate(err, codes.InvalidArgument).Reason("filterAt temptsByDNE").Err() 187 » » return grpcAnnotate(err, codes.InvalidArgument, "filterAttemptsB yDNE").Err()
189 } 188 }
190 189
191 // we're just asserting nodes, no edges, so journal whatever's left 190 // we're just asserting nodes, no edges, so journal whatever's left
192 if req.ForExecution == nil { 191 if req.ForExecution == nil {
193 logging.Fields{"qs": len(newQuests), "atmpts": newAttemptsLen}.I nfof(c, 192 logging.Fields{"qs": len(newQuests), "atmpts": newAttemptsLen}.I nfof(c,
194 "journaling without deps") 193 "journaling without deps")
195 err := journalQuestAttempts(c, newQuests, newAttempts) 194 err := journalQuestAttempts(c, newQuests, newAttempts)
196 rsp.Accepted = err == nil 195 rsp.Accepted = err == nil
197 return err 196 return err
198 } 197 }
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 291
293 d, ok := dists[qDesc.DistributorConfigName] 292 d, ok := dists[qDesc.DistributorConfigName]
294 if !ok { 293 if !ok {
295 if d, _, err = reg.MakeDistributor(c, qDesc.DistributorC onfigName); err != nil { 294 if d, _, err = reg.MakeDistributor(c, qDesc.DistributorC onfigName); err != nil {
296 return 295 return
297 } 296 }
298 dists[qDesc.DistributorConfigName] = d 297 dists[qDesc.DistributorConfigName] = d
299 } 298 }
300 299
301 if err = d.Validate(qDesc.DistributorParameters); err != nil { 300 if err = d.Validate(qDesc.DistributorParameters); err != nil {
302 » » » err = grpcAnnotate(err, codes.InvalidArgument). 301 » » » err = grpcAnnotate(err, codes.InvalidArgument,
303 » » » » Reason("JSON distributor parameters are invalid for this distributor configuration.").Err() 302 » » » » "JSON distributor parameters are invalid for thi s distributor configuration.").Err()
304 return 303 return
305 } 304 }
306 305
307 if _, ok := newQuests[q.ID]; !ok { 306 if _, ok := newQuests[q.ID]; !ok {
308 newQuests[q.ID] = q 307 newQuests[q.ID] = q
309 } 308 }
310 rsp.QuestIds = append(rsp.QuestIds, dm.NewQuestID(q.ID)) 309 rsp.QuestIds = append(rsp.QuestIds, dm.NewQuestID(q.ID))
311 anums := newAttempts.To[q.ID] 310 anums := newAttempts.To[q.ID]
312 if anums == nil { 311 if anums == nil {
313 anums = &dm.AttemptList_Nums{} 312 anums = &dm.AttemptList_Nums{}
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 } 360 }
362 361
363 return 362 return
364 } 363 }
365 364
366 func (d *deps) EnsureGraphData(c context.Context, req *dm.EnsureGraphDataReq) (r sp *dm.EnsureGraphDataRsp, err error) { 365 func (d *deps) EnsureGraphData(c context.Context, req *dm.EnsureGraphDataReq) (r sp *dm.EnsureGraphDataRsp, err error) {
367 if req.ForExecution != nil { 366 if req.ForExecution != nil {
368 logging.Fields{"execution": req.ForExecution.Id}.Infof(c, "on be half of") 367 logging.Fields{"execution": req.ForExecution.Id}.Infof(c, "on be half of")
369 _, _, err := model.AuthenticateExecution(c, req.ForExecution) 368 _, _, err := model.AuthenticateExecution(c, req.ForExecution)
370 if err != nil { 369 if err != nil {
371 » » » return nil, grpcAnnotate(err, codes.Unauthenticated).Rea son("bad execution auth").Err() 370 » » » return nil, grpcAnnotate(err, codes.Unauthenticated, "ba d execution auth").Err()
372 } 371 }
373 } else { 372 } else {
374 if err = canWrite(c); err != nil { 373 if err = canWrite(c); err != nil {
375 return 374 return
376 } 375 }
377 } 376 }
378 377
379 // render any quest descriptions, templates and template attempts into 378 // render any quest descriptions, templates and template attempts into
380 // a single merged set of new quests and new attempts 379 // a single merged set of new quests and new attempts
381 rsp, newQuests, newAttempts, err := renderRequest(c, req) 380 rsp, newQuests, newAttempts, err := renderRequest(c, req)
382 if err != nil || len(rsp.TemplateError) > 0 { 381 if err != nil || len(rsp.TemplateError) > 0 {
383 return 382 return
384 } 383 }
385 384
386 newQuestList := make([]*model.Quest, 0, len(newQuests)) 385 newQuestList := make([]*model.Quest, 0, len(newQuests))
387 for _, q := range newQuests { 386 for _, q := range newQuests {
388 newQuestList = append(newQuestList, q) 387 newQuestList = append(newQuestList, q)
389 } 388 }
390 389
391 err = d.ensureGraphData(c, req, newQuestList, newAttempts, rsp) 390 err = d.ensureGraphData(c, req, newQuestList, newAttempts, rsp)
392 391
393 return 392 return
394 } 393 }
OLDNEW
« no previous file with comments | « dm/appengine/deps/auth.go ('k') | dm/appengine/deps/service.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698