skip to next object when there is an error with deletion

This commit is contained in:
Tomas Kral 2017-04-03 18:13:41 +02:00
parent da6a2e946a
commit d21c240e3e
No known key found for this signature in database
GPG Key ID: E690DA7E4F291FA6
2 changed files with 33 additions and 2 deletions

View File

@ -695,14 +695,15 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
var errorList []error
//Convert komposeObject
objects, err := k.Transform(komposeObject, opt)
if err != nil {
errorList = append(errorList, err)
return errorList
}
client, namespace, err := k.GetKubernetesClient()
if err != nil {
errorList = append(errorList, err)
return errorList
}
for _, v := range objects {
@ -715,18 +716,20 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
deployment, err := client.Deployments(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range deployment.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
rpDeployment, err := kubectl.ReaperFor(extensions.Kind("Deployment"), client)
if err != nil {
errorList = append(errorList, err)
break
}
//FIXME: gracePeriod is nil
err = rpDeployment.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Deployment: %s", t.Name)
@ -738,17 +741,20 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
svc, err := client.Services(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range svc.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
rpService, err := kubectl.ReaperFor(api.Kind("Service"), client)
if err != nil {
errorList = append(errorList, err)
break
}
//FIXME: gracePeriod is nil
err = rpService.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Service: %s", t.Name)
@ -760,12 +766,14 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
pvc, err := client.PersistentVolumeClaims(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range pvc.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
err = client.PersistentVolumeClaims(namespace).Delete(t.Name)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted PersistentVolumeClaim: %s", t.Name)
}
@ -782,6 +790,7 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
ingress, err := client.Ingress(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range ingress.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
@ -789,6 +798,7 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
err = client.Ingress(namespace).Delete(t.Name, ingDeleteOptions)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Ingress: %s", t.Name)
}
@ -805,11 +815,13 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
rpPod, err := kubectl.ReaperFor(api.Kind("Pod"), client)
if err != nil {
errorList = append(errorList, err)
break
}
//FIXME: gracePeriod is nil
err = rpPod.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Pod: %s", t.Name)
}

View File

@ -502,14 +502,17 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
if err != nil {
errorList = append(errorList, err)
return errorList
}
oclient, err := o.getOpenShiftClient()
if err != nil {
errorList = append(errorList, err)
return errorList
}
kclient, namespace, err := o.GetKubernetesClient()
if err != nil {
errorList = append(errorList, err)
return errorList
}
for _, v := range objects {
@ -522,12 +525,14 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
imageStream, err := oclient.ImageStreams(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range imageStream.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
err = oclient.ImageStreams(namespace).Delete(t.Name)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted ImageStream: %s", t.Name)
}
@ -538,12 +543,14 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
buildConfig, err := oclient.BuildConfigs(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range buildConfig.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
err := oclient.BuildConfigs(namespace).Delete(t.Name)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted BuildConfig: %s", t.Name)
}
@ -554,6 +561,7 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
deploymentConfig, err := oclient.DeploymentConfigs(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range deploymentConfig.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
@ -561,6 +569,7 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
err := dcreaper.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted DeploymentConfig: %s", t.Name)
}
@ -571,17 +580,20 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
svc, err := kclient.Services(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range svc.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
rpService, err := kubectl.ReaperFor(api.Kind("Service"), kclient)
if err != nil {
errorList = append(errorList, err)
break
}
//FIXME: gracePeriod is nil
err = rpService.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Service: %s", t.Name)
}
@ -592,12 +604,14 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
pvc, err := kclient.PersistentVolumeClaims(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range pvc.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
err = kclient.PersistentVolumeClaims(namespace).Delete(t.Name)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted PersistentVolumeClaim: %s", t.Name)
}
@ -608,12 +622,14 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
route, err := oclient.Routes(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range route.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
err = oclient.Routes(namespace).Delete(t.Name)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Route: %s", t.Name)
}
@ -624,18 +640,21 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
pod, err := kclient.Pods(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
break
}
for _, l := range pod.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
rpPod, err := kubectl.ReaperFor(api.Kind("Pod"), kclient)
if err != nil {
errorList = append(errorList, err)
break
}
//FIXME: gracePeriod is nil
err = rpPod.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
break
}
log.Infof("Successfully deleted Pod: %s", t.Name)