Skip to content
This repository has been archived by the owner on Jun 17, 2022. It is now read-only.

Commit

Permalink
Merge pull request #4 from better/delete-plan-action
Browse files Browse the repository at this point in the history
implement "delete" action
  • Loading branch information
imsky authored Apr 17, 2018
2 parents b14c55a + 863e255 commit cd4628a
Showing 1 changed file with 55 additions and 1 deletion.
56 changes: 55 additions & 1 deletion plan.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,24 @@ func pairObjectsByCriteria(srcObjects []runtime.Object, dstObjects []runtime.Obj
pairs = append(pairs, pair)
}

//todo: iterate over dstObjects
for i := range dstObjects {
dstMetadata, dstLabels := getObjectMetadata(dstObjects[i])
pair := ObjectPair{nil, &dstObjects[i]}

for j := range srcObjects {
srcMetadata, srcLabels := getObjectMetadata(srcObjects[j])

if criteria.label != "" &&
srcLabels.Get(criteria.label) == dstLabels.Get(criteria.label) &&
srcMetadata.GetNamespace() == dstMetadata.GetNamespace() {
pair.src = &srcObjects[j]
}
}

if pair.src == nil {
pairs = append(pairs, pair)
}
}

return pairs
}
Expand Down Expand Up @@ -142,6 +159,43 @@ func executePlan(plan []Step, config PlanConfig) {
default:
_ = srcType
}
} else if step.action == "delete" {
dst := *step.pair.dst
dstMetadata, _ := getObjectMetadata(dst)
propagationPolicy := metav1.DeletePropagationForeground

switch dstType := dst.(type) {
case *batchv1.Job:
fmt.Println(`Deleting Job "` + dstMetadata.GetName() + `"`)

if !execute {
break
}

err := clientset.BatchV1().Jobs(dstMetadata.GetNamespace()).Delete(dstMetadata.GetName(), &metav1.DeleteOptions{PropagationPolicy: &propagationPolicy})

if err != nil {
panic(err)
}

waitForObjectDeletion(dst, clientset)
case *batchv2alpha1.CronJob:
fmt.Println(`Deleting CronJob "` + dstMetadata.GetName() + `"`)

if !execute {
break
}

err := clientset.BatchV2alpha1().CronJobs(dstMetadata.GetNamespace()).Delete(dstMetadata.GetName(), &metav1.DeleteOptions{PropagationPolicy: &propagationPolicy})

if err != nil {
panic(err)
}

waitForObjectDeletion(dst, clientset)
default:
_ = dstType
}
} else if step.action == "update" {
src := *step.pair.src
dst := *step.pair.dst
Expand Down

0 comments on commit cd4628a

Please sign in to comment.