Ejemplo n.º 1
0
func (daemon *Daemon) AddService(job *engine.Job) error {
	var srvs []pod.UserService

	podId := job.Args[0]
	data := job.Args[1]

	vm, container, err := daemon.GetServiceContainerInfo(podId)
	if err != nil {
		return err
	}

	services, err := servicediscovery.GetServices(vm, container)
	if err != nil {
		return err
	}

	json.Unmarshal([]byte(data), &srvs)
	if err != nil {
		return err
	}

	for _, s := range srvs {
		services = append(services, s)
	}

	return servicediscovery.ApplyServices(vm, container, services)
}
Ejemplo n.º 2
0
func (daemon *Daemon) AddService(podId, data string) error {
	var srvs []pod.UserService

	vm, container, err := daemon.GetServiceContainerInfo(podId)
	if err != nil {
		return err
	}

	services, err := servicediscovery.GetServices(vm, container)
	if err != nil {
		return err
	}

	json.Unmarshal([]byte(data), &srvs)
	if err != nil {
		return err
	}

	for _, s := range srvs {
		services = append(services, s)
	}

	if err := servicediscovery.ApplyServices(vm, container, services); err != nil {
		return err
	}

	return nil
}
Ejemplo n.º 3
0
func (daemon *Daemon) GetServices(podId string) ([]pod.UserService, error) {
	vm, container, err := daemon.GetServiceContainerInfo(podId)
	if err != nil {
		return nil, err
	}

	services, err := servicediscovery.GetServices(vm, container)
	if err != nil {
		return nil, err
	}

	return services, nil
}
Ejemplo n.º 4
0
func (daemon *Daemon) DeleteService(podId, data string) error {
	var srvs []pod.UserService
	var services []pod.UserService
	var services2 []pod.UserService
	var found int = 0

	vm, container, err := daemon.GetServiceContainerInfo(podId)
	if err != nil {
		return err
	}

	services, err = servicediscovery.GetServices(vm, container)
	if err != nil {
		return err
	}

	err = json.Unmarshal([]byte(data), &srvs)
	if err != nil {
		return err
	}

	for _, s := range services {
		shouldRemain := true
		for _, srv := range srvs {
			if s.ServiceIP == srv.ServiceIP && s.ServicePort == srv.ServicePort {
				shouldRemain = false
				found = 1
				break
			}
		}

		if shouldRemain {
			services2 = append(services2, s)
		}
	}

	if found == 0 {
		return fmt.Errorf("Pod %s doesn't use this service", podId)
	}

	if err := servicediscovery.ApplyServices(vm, container, services2); err != nil {
		return err
	}

	return nil
}
Ejemplo n.º 5
0
func (daemon *Daemon) GetServices(job *engine.Job) error {
	podId := job.Args[0]

	vm, container, err := daemon.GetServiceContainerInfo(podId)
	if err != nil {
		return err
	}

	services, err := servicediscovery.GetServices(vm, container)
	if err != nil {
		return err
	}

	v := &engine.Env{}
	v.SetJson("data", services)
	if _, err := v.WriteTo(job.Stdout); err != nil {
		return err
	}

	return nil
}