Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Kompose will keep trying its job" #535

Merged
merged 1 commit into from
Apr 3, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions pkg/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -287,9 +287,7 @@ func Down(opt kobject.ConvertOptions) {
//Remove deployed application
errUndeploy := t.Undeploy(komposeObject, opt)
if errUndeploy != nil {
for _, err = range errUndeploy {
log.Fatalf("Error while deleting application: %s", err)
}
log.Fatalf("Error while deleting application: %s", errUndeploy)
}

}
Expand Down
39 changes: 17 additions & 22 deletions pkg/transformer/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -691,18 +691,17 @@ func (k *Kubernetes) Deploy(komposeObject kobject.KomposeObject, opt kobject.Con
}

// Undeploy deletes deployed objects from Kubernetes cluster
func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []error {
var errorList []error
func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error {
//Convert komposeObject
objects, err := k.Transform(komposeObject, opt)

if err != nil {
errorList = append(errorList, err)
return errors.Wrap(err, "k.Transform failed")
}

client, namespace, err := k.GetKubernetesClient()
if err != nil {
errorList = append(errorList, err)
return err
}

for _, v := range objects {
Expand All @@ -714,58 +713,55 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
//delete deployment
deployment, err := client.Deployments(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
//FIXME: gracePeriod is nil
err = rpDeployment.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)

return err
}
log.Infof("Successfully deleted Deployment: %s", t.Name)

}
}

case *api.Service:
//delete svc
svc, err := client.Services(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
//FIXME: gracePeriod is nil
err = rpService.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
return err
}
log.Infof("Successfully deleted Service: %s", t.Name)

}
}

case *api.PersistentVolumeClaim:
// delete pvc
pvc, err := client.PersistentVolumeClaims(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
log.Infof("Successfully deleted PersistentVolumeClaim: %s", t.Name)
}
Expand All @@ -781,14 +777,14 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
}
ingress, err := client.Ingress(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
for _, l := range ingress.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {

err = client.Ingress(namespace).Delete(t.Name, ingDeleteOptions)
if err != nil {
errorList = append(errorList, err)
return err
}
log.Infof("Successfully deleted Ingress: %s", t.Name)
}
Expand All @@ -798,24 +794,23 @@ func (k *Kubernetes) Undeploy(komposeObject kobject.KomposeObject, opt kobject.C
//delete pod
pod, err := client.Pods(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
for _, l := range pod.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
rpPod, err := kubectl.ReaperFor(api.Kind("Pod"), client)
if err != nil {
errorList = append(errorList, err)
return err
}
//FIXME: gracePeriod is nil
err = rpPod.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
return err
}
log.Infof("Successfully deleted Pod: %s", t.Name)
}
}
}
}

return errorList
return nil
}
45 changes: 21 additions & 24 deletions pkg/transformer/openshift/openshift.go
Original file line number Diff line number Diff line change
Expand Up @@ -495,21 +495,20 @@ func (o *OpenShift) Deploy(komposeObject kobject.KomposeObject, opt kobject.Conv
}

//Undeploy removes deployed artifacts from OpenShift cluster
func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []error {
var errorList []error
func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error {
//Convert komposeObject
objects, err := o.Transform(komposeObject, opt)

if err != nil {
errorList = append(errorList, err)
return errors.Wrap(err, "o.Transform failed")
}
oclient, err := o.getOpenShiftClient()
if err != nil {
errorList = append(errorList, err)
return err
}
kclient, namespace, err := o.GetKubernetesClient()
if err != nil {
errorList = append(errorList, err)
return err
}

for _, v := range objects {
Expand All @@ -521,13 +520,13 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
//delete imageStream
imageStream, err := oclient.ImageStreams(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
log.Infof("Successfully deleted ImageStream: %s", t.Name)
}
Expand All @@ -537,13 +536,13 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
//options := api.ListOptions{LabelSelector: label}
buildConfig, err := oclient.BuildConfigs(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
log.Infof("Successfully deleted BuildConfig: %s", t.Name)
}
Expand All @@ -553,14 +552,14 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
// delete deploymentConfig
deploymentConfig, err := oclient.DeploymentConfigs(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
for _, l := range deploymentConfig.Items {
if reflect.DeepEqual(l.Labels, komposeLabel) {
dcreaper := deploymentconfigreaper.NewDeploymentConfigReaper(oclient, kclient)
err := dcreaper.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
return err
}
log.Infof("Successfully deleted DeploymentConfig: %s", t.Name)
}
Expand All @@ -570,18 +569,18 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
//delete svc
svc, err := kclient.Services(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
//FIXME: gracePeriod is nil
err = rpService.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
return err
}
log.Infof("Successfully deleted Service: %s", t.Name)
}
Expand All @@ -591,13 +590,13 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
// delete pvc
pvc, err := kclient.PersistentVolumeClaims(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
log.Infof("Successfully deleted PersistentVolumeClaim: %s", t.Name)
}
Expand All @@ -607,13 +606,13 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
// delete route
route, err := oclient.Routes(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}
log.Infof("Successfully deleted Route: %s", t.Name)
}
Expand All @@ -623,25 +622,23 @@ func (o *OpenShift) Undeploy(komposeObject kobject.KomposeObject, opt kobject.Co
//delete pods
pod, err := kclient.Pods(namespace).List(options)
if err != nil {
errorList = append(errorList, err)
return err
}
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)
return err
}

//FIXME: gracePeriod is nil
err = rpPod.Stop(namespace, t.Name, TIMEOUT*time.Second, nil)
if err != nil {
errorList = append(errorList, err)
return err
}
log.Infof("Successfully deleted Pod: %s", t.Name)

}
}
}
}
return errorList
return nil
}
2 changes: 1 addition & 1 deletion pkg/transformer/transformer.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ type Transformer interface {
// Deploy deploys KomposeObject to provider
Deploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error
// Undeploy deletes/undeploys KomposeObject from provider
Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []error
Undeploy(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) error
}