@@ -341,19 +341,19 @@ func parseProjectName(comment string) string {
341341}
342342
343343type DiggerExecutor struct {
344- repoOwner string
345- repoName string
346- projectName string
347- projectPath string
348- stateEnvVars map [string ]string
349- commandEnvVars map [string ]string
350- applyStage * configuration.Stage
351- planStage * configuration.Stage
352- commandRunner CommandRun
353- terraformExecutor terraform.TerraformExecutor
354- prManager ci.CIService
355- lock utils.ProjectLock
356- planStorage utils.PlanStorage
344+ RepoOwner string
345+ RepoName string
346+ ProjectName string
347+ ProjectPath string
348+ StateEnvVars map [string ]string
349+ CommandEnvVars map [string ]string
350+ ApplyStage * configuration.Stage
351+ PlanStage * configuration.Stage
352+ CommandRunner CommandRun
353+ TerraformExecutor terraform.TerraformExecutor
354+ ciService ci.CIService
355+ ProjectLock utils.ProjectLock
356+ PlanStorage utils.PlanStorage
357357}
358358
359359type CommandRun interface {
@@ -384,28 +384,28 @@ func (c CommandRunner) Run(command string) (string, string, error) {
384384}
385385
386386func (d DiggerExecutor ) planFileName () string {
387- return d .repoName + "#" + d .projectName + ".tfplan"
387+ return d .RepoName + "#" + d .ProjectName + ".tfplan"
388388}
389389
390390func (d DiggerExecutor ) localPlanFilePath () string {
391- return path .Join (d .projectPath , d .planFileName ())
391+ return path .Join (d .ProjectPath , d .planFileName ())
392392}
393393
394394func (d DiggerExecutor ) storedPlanFilePath () string {
395- return path .Join (d .repoOwner , d .planFileName ())
395+ return path .Join (d .RepoOwner , d .planFileName ())
396396}
397397
398398func (d DiggerExecutor ) Plan (prNumber int ) error {
399- res , err := d .lock .Lock (prNumber )
399+ res , err := d .ProjectLock .Lock (prNumber )
400400 if err != nil {
401401 return fmt .Errorf ("error locking project: %v" , err )
402402 }
403403 log .Printf ("Lock result: %t\n " , res )
404404 if res {
405405 var planSteps []configuration.Step
406406
407- if d .planStage != nil {
408- planSteps = d .planStage .Steps
407+ if d .PlanStage != nil {
408+ planSteps = d .PlanStage .Steps
409409 } else {
410410 planSteps = []configuration.Step {
411411 {
@@ -418,31 +418,31 @@ func (d DiggerExecutor) Plan(prNumber int) error {
418418 }
419419 for _ , step := range planSteps {
420420 if step .Action == "init" {
421- _ , _ , err := d .terraformExecutor .Init (step .ExtraArgs , d .stateEnvVars )
421+ _ , _ , err := d .TerraformExecutor .Init (step .ExtraArgs , d .StateEnvVars )
422422 if err != nil {
423423 return fmt .Errorf ("error running init: %v" , err )
424424 }
425425 }
426426 if step .Action == "plan" {
427427 planArgs := []string {"-out" , d .planFileName ()}
428428 planArgs = append (planArgs , step .ExtraArgs ... )
429- isNonEmptyPlan , stdout , stderr , err := d .terraformExecutor .Plan (planArgs , d .commandEnvVars )
429+ isNonEmptyPlan , stdout , stderr , err := d .TerraformExecutor .Plan (planArgs , d .CommandEnvVars )
430430 if err != nil {
431431 return fmt .Errorf ("error executing plan: %v" , err )
432432 }
433- if d .planStorage != nil {
434- err = d .planStorage .StorePlan (d .localPlanFilePath (), d .storedPlanFilePath ())
433+ if d .PlanStorage != nil {
434+ err = d .PlanStorage .StorePlan (d .localPlanFilePath (), d .storedPlanFilePath ())
435435 if err != nil {
436436 return fmt .Errorf ("error storing plan: %v" , err )
437437 }
438438 }
439439 plan := cleanupTerraformPlan (isNonEmptyPlan , err , stdout , stderr )
440- comment := utils .GetTerraformOutputAsCollapsibleComment ("Plan for **" + d .lock .LockId ()+ "**" , plan )
441- d .prManager .PublishComment (prNumber , comment )
440+ comment := utils .GetTerraformOutputAsCollapsibleComment ("Plan for **" + d .ProjectLock .LockId ()+ "**" , plan )
441+ d .ciService .PublishComment (prNumber , comment )
442442 }
443443 if step .Action == "run" {
444- stdout , stderr , err := d .commandRunner .Run (step .Value )
445- log .Printf ("Running %v for **%v**\n %v%v" , step .Value , d .lock .LockId (), stdout , stderr )
444+ stdout , stderr , err := d .CommandRunner .Run (step .Value )
445+ log .Printf ("Running %v for **%v**\n %v%v" , step .Value , d .ProjectLock .LockId (), stdout , stderr )
446446 if err != nil {
447447 return fmt .Errorf ("error running command: %v" , err )
448448 }
@@ -454,29 +454,29 @@ func (d DiggerExecutor) Plan(prNumber int) error {
454454
455455func (d DiggerExecutor ) Apply (prNumber int ) error {
456456 var plansFilename * string
457- if d .planStorage != nil {
457+ if d .PlanStorage != nil {
458458 var err error
459- plansFilename , err = d .planStorage .RetrievePlan (d .localPlanFilePath (), d .storedPlanFilePath ())
459+ plansFilename , err = d .PlanStorage .RetrievePlan (d .localPlanFilePath (), d .storedPlanFilePath ())
460460 if err != nil {
461461 return fmt .Errorf ("error retrieving plan: %v" , err )
462462 }
463463 }
464464
465- isMergeable , _ , err := d .prManager .IsMergeable (prNumber )
465+ isMergeable , _ , err := d .ciService .IsMergeable (prNumber )
466466 if err != nil {
467467 return fmt .Errorf ("error validating is PR is mergeable: %v" , err )
468468 }
469469
470470 if ! isMergeable {
471471 comment := "Cannot perform Apply since the PR is not currently mergeable."
472- d .prManager .PublishComment (prNumber , comment )
472+ d .ciService .PublishComment (prNumber , comment )
473473 } else {
474474
475- if res , _ := d .lock .Lock (prNumber ); res {
475+ if res , _ := d .ProjectLock .Lock (prNumber ); res {
476476 var applySteps []configuration.Step
477477
478- if d .applyStage != nil {
479- applySteps = d .applyStage .Steps
478+ if d .ApplyStage != nil {
479+ applySteps = d .ApplyStage .Steps
480480 } else {
481481 applySteps = []configuration.Step {
482482 {
@@ -490,24 +490,24 @@ func (d DiggerExecutor) Apply(prNumber int) error {
490490
491491 for _ , step := range applySteps {
492492 if step .Action == "init" {
493- _ , _ , err := d .terraformExecutor .Init (step .ExtraArgs , d .stateEnvVars )
493+ _ , _ , err := d .TerraformExecutor .Init (step .ExtraArgs , d .StateEnvVars )
494494 if err != nil {
495495 return fmt .Errorf ("error running init: %v" , err )
496496 }
497497 }
498498 if step .Action == "apply" {
499- stdout , stderr , err := d .terraformExecutor .Apply (step .ExtraArgs , plansFilename , d .commandEnvVars )
499+ stdout , stderr , err := d .TerraformExecutor .Apply (step .ExtraArgs , plansFilename , d .CommandEnvVars )
500500 applyOutput := cleanupTerraformApply (true , err , stdout , stderr )
501- comment := utils .GetTerraformOutputAsCollapsibleComment ("Apply for **" + d .lock .LockId ()+ "**" , applyOutput )
502- d .prManager .PublishComment (prNumber , comment )
501+ comment := utils .GetTerraformOutputAsCollapsibleComment ("Apply for **" + d .ProjectLock .LockId ()+ "**" , applyOutput )
502+ d .ciService .PublishComment (prNumber , comment )
503503 if err != nil {
504- d .prManager .PublishComment (prNumber , "Error during applying." )
504+ d .ciService .PublishComment (prNumber , "Error during applying." )
505505 return fmt .Errorf ("error executing apply: %v" , err )
506506 }
507507 }
508508 if step .Action == "run" {
509- stdout , stderr , err := d .commandRunner .Run (step .Value )
510- log .Printf ("Running %v for **%v**\n %v%v" , step .Value , d .lock .LockId (), stdout , stderr )
509+ stdout , stderr , err := d .CommandRunner .Run (step .Value )
510+ log .Printf ("Running %v for **%v**\n %v%v" , step .Value , d .ProjectLock .LockId (), stdout , stderr )
511511 if err != nil {
512512 return fmt .Errorf ("error running command: %v" , err )
513513 }
@@ -519,21 +519,21 @@ func (d DiggerExecutor) Apply(prNumber int) error {
519519}
520520
521521func (d DiggerExecutor ) Unlock (prNumber int ) error {
522- err := d .lock .ForceUnlock (prNumber )
522+ err := d .ProjectLock .ForceUnlock (prNumber )
523523 if err != nil {
524- return fmt .Errorf ("failed to aquire lock: %s, %v" , d .lock .LockId (), err )
524+ return fmt .Errorf ("failed to aquire lock: %s, %v" , d .ProjectLock .LockId (), err )
525525 }
526- err = d .planStorage .DeleteStoredPlan (d .storedPlanFilePath ())
526+ err = d .PlanStorage .DeleteStoredPlan (d .storedPlanFilePath ())
527527 if err != nil {
528528 return fmt .Errorf ("failed to delete stored plan file '%v': %v" , d .storedPlanFilePath (), err )
529529 }
530530 return nil
531531}
532532
533533func (d DiggerExecutor ) Lock (prNumber int ) error {
534- _ , err := d .lock .Lock (prNumber )
534+ _ , err := d .ProjectLock .Lock (prNumber )
535535 if err != nil {
536- return fmt .Errorf ("failed to aquire lock: %s, %v" , d .lock .LockId (), err )
536+ return fmt .Errorf ("failed to aquire lock: %s, %v" , d .ProjectLock .LockId (), err )
537537 }
538538 return nil
539539}
0 commit comments