clean code

This commit is contained in:
Tuna 2016-08-25 00:34:54 +07:00
parent 3f94d778d7
commit 82ae7fab78
7 changed files with 84 additions and 215 deletions

View File

@ -54,141 +54,6 @@ func BeforeApp(c *cli.Context) error {
return nil return nil
} }
// Ps lists all rc, svc.
func Ps(c *cli.Context) {
//factory := cmdutil.NewFactory(nil)
//clientConfig, err := factory.ClientConfig()
//if err != nil {
// logrus.Fatalf("Failed to get Kubernetes client config: %v", err)
//}
//client := client.NewOrDie(clientConfig)
//
//if c.BoolT("svc") {
// fmt.Printf("%-20s%-20s%-20s%-20s\n", "Name", "Cluster IP", "Ports", "Selectors")
// for name := range p.Configs {
// var ports string
// var selectors string
// services, err := client.Services(api.NamespaceDefault).Get(name)
//
// if err != nil {
// logrus.Debugf("Cannot find service for: ", name)
// } else {
//
// for i := range services.Spec.Ports {
// p := strconv.Itoa(int(services.Spec.Ports[i].Port))
// ports += ports + string(services.Spec.Ports[i].Protocol) + "(" + p + "),"
// }
//
// for k, v := range services.ObjectMeta.Labels {
// selectors += selectors + k + "=" + v + ","
// }
//
// ports = strings.TrimSuffix(ports, ",")
// selectors = strings.TrimSuffix(selectors, ",")
//
// fmt.Printf("%-20s%-20s%-20s%-20s\n", services.ObjectMeta.Name,
// services.Spec.ClusterIP, ports, selectors)
// }
//
// }
//}
//
//if c.BoolT("rc") {
// fmt.Printf("%-15s%-15s%-30s%-10s%-20s\n", "Name", "Containers", "Images",
// "Replicas", "Selectors")
// for name := range p.Configs {
// var selectors string
// var containers string
// var images string
// rc, err := client.ReplicationControllers(api.NamespaceDefault).Get(name)
//
// /* Should grab controller, container, image, selector, replicas */
//
// if err != nil {
// logrus.Debugf("Cannot find rc for: ", string(name))
// } else {
//
// for k, v := range rc.Spec.Selector {
// selectors += selectors + k + "=" + v + ","
// }
//
// for i := range rc.Spec.Template.Spec.Containers {
// c := rc.Spec.Template.Spec.Containers[i]
// containers += containers + c.Name + ","
// images += images + c.Image + ","
// }
// selectors = strings.TrimSuffix(selectors, ",")
// containers = strings.TrimSuffix(containers, ",")
// images = strings.TrimSuffix(images, ",")
//
// fmt.Printf("%-15s%-15s%-30s%-10d%-20s\n", rc.ObjectMeta.Name, containers,
// images, rc.Spec.Replicas, selectors)
// }
// }
//}
}
// Delete deletes all rc, svc.
func Delete(c *cli.Context) {
//factory := cmdutil.NewFactory(nil)
//clientConfig, err := factory.ClientConfig()
//if err != nil {
// logrus.Fatalf("Failed to get Kubernetes client config: %v", err)
//}
//client := client.NewOrDie(clientConfig)
//
//for name := range p.Configs {
// if len(c.String("name")) > 0 && name != c.String("name") {
// continue
// }
//
// if c.BoolT("svc") {
// err := client.Services(api.NamespaceDefault).Delete(name)
// if err != nil {
// logrus.Fatalf("Unable to delete service %s: %s\n", name, err)
// }
// } else if c.BoolT("rc") {
// err := client.ReplicationControllers(api.NamespaceDefault).Delete(name)
// if err != nil {
// logrus.Fatalf("Unable to delete replication controller %s: %s\n", name, err)
// }
// }
//}
}
// Scale scales rc.
func Scale(c *cli.Context) {
//factory := cmdutil.NewFactory(nil)
//clientConfig, err := factory.ClientConfig()
//if err != nil {
// logrus.Fatalf("Failed to get Kubernetes client config: %v", err)
//}
//client := client.NewOrDie(clientConfig)
//
//if c.Int("scale") <= 0 {
// logrus.Fatalf("Scale must be defined and a positive number")
//}
//
//for name := range p.Configs {
// if len(c.String("rc")) == 0 || c.String("rc") == name {
// s, err := client.ExtensionsClient.Scales(api.NamespaceDefault).Get("ReplicationController", name)
// if err != nil {
// logrus.Fatalf("Error retrieving scaling data: %s\n", err)
// }
//
// s.Spec.Replicas = int32(c.Int("scale"))
//
// s, err = client.ExtensionsClient.Scales(api.NamespaceDefault).Update("ReplicationController", s)
// if err != nil {
// logrus.Fatalf("Error updating scaling data: %s\n", err)
// }
//
// fmt.Printf("Scaling %s to: %d\n", name, s.Spec.Replicas)
// }
//}
}
func validateFlags(opt kobject.ConvertOptions, singleOutput bool, dabFile, inputFile string) { func validateFlags(opt kobject.ConvertOptions, singleOutput bool, dabFile, inputFile string) {
if len(opt.OutFile) != 0 && opt.ToStdout { if len(opt.OutFile) != 0 && opt.ToStdout {
logrus.Fatalf("Error: --out and --stdout can't be set at the same time") logrus.Fatalf("Error: --out and --stdout can't be set at the same time")
@ -222,7 +87,7 @@ func validateFlags(opt kobject.ConvertOptions, singleOutput bool, dabFile, input
} }
} }
// Convert tranforms docker compose or dab file to k8s objects // Convert transforms docker compose or dab file to k8s objects
func Convert(c *cli.Context) { func Convert(c *cli.Context) {
inputFile := c.String("file") inputFile := c.String("file")
dabFile := c.String("bundle") dabFile := c.String("bundle")

View File

@ -110,71 +110,71 @@ func UpCommand() cli.Command {
} }
// PsCommand defines the kompose ps subcommand. // PsCommand defines the kompose ps subcommand.
func PsCommand() cli.Command { //func PsCommand() cli.Command {
return cli.Command{ // return cli.Command{
Name: "ps", // Name: "ps",
Usage: "Get active data in the kubernetes cluster", // Usage: "Get active data in the kubernetes cluster",
Action: func(c *cli.Context) { // Action: func(c *cli.Context) {
app.Ps(c) // app.Ps(c)
}, // },
Flags: []cli.Flag{ // Flags: []cli.Flag{
cli.BoolFlag{ // cli.BoolFlag{
Name: "service,svc", // Name: "service,svc",
Usage: "Get active services", // Usage: "Get active services",
}, // },
cli.BoolFlag{ // cli.BoolFlag{
Name: "replicationcontroller,rc", // Name: "replicationcontroller,rc",
Usage: "Get active replication controller", // Usage: "Get active replication controller",
}, // },
}, // },
} // }
} //}
// DeleteCommand defines the kompose delete subcommand. // DeleteCommand defines the kompose delete subcommand.
func DeleteCommand() cli.Command { //func DeleteCommand() cli.Command {
return cli.Command{ // return cli.Command{
Name: "delete", // Name: "delete",
Usage: "Remove instantiated services/rc from kubernetes", // Usage: "Remove instantiated services/rc from kubernetes",
Action: func(c *cli.Context) { // Action: func(c *cli.Context) {
app.Delete(c) // app.Delete(c)
}, // },
Flags: []cli.Flag{ // Flags: []cli.Flag{
cli.BoolFlag{ // cli.BoolFlag{
Name: "replicationcontroller,rc", // Name: "replicationcontroller,rc",
Usage: "Remove active replication controllers", // Usage: "Remove active replication controllers",
}, // },
cli.BoolFlag{ // cli.BoolFlag{
Name: "service,svc", // Name: "service,svc",
Usage: "Remove active services", // Usage: "Remove active services",
}, // },
cli.StringFlag{ // cli.StringFlag{
Name: "name", // Name: "name",
Usage: "Name of the object to remove", // Usage: "Name of the object to remove",
}, // },
}, // },
} // }
} //}
// ScaleCommand defines the kompose up subcommand. // ScaleCommand defines the kompose up subcommand.
func ScaleCommand() cli.Command { //func ScaleCommand() cli.Command {
return cli.Command{ // return cli.Command{
Name: "scale", // Name: "scale",
Usage: "Globally scale instantiated replication controllers", // Usage: "Globally scale instantiated replication controllers",
Action: func(c *cli.Context) { // Action: func(c *cli.Context) {
app.Scale(c) // app.Scale(c)
}, // },
Flags: []cli.Flag{ // Flags: []cli.Flag{
cli.IntFlag{ // cli.IntFlag{
Name: "scale", // Name: "scale",
Usage: "New number of replicas", // Usage: "New number of replicas",
}, // },
cli.StringFlag{ // cli.StringFlag{
Name: "replicationcontroller,rc", // Name: "replicationcontroller,rc",
Usage: "A specific replication controller to scale", // Usage: "A specific replication controller to scale",
}, // },
}, // },
} // }
} //}
// CommonFlags defines the flags that are in common for all subcommands. // CommonFlags defines the flags that are in common for all subcommands.
func CommonFlags() []cli.Flag { func CommonFlags() []cli.Flag {

View File

@ -30,7 +30,7 @@ import (
type Bundle struct { type Bundle struct {
} }
// load Image from bundles file // load image from dab file
func loadImage(service bundlefile.Service) (string, string) { func loadImage(service bundlefile.Service) (string, string) {
character := "@" character := "@"
if strings.Contains(service.Image, character) { if strings.Contains(service.Image, character) {
@ -39,8 +39,8 @@ func loadImage(service bundlefile.Service) (string, string) {
return "", "Invalid image format" return "", "Invalid image format"
} }
// load Environment Variable from bundles file // load environment variables from dab file
func loadEnvVarsfromBundle(service bundlefile.Service) ([]kobject.EnvVar, string) { func loadEnvVars(service bundlefile.Service) ([]kobject.EnvVar, string) {
envs := []kobject.EnvVar{} envs := []kobject.EnvVar{}
for _, env := range service.Env { for _, env := range service.Env {
character := "=" character := "="
@ -76,8 +76,8 @@ func loadEnvVarsfromBundle(service bundlefile.Service) ([]kobject.EnvVar, string
return envs, "" return envs, ""
} }
// load Ports from bundles file // load ports from dab file
func loadPortsfromBundle(service bundlefile.Service) ([]kobject.Ports, string) { func loadPorts(service bundlefile.Service) ([]kobject.Ports, string) {
ports := []kobject.Ports{} ports := []kobject.Ports{}
for _, port := range service.Ports { for _, port := range service.Ports {
var p api.Protocol var p api.Protocol
@ -98,7 +98,7 @@ func loadPortsfromBundle(service bundlefile.Service) ([]kobject.Ports, string) {
return ports, "" return ports, ""
} }
// load Bundlefile into KomposeObject // load dab file into KomposeObject
func (b *Bundle) LoadFile(file string) kobject.KomposeObject { func (b *Bundle) LoadFile(file string) kobject.KomposeObject {
komposeObject := kobject.KomposeObject{ komposeObject := kobject.KomposeObject{
ServiceConfigs: make(map[string]kobject.ServiceConfig), ServiceConfigs: make(map[string]kobject.ServiceConfig),
@ -129,13 +129,13 @@ func (b *Bundle) LoadFile(file string) kobject.KomposeObject {
} }
serviceConfig.Image = image serviceConfig.Image = image
envs, err := loadEnvVarsfromBundle(service) envs, err := loadEnvVars(service)
if err != "" { if err != "" {
logrus.Fatalf("Failed to load envvar from bundles file: " + err) logrus.Fatalf("Failed to load envvar from bundles file: " + err)
} }
serviceConfig.Environment = envs serviceConfig.Environment = envs
ports, err := loadPortsfromBundle(service) ports, err := loadPorts(service)
if err != "" { if err != "" {
logrus.Fatalf("Failed to load ports from bundles file: " + err) logrus.Fatalf("Failed to load ports from bundles file: " + err)
} }

View File

@ -36,8 +36,8 @@ import (
type Compose struct { type Compose struct {
} }
// load Environment Variable from compose file // load environment variables from compose file
func loadEnvVarsfromCompose(e map[string]string) []kobject.EnvVar { func loadEnvVars(e map[string]string) []kobject.EnvVar {
envs := []kobject.EnvVar{} envs := []kobject.EnvVar{}
for k, v := range e { for k, v := range e {
envs = append(envs, kobject.EnvVar{ envs = append(envs, kobject.EnvVar{
@ -48,8 +48,8 @@ func loadEnvVarsfromCompose(e map[string]string) []kobject.EnvVar {
return envs return envs
} }
// Load Ports from compose file // Load ports from compose file
func loadPortsFromCompose(composePorts []string) ([]kobject.Ports, error) { func loadPorts(composePorts []string) ([]kobject.Ports, error) {
ports := []kobject.Ports{} ports := []kobject.Ports{}
character := ":" character := ":"
for _, port := range composePorts { for _, port := range composePorts {
@ -87,7 +87,7 @@ func loadPortsFromCompose(composePorts []string) ([]kobject.Ports, error) {
return ports, nil return ports, nil
} }
// load Docker Compose file into KomposeObject // load compose file into KomposeObject
func (c *Compose) LoadFile(file string) kobject.KomposeObject { func (c *Compose) LoadFile(file string) kobject.KomposeObject {
komposeObject := kobject.KomposeObject{ komposeObject := kobject.KomposeObject{
ServiceConfigs: make(map[string]kobject.ServiceConfig), ServiceConfigs: make(map[string]kobject.ServiceConfig),
@ -152,11 +152,11 @@ func (c *Compose) LoadFile(file string) kobject.KomposeObject {
serviceConfig.ContainerName = composeServiceConfig.ContainerName serviceConfig.ContainerName = composeServiceConfig.ContainerName
// load environment variables // load environment variables
envs := loadEnvVarsfromCompose(composeServiceConfig.Environment.ToMap()) envs := loadEnvVars(composeServiceConfig.Environment.ToMap())
serviceConfig.Environment = envs serviceConfig.Environment = envs
// load ports // load ports
ports, err := loadPortsFromCompose(composeServiceConfig.Ports) ports, err := loadPorts(composeServiceConfig.Ports)
if err != nil { if err != nil {
logrus.Fatalf("%q failed to load ports from compose file: %v", name, err) logrus.Fatalf("%q failed to load ports from compose file: %v", name, err)
} }

View File

@ -223,7 +223,7 @@ func PortsExist(name string, service kobject.ServiceConfig) bool {
} }
} }
// create a kubernetes Service // create a k8s service
func CreateService(name string, service kobject.ServiceConfig, objects []runtime.Object) *api.Service { func CreateService(name string, service kobject.ServiceConfig, objects []runtime.Object) *api.Service {
svc := InitSvc(name, service) svc := InitSvc(name, service)
@ -238,6 +238,7 @@ func CreateService(name string, service kobject.ServiceConfig, objects []runtime
return svc return svc
} }
// load configurations to k8s objects
func UpdateKubernetesObjects(name string, service kobject.ServiceConfig, objects []runtime.Object) { func UpdateKubernetesObjects(name string, service kobject.ServiceConfig, objects []runtime.Object) {
// Configure the environment variables. // Configure the environment variables.
envs := ConfigEnvs(name, service) envs := ConfigEnvs(name, service)

View File

@ -214,7 +214,7 @@ func ConfigEnvs(name string, service kobject.ServiceConfig) []api.EnvVar {
return envs return envs
} }
// Generate a Kubernetes artifacts for each input type service // Generate a Kubernetes artifact for each input type service
func CreateKubernetesObjects(name string, service kobject.ServiceConfig, opt kobject.ConvertOptions) []runtime.Object { func CreateKubernetesObjects(name string, service kobject.ServiceConfig, opt kobject.ConvertOptions) []runtime.Object {
var objects []runtime.Object var objects []runtime.Object
@ -231,6 +231,7 @@ func CreateKubernetesObjects(name string, service kobject.ServiceConfig, opt kob
return objects return objects
} }
// Maps komposeObject to k8s objects
func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []runtime.Object { func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []runtime.Object {
// this will hold all the converted data // this will hold all the converted data
var allobjects []runtime.Object var allobjects []runtime.Object
@ -252,7 +253,7 @@ func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject.
return allobjects return allobjects
} }
// updateController updates the given object with the given pod template update function and ObjectMeta update function // Updates the given object with the given pod template update function and ObjectMeta update function
func UpdateController(obj runtime.Object, updateTemplate func(*api.PodTemplateSpec), updateMeta func(meta *api.ObjectMeta)) { func UpdateController(obj runtime.Object, updateTemplate func(*api.PodTemplateSpec), updateMeta func(meta *api.ObjectMeta)) {
switch t := obj.(type) { switch t := obj.(type) {
case *api.ReplicationController: case *api.ReplicationController:
@ -273,6 +274,7 @@ func UpdateController(obj runtime.Object, updateTemplate func(*api.PodTemplateSp
} }
} }
// Submit deployment and svc to k8s endpoint
func CreateObjects(client *client.Client, objects []runtime.Object) { func CreateObjects(client *client.Client, objects []runtime.Object) {
for _, v := range objects { for _, v := range objects {
switch t := v.(type) { switch t := v.(type) {

View File

@ -62,6 +62,7 @@ func initDeploymentConfig(name string, service kobject.ServiceConfig, replicas i
return dc return dc
} }
// Maps komposeObject to openshift objects
func (k *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []runtime.Object { func (k *OpenShift) Transform(komposeObject kobject.KomposeObject, opt kobject.ConvertOptions) []runtime.Object {
// this will hold all the converted data // this will hold all the converted data
var allobjects []runtime.Object var allobjects []runtime.Object