Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2630 from brauner/2018-09-20/remove_locking
api_extensions: introduce lxc_has_api_extension()
- Loading branch information
Showing
5 changed files
with
106 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# API extensions | ||
|
||
The changes below were introduced to the LXC API after the 3.0 API was finalized. | ||
|
||
They are all backward compatible and can be detected by client tools by | ||
called the `lxc_has_api_extension` function. | ||
|
||
## lxc\_log | ||
|
||
This introduces a way to initialize a logging instance from the API for a given | ||
container. | ||
|
||
## lxc\_config\_item\_is\_supported | ||
|
||
This introduces the `lxc_config_item_is_supported` function. It allows users to | ||
check whether their LXC instance supports a given configuration key. | ||
|
||
## console\_log | ||
|
||
This adds support to container's console log. The console log is implemented as | ||
an efficient ringbuffer. | ||
|
||
## reboot2 | ||
|
||
This adds `reboot2()` as a new API extension. This function properly waits | ||
until a reboot succeeded. It takes a timeout argument. When set to `> 0` | ||
`reboot2()` will block until the timeout is reached, if timeout is set to zero | ||
`reboot2()` will not block, if set to -1 `reboot2()` will block indefinitly. | ||
|
||
## mount\_injection | ||
|
||
This adds support for injecting and removing mounts into/from a running | ||
containers. Two new API functions `mount()` and `umount()` are added. They | ||
mirror the current mount and umount API of the kernel. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/* liblxcapi | ||
* | ||
* Copyright © 2018 Christian Brauner <christian.brauner@ubuntu.com>. | ||
* Copyright © 2018 Canonical Ltd. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2, as | ||
* published by the Free Software Foundation. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License along | ||
* with this program; if not, write to the Free Software Foundation, Inc., | ||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
*/ | ||
|
||
#ifndef __LXC_API_EXTENSIONS_H | ||
#define __LXC_API_EXTENSIONS_H | ||
|
||
#include "config.h" | ||
#include <stdio.h> | ||
#include <stdlib.h> | ||
|
||
/* | ||
* api_extensions is the list of all API extensions in the order they were | ||
* added. | ||
The following kind of changes come with a new extensions: | ||
- New public functions | ||
- New configuration key | ||
- New valid values for a configuration key | ||
*/ | ||
static char *api_extensions[] = { | ||
"lxc_log", | ||
"lxc_config_item_is_supported", | ||
"console_log", | ||
"reboot2", | ||
"mount_injection", | ||
"cgroup_relative", | ||
}; | ||
|
||
static size_t nr_api_extensions = sizeof(api_extensions) / sizeof(*api_extensions); | ||
|
||
#endif /* __LXC_API_EXTENSIONS_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters