Merge pull request #565 from procrypt/ux

sort output when creating kubernetes/openshift objects
This commit is contained in:
Charlie Drage 2017-05-10 09:21:05 -04:00 committed by GitHub
commit f66a11fd70
4 changed files with 36 additions and 9 deletions

View File

@ -41,6 +41,7 @@ import (
deployapi "github.com/openshift/origin/pkg/deploy/api" deployapi "github.com/openshift/origin/pkg/deploy/api"
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/api/resource"
"sort"
) )
/** /**
@ -542,3 +543,13 @@ func (k *Kubernetes) VolumesFrom(objects *[]runtime.Object, komposeObject kobjec
} }
return nil return nil
} }
//Ensure the kubernetes objects are in a consistent order
func SortedKeys(komposeObject kobject.KomposeObject) []string {
var sortedKeys []string
for name := range komposeObject.ServiceConfigs {
sortedKeys = append(sortedKeys, name)
}
sort.Strings(sortedKeys)
return sortedKeys
}

View File

@ -29,6 +29,7 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
"reflect"
) )
/* /*
@ -275,3 +276,23 @@ func TestRecreateStrategyWithVolumesPresent(t *testing.T) {
} }
} }
} }
func TestSortedKeys(t *testing.T) {
service := kobject.ServiceConfig{
ContainerName: "name",
Image: "image",
}
service1 := kobject.ServiceConfig{
ContainerName: "name",
Image: "image",
}
c := []string{"a", "b"}
komposeObject := kobject.KomposeObject{
ServiceConfigs: map[string]kobject.ServiceConfig{"b": service, "a": service1},
}
a := SortedKeys(komposeObject)
if !reflect.DeepEqual(a, c) {
t.Logf("Test Fail output should be %s", c)
}
}

View File

@ -19,7 +19,6 @@ package kubernetes
import ( import (
"fmt" "fmt"
"reflect" "reflect"
"sort"
"strconv" "strconv"
"time" "time"
@ -533,13 +532,7 @@ func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject.
// this will hold all the converted data // this will hold all the converted data
var allobjects []runtime.Object var allobjects []runtime.Object
// Need to ensure the kubernetes objects are in a consistent order sortedKeys := SortedKeys(komposeObject)
var sortedKeys []string
for name := range komposeObject.ServiceConfigs {
sortedKeys = append(sortedKeys, name)
}
sort.Strings(sortedKeys)
for _, name := range sortedKeys { for _, name := range sortedKeys {
service := komposeObject.ServiceConfigs[name] service := komposeObject.ServiceConfigs[name]
var objects []runtime.Object var objects []runtime.Object

View File

@ -339,7 +339,9 @@ func (o *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.C
buildRepo := opt.BuildRepo buildRepo := opt.BuildRepo
buildBranch := opt.BuildBranch buildBranch := opt.BuildBranch
for name, service := range komposeObject.ServiceConfigs { sortedKeys := kubernetes.SortedKeys(komposeObject)
for _, name := range sortedKeys {
service := komposeObject.ServiceConfigs[name]
var objects []runtime.Object var objects []runtime.Object
// Generate pod only and nothing more // Generate pod only and nothing more