Beispiel #1
0
func stripIDs(plan atc.Plan) (atc.Plan, []string) {
	var ids []string

	var subIDs []string

	plan.ID = "<stripped>"

	if plan.Aggregate != nil {
		for i, p := range *plan.Aggregate {
			(*plan.Aggregate)[i], subIDs = stripIDs(p)
			ids = append(ids, subIDs...)
		}
	}

	if plan.Do != nil {
		for i, p := range *plan.Do {
			(*plan.Do)[i], subIDs = stripIDs(p)
			ids = append(ids, subIDs...)
		}
	}

	if plan.OnSuccess != nil {
		plan.OnSuccess.Step, subIDs = stripIDs(plan.OnSuccess.Step)
		ids = append(ids, subIDs...)

		plan.OnSuccess.Next, subIDs = stripIDs(plan.OnSuccess.Next)
		ids = append(ids, subIDs...)
	}

	if plan.OnFailure != nil {
		plan.OnFailure.Step, subIDs = stripIDs(plan.OnFailure.Step)
		ids = append(ids, subIDs...)

		plan.OnFailure.Next, subIDs = stripIDs(plan.OnFailure.Next)
		ids = append(ids, subIDs...)
	}

	if plan.Ensure != nil {
		plan.Ensure.Step, subIDs = stripIDs(plan.Ensure.Step)
		ids = append(ids, subIDs...)

		plan.Ensure.Next, subIDs = stripIDs(plan.Ensure.Next)
		ids = append(ids, subIDs...)
	}

	if plan.Timeout != nil {
		plan.Timeout.Step, subIDs = stripIDs(plan.Timeout.Step)
		ids = append(ids, subIDs...)
	}

	if plan.Try != nil {
		plan.Try.Step, subIDs = stripIDs(plan.Try.Step)
		ids = append(ids, subIDs...)
	}

	return plan, ids
}