func (handler *ScopesHandlersImpl) ScopesAddContainer(params scopes.AddContainerParams) middleware.Responder { defer trace.End(trace.Begin("ScopesAddContainer")) h := exec.GetHandle(params.Config.Handle) if h == nil { return scopes.NewAddContainerNotFound().WithPayload(&models.Error{Message: "container not found"}) } err := func() error { var ip *net.IP if params.Config.NetworkConfig.Address != nil { i := net.ParseIP(*params.Config.NetworkConfig.Address) if i == nil { return fmt.Errorf("invalid ip address") } ip = &i } return handler.netCtx.AddContainer(h, params.Config.NetworkConfig.NetworkName, ip) }() if err != nil { if _, ok := err.(*network.ResourceNotFoundError); ok { return scopes.NewAddContainerNotFound().WithPayload(errorPayload(err)) } return scopes.NewAddContainerInternalServerError().WithPayload(errorPayload(err)) } return scopes.NewAddContainerOK().WithPayload(h.String()) }
func (handler *ScopesHandlersImpl) ScopesAddContainer(params scopes.AddContainerParams) middleware.Responder { defer trace.End(trace.Begin(fmt.Sprintf("handle(%s)", params.Config.Handle))) h := exec.GetHandle(params.Config.Handle) if h == nil { return scopes.NewAddContainerNotFound().WithPayload(&models.Error{Message: "container not found"}) } err := func() error { var ip *net.IP if params.Config.NetworkConfig.Address != nil && *params.Config.NetworkConfig.Address != "" { i := net.ParseIP(*params.Config.NetworkConfig.Address) if i == nil { return fmt.Errorf("invalid ip address %q", *params.Config.NetworkConfig.Address) } ip = &i } if params.Config.NetworkConfig.Aliases != nil { log.Debugf("Links/Aliases: %#v", params.Config.NetworkConfig.Aliases) } options := &network.AddContainerOptions{ Scope: params.Config.NetworkConfig.NetworkName, IP: ip, Aliases: params.Config.NetworkConfig.Aliases, Ports: params.Config.NetworkConfig.Ports, } return handler.netCtx.AddContainer(h, options) }() if err != nil { if _, ok := err.(*network.ResourceNotFoundError); ok { return scopes.NewAddContainerNotFound().WithPayload(errorPayload(err)) } return scopes.NewAddContainerInternalServerError().WithPayload(errorPayload(err)) } return scopes.NewAddContainerOK().WithPayload(h.String()) }