public IHttpActionResult Index(string handle)
        {
            var container  = containerService.GetContainerByHandle(handle);
            var properties = container.GetProperties();

            return(Json(properties));
        }
Esempio n. 2
0
        public ContainerInfo GetInfoByHandle(string handle)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(null);
            }

            var rawInfo      = container.GetInfo();
            var portMappings = rawInfo.Properties.Where(x => x.Key.Contains("ContainerPort:")).
                               Select(x => new PortMappingApiModel
            {
                ContainerPort = int.Parse(x.Key.Split(':')[1]),
                HostPort      = int.Parse(x.Value),
            });

            return(new ContainerInfo
            {
                MappedPorts = portMappings.ToList(),
                Properties = rawInfo.Properties,
                ExternalIP = options.MachineIp,
                ContainerIP = options.MachineIp,
            });
        }
        public IHttpActionResult Stop(string handle)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container != null)
            {
                container.Stop(true);
                return(Ok());
            }

            return(NotFound());
        }
        public IHttpActionResult Index(string handle)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(ResponseMessage(Request.CreateResponse(System.Net.HttpStatusCode.NotFound, string.Format("unknown handle: {0}", handle))));
            }
            var properties = container.GetProperties();

            return(Json(properties));
        }
Esempio n. 5
0
        public IHttpActionResult CurrentMemoryLimit(string handle)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(NotFound());
            }
            var limit = container.CurrentMemoryLimit();

            return(Json(new MemoryLimits {
                LimitInBytes = limit
            }));
        }
Esempio n. 6
0
        public void StreamInFile(Stream stream, string handle, string destination)
        {
            IContainer container = containerService.GetContainerByHandle(handle);
            var        path      = container.Directory.MapUserPath(destination);

            tarStreamService.WriteTarStreamToPath(stream, container, path);
        }
Esempio n. 7
0
        public override void OnOpen()
        {
            var handle = Arguments["handle"];

            logger.Info("onOpen: {0}", handle);

            runService.container = containerService.GetContainerByHandle(handle);
        }
Esempio n. 8
0
        public Stream StreamOutFile(string handle, string source)
        {
            IContainer container = containerService.GetContainerByHandle(handle);

            string path   = container.Directory.MapUserPath(source);
            Stream stream = tarStreamService.WriteTarToStream(path);

            return(stream);
        }
        public override void OnOpen()
        {
            var handle = Arguments["handle"];

            logger.Info("ContainerProcessHandler.OnOpen", new Dictionary <string, object> {
                { "handle", handle }
            });

            runService.container = containerService.GetContainerByHandle(handle);
        }
Esempio n. 10
0
        public IHttpActionResult SetGraceTime(string handle, GraceTime graceTime)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(NotFound());
            }

            if (graceTime.GraceTimeInNanoSeconds != null)
            {
                container.SetProperty("GraceTime", graceTime.GraceTimeInNanoSeconds.Value.ToString());
            }
            else
            {
                container.SetProperty("GraceTime", null);
            }

            return(Ok());
        }
Esempio n. 11
0
        public IHttpActionResult NetIn(string handle, NetInRequest request)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(NotFound());
            }
            try
            {
                var returnedPort = container.ReservePort(request.HostPort);
                container.SetProperty("ContainerPort:" + request.ContainerPort, returnedPort.ToString());
                return(Json(new NetInResponse {
                    HostPort = returnedPort
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Stop(string handle, int pid)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(NotFound());
            }
            var process = container.FindProcessById(pid);

            if (process == null)
            {
                return(NotFound());
            }
            process.Kill();
            return(Ok());
        }
Esempio n. 13
0
        public IHttpActionResult LimitMemory(string handle, MemoryLimits limits)
        {
            var container = containerService.GetContainerByHandle(handle);

            if (container == null)
            {
                return(NotFound());
            }

            if (limits.LimitInBytes != null)
            {
                container.LimitMemory(limits.LimitInBytes.Value);
            }
            return(Ok());
        }