From 775f5012c922744a92598d0dd0dfb66561338c16 Mon Sep 17 00:00:00 2001 From: Suraj Deshmukh Date: Tue, 14 Feb 2017 08:18:48 +0530 Subject: [PATCH] removed unnecessary objects in compose.go In compoese.go while iterating on the ServiceConfig objects first it's keys were pulled and then data was pulled separately which can be done in one step by iterating on the dictionary. --- cmd/completion.go | 5 +- pkg/app/app.go | 3 +- pkg/loader/compose/compose.go | 111 ++++++++++++++++------------------ 3 files changed, 58 insertions(+), 61 deletions(-) diff --git a/cmd/completion.go b/cmd/completion.go index 8c68a3d4..83de4735 100644 --- a/cmd/completion.go +++ b/cmd/completion.go @@ -3,10 +3,11 @@ package cmd import ( "bytes" "fmt" - "github.com/Sirupsen/logrus" - "github.com/spf13/cobra" "io" "os" + + "github.com/Sirupsen/logrus" + "github.com/spf13/cobra" ) var completion = &cobra.Command{ diff --git a/pkg/app/app.go b/pkg/app/app.go index 9df4bd9f..caef4f11 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -33,12 +33,13 @@ import ( _ "github.com/openshift/origin/pkg/image/api/install" _ "github.com/openshift/origin/pkg/route/api/install" + "os" + "github.com/kubernetes-incubator/kompose/pkg/kobject" "github.com/kubernetes-incubator/kompose/pkg/loader" "github.com/kubernetes-incubator/kompose/pkg/transformer" "github.com/kubernetes-incubator/kompose/pkg/transformer/kubernetes" "github.com/kubernetes-incubator/kompose/pkg/transformer/openshift" - "os" ) const ( diff --git a/pkg/loader/compose/compose.go b/pkg/loader/compose/compose.go index 29a4ed67..e7e7251f 100644 --- a/pkg/loader/compose/compose.go +++ b/pkg/loader/compose/compose.go @@ -307,72 +307,67 @@ func (c *Compose) LoadFile(files []string) kobject.KomposeObject { logrus.Fatalf("Failed to load compose file: %v", err) } - // transform composeObject into komposeObject - composeServiceNames := composeObject.ServiceConfigs.Keys() - noSupKeys := checkUnsupportedKey(composeObject) for _, keyName := range noSupKeys { logrus.Warningf("Unsupported %s key - ignoring", keyName) } - for _, name := range composeServiceNames { - if composeServiceConfig, ok := composeObject.ServiceConfigs.Get(name); ok { - serviceConfig := kobject.ServiceConfig{} - serviceConfig.Image = composeServiceConfig.Image - serviceConfig.Build = composeServiceConfig.Build.Context - serviceConfig.ContainerName = composeServiceConfig.ContainerName - serviceConfig.Command = composeServiceConfig.Entrypoint - serviceConfig.Args = composeServiceConfig.Command - serviceConfig.Build = composeServiceConfig.Build.Context + for name, composeServiceConfig := range composeObject.ServiceConfigs.All() { + serviceConfig := kobject.ServiceConfig{} + serviceConfig.Image = composeServiceConfig.Image + serviceConfig.Build = composeServiceConfig.Build.Context + serviceConfig.ContainerName = composeServiceConfig.ContainerName + serviceConfig.Command = composeServiceConfig.Entrypoint + serviceConfig.Args = composeServiceConfig.Command + serviceConfig.Build = composeServiceConfig.Build.Context - envs := loadEnvVars(composeServiceConfig.Environment) - serviceConfig.Environment = envs + envs := loadEnvVars(composeServiceConfig.Environment) + serviceConfig.Environment = envs - // load ports - ports, err := loadPorts(composeServiceConfig.Ports) - if err != nil { - logrus.Fatalf("%q failed to load ports from compose file: %v", name, err) - } - serviceConfig.Port = ports - - serviceConfig.WorkingDir = composeServiceConfig.WorkingDir - - if composeServiceConfig.Volumes != nil { - for _, volume := range composeServiceConfig.Volumes.Volumes { - serviceConfig.Volumes = append(serviceConfig.Volumes, volume.String()) - } - } - - // canonical "Custom Labels" handler - // Labels used to influence conversion of kompose will be handled - // from here for docker-compose. Each loader will have such handler. - for key, value := range composeServiceConfig.Labels { - switch key { - case "kompose.service.type": - serviceConfig.ServiceType = handleServiceType(value) - case "kompose.service.expose": - serviceConfig.ExposeService = strings.ToLower(value) - } - } - - // convert compose labels to annotations - serviceConfig.Annotations = map[string]string(composeServiceConfig.Labels) - - serviceConfig.CPUSet = composeServiceConfig.CPUSet - serviceConfig.CPUShares = int64(composeServiceConfig.CPUShares) - serviceConfig.CPUQuota = int64(composeServiceConfig.CPUQuota) - serviceConfig.CapAdd = composeServiceConfig.CapAdd - serviceConfig.CapDrop = composeServiceConfig.CapDrop - serviceConfig.Expose = composeServiceConfig.Expose - serviceConfig.Privileged = composeServiceConfig.Privileged - serviceConfig.Restart = composeServiceConfig.Restart - serviceConfig.User = composeServiceConfig.User - serviceConfig.VolumesFrom = composeServiceConfig.VolumesFrom - serviceConfig.Stdin = composeServiceConfig.StdinOpen - serviceConfig.Tty = composeServiceConfig.Tty - - komposeObject.ServiceConfigs[name] = serviceConfig + // load ports + ports, err := loadPorts(composeServiceConfig.Ports) + if err != nil { + logrus.Fatalf("%q failed to load ports from compose file: %v", name, err) } + serviceConfig.Port = ports + + serviceConfig.WorkingDir = composeServiceConfig.WorkingDir + + if composeServiceConfig.Volumes != nil { + for _, volume := range composeServiceConfig.Volumes.Volumes { + serviceConfig.Volumes = append(serviceConfig.Volumes, volume.String()) + } + } + + // canonical "Custom Labels" handler + // Labels used to influence conversion of kompose will be handled + // from here for docker-compose. Each loader will have such handler. + for key, value := range composeServiceConfig.Labels { + switch key { + case "kompose.service.type": + serviceConfig.ServiceType = handleServiceType(value) + case "kompose.service.expose": + serviceConfig.ExposeService = strings.ToLower(value) + } + } + + // convert compose labels to annotations + serviceConfig.Annotations = map[string]string(composeServiceConfig.Labels) + + serviceConfig.CPUSet = composeServiceConfig.CPUSet + serviceConfig.CPUShares = int64(composeServiceConfig.CPUShares) + serviceConfig.CPUQuota = int64(composeServiceConfig.CPUQuota) + serviceConfig.CapAdd = composeServiceConfig.CapAdd + serviceConfig.CapDrop = composeServiceConfig.CapDrop + serviceConfig.Expose = composeServiceConfig.Expose + serviceConfig.Privileged = composeServiceConfig.Privileged + serviceConfig.Restart = composeServiceConfig.Restart + serviceConfig.User = composeServiceConfig.User + serviceConfig.VolumesFrom = composeServiceConfig.VolumesFrom + serviceConfig.Stdin = composeServiceConfig.StdinOpen + serviceConfig.Tty = composeServiceConfig.Tty + + komposeObject.ServiceConfigs[name] = serviceConfig } return komposeObject