Michael Crosby
904bae3247
Merge pull request #348 from avagin/api-nsexec
...
nsenter: remove a proxy process
2015-01-26 13:08:02 -08:00
Andrey Vagin
8d8242aa8a
nsenter: add tests
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-26 23:12:50 +03:00
Andrey Vagin
82367938b7
nsenter: remove a proxy process
...
Currently nsexec() creates a proxy process to enter into a pid namespace.
It isn't good, because we need to proxy an exit code and signals.
We can use CLONE_PARENT to fork a process with the right parent.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-26 23:12:50 +03:00
Andrey Vagin
11b2dab1c5
nsenter: add a macros to print errors
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-26 19:44:44 +03:00
Andrey Vagin
e77b238a83
namespaces: don't send a container config twice
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-26 19:44:44 +03:00
Mrunal Patel
fae3abdadd
Merge pull request #342 from avagin/api-next
...
new-api: implement Wait, WaitProcess
2015-01-21 16:59:05 -08:00
Andrew Vagin
61fef16f4a
new-api: implement Wait, WaitProcess
...
Signed-off-by: Andrew Vagin <avagin@openvz.org>
2015-01-21 18:46:01 +03:00
Andrey Vagin
e79e87e426
cgroup/systemd: set config.Cgroups.Freezer
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-21 18:46:00 +03:00
Andrey Vagin
6fc1dd5f25
integration: check a container state after resumning the CT
...
Otherwise CT will be left in a frozen state in a fail case
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-21 18:46:00 +03:00
Andrey Vagin
5162e5a81c
integration: check container.Processes()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-21 18:46:00 +03:00
Andrey Vagin
10f0ac2921
new-api: remove nsenter.c
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-21 18:46:00 +03:00
Andrey Vagin
f0c20b5601
new-api: remove DefaultCreateCommand()
...
Signed-off-by: Andrew Vagin <avagin@openvz.org>
2015-01-21 18:45:57 +03:00
Mrunal Patel
c70b6812b5
Merge pull request #339 from avagin/api-freezer
...
new-api: implement Pause() and Resume()
2015-01-19 15:17:45 -08:00
Andrey Vagin
5138417f80
integration: add test to check Pause and Resume operations
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-19 22:25:52 +03:00
Andrey Vagin
02c1de6f11
cgroups: set a freezer state before calling FreezerGroup.Set()
...
My previous patch moved the setting of the freezer state after the Set()
command. It's wrong, because this command uses it, so we need to set the
freezer state before the command and rollback it in an error case.
Fixes: 13a5703
("cgroups: don't change a freezer state if an operation failed")
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-19 17:38:26 +03:00
Andrey Vagin
dcb3bca32c
namespaces: destroy cgroups only on error paths
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-19 17:38:26 +03:00
Andrey Vagin
9c50d819ae
new-api: implement Pause() and Resume()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-19 17:38:26 +03:00
Mrunal Patel
9586935441
Merge pull request #334 from avagin/api-test
...
new-api: integration: check that a process can be executed in an existing CT
2015-01-15 16:55:15 -08:00
Andrew Vagin
7b33e53e4a
integration: check that a process can be executed in an existing CT
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 23:48:28 +03:00
Mrunal Patel
cc411c37bd
Merge pull request #333 from avagin/api-console
...
new-api: add Console to ProcessConfig
2015-01-15 12:11:12 -08:00
Andrey Vagin
46e62c9204
nsinit: return console
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 18:22:47 +03:00
Andrey Vagin
76d395eff2
new-api: add Console to ProcessConfig
...
Add ability to execute a process with a specified terminal.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 18:22:47 +03:00
Victor Marmol
0f9f14c1ac
Merge pull request #332 from mrunalp/vendor/glog
...
Vendors glog dependency for the api branch.
2015-01-14 17:08:33 -08:00
Mrunal Patel
085a8fbff7
Vendors glog dependency for the api branch.
...
Signed-off-by: Mrunal Patel <mrunalp@gmail.com> (github: mrunalp)
2015-01-14 20:01:05 -05:00
Victor Marmol
c1a4b31593
Merge pull request #330 from avagin/api-cgroups
...
new-api: implement fs and systemd cgroup managers
2015-01-14 14:50:14 -08:00
Andrey Vagin
6334be0ac5
cgroups: add TODO before NewCgroupManager()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 01:45:49 +03:00
Andrey Vagin
4eaff5e14e
cgroups: don't change a freezer state if an operation failed
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 01:45:49 +03:00
Andrey Vagin
083d91f8c3
cgroups: Add comments for methods of cgroup managers
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 01:45:49 +03:00
Andrey Vagin
ee6e585e21
cgroups: replace SetPaths on LoadCgroupManager
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 00:44:14 +03:00
Andrey Vagin
ba4257a146
new-api: add the Freezer method to cgroup.Manager
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 00:43:14 +03:00
Andrey Vagin
59e66b818d
nsinit: add getContainer()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 00:43:13 +03:00
Andrey Vagin
6dd7552537
new-api: implement fs and systemd cgroup managers
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2015-01-15 00:43:13 +03:00
Victor Marmol
a7ab930d8d
Merge pull request #311 from avagin/api-linux
...
new-api: execute a process inside an existing container
2015-01-13 14:59:29 -08:00
Andrey Vagin
195a08efbc
new-api: set Cloneflags in namespace.Exec()
...
This place looks more suitable.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-25 18:44:10 +03:00
Andrey Vagin
d572094b75
new-api: execute a process inside an existing container
...
A new constructor function (like nsenter) is added in this patch. This
function gets arguments from environment variables and its behaviour doesn't
depend on a command line arguments.
A program which calls factory.StartInitialization() must import the nsenter
package. It looks ugly, but I don't know another way how to enter into CT from
a go code.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-25 18:44:10 +03:00
Andrey Vagin
11ce56a9e0
new-api: clean up startInitProcess()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-24 00:19:18 +03:00
Andrey Vagin
13841ef37d
new-api: return the Running state only if the init process is alive
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-23 16:30:37 +03:00
Andrey Vagin
1a380ac436
nsinit: remove ticks around nsenter
...
If we really need these command, we need to expand API.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-23 16:30:37 +03:00
Victor Marmol
e1b4ec3363
Merge pull request #306 from avagin/api-linux-2
...
Use namespace.Exec() and namespace.Init() to execute processes in CT
2014-12-19 07:44:16 -08:00
Andrey Vagin
c912207636
namespaces: combine Process.Env and Container.Env
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 14:48:16 +03:00
Andrey Vagin
86653c66a3
libcontinaer: use new API in integration tests
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 14:48:16 +03:00
Andrey Vagin
540f44d3b2
process: use io.Reader instead of io.WriteCloser for standard fds
...
Could someone explain why we should close this fds? Usually users
cares about closing them or not.
For example exec.Cmd declares them as io.Reader.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 14:48:16 +03:00
Andrey Vagin
7996829914
libcontainer: optimize updateStateFile()
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 14:48:15 +03:00
Andrey Vagin
5ecd29c1f2
linux_container: fork an init process in a new set of namespaces
...
Use namespace.Exec() and namespace.Init() to execute processes in CT.
Now an init process is actually executed in a new container. This series
doesn't change code about creating containers, it only reworks code according
with new API.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 14:47:04 +03:00
Andrey Vagin
c406a6b6e0
nsinit: clean up
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 12:32:34 +03:00
Andrey Vagin
ce9d63376f
libcontainer: move State in the configs package
...
We are going to import the namespaces package into libcontainer,
so libcontainer should not be imported into namespaces.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 12:32:34 +03:00
Andrey Vagin
7038ddbc8c
libcontainer: move Config in a separate package
...
We are going to import the namespaces package into libcontainer,
so libcontainer should not be imported into namespaces.
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-19 12:32:34 +03:00
Victor Marmol
c44e63a62d
Merge pull request #299 from avagin/api-linux
...
Prepare ground for moving on new API
2014-12-18 09:22:17 -08:00
Andrey Vagin
44024d0c47
Makefile: get the glog package
...
Signed-off-by: Andrey Vagin <avagin@openvz.org>
2014-12-17 07:39:18 +03:00
Andrey Vagin
8e9a6d28d2
linux_container: execute an init process in a new CT
...
Here is a first step to implement a new API. Currently the init
processes is executed without namespaces and cgroups.
Signed-off-by: Andrew Vagin <avagin@openvz.org>
2014-12-17 07:39:18 +03:00