[lxc-devel] [lxd/master] Export kernel features
stgraber on Github
lxc-bot at linuxcontainers.org
Sat Mar 23 06:25:13 UTC 2019
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 301 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20190322/6655bbcf/attachment.bin>
-------------- next part --------------
From fa48ba0222869525b8f0e4cc177a19c800bd54db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 22 Mar 2019 23:11:43 -0400
Subject: [PATCH 1/4] api: Add kernel_features extension
---
doc/api-extensions.md | 3 +++
shared/version/api.go | 1 +
2 files changed, 4 insertions(+)
diff --git a/doc/api-extensions.md b/doc/api-extensions.md
index 1323dd7087..d30fc52cbd 100644
--- a/doc/api-extensions.md
+++ b/doc/api-extensions.md
@@ -707,3 +707,6 @@ Add a new GPU struct to the server resources, listing all usable GPUs on the sys
## resources\_numa
Shows the NUMA node for all CPUs and GPUs.
+
+## kernel\_features
+Exposes the state of optional kernel features through the server environment.
diff --git a/shared/version/api.go b/shared/version/api.go
index 7270678eb2..6481e4f786 100644
--- a/shared/version/api.go
+++ b/shared/version/api.go
@@ -143,6 +143,7 @@ var APIExtensions = []string{
"resources_cpu_socket",
"resources_gpu",
"resources_numa",
+ "kernel_features",
}
// APIExtensionsCount returns the number of available API extensions.
From 13248962bf090176cf508f9cf4114f3e2a595416 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 22 Mar 2019 23:12:23 -0400
Subject: [PATCH 2/4] shared/api: Add KernelFeatures
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
shared/api/server.go | 3 +++
1 file changed, 3 insertions(+)
diff --git a/shared/api/server.go b/shared/api/server.go
index 74fb07c2fd..5d7c249b65 100644
--- a/shared/api/server.go
+++ b/shared/api/server.go
@@ -23,6 +23,9 @@ type ServerEnvironment struct {
// API extension: projects
Project string `json:"project" yaml:"project"`
+
+ // API extension: kernel_features
+ KernelFeatures map[string]string `json:"kernel_features" yaml:"kernel_features"`
}
// ServerPut represents the modifiable fields of a LXD server configuration
From 23fc33fbfb3b6416047a447012bfb04ba59d5b28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 22 Mar 2019 23:12:01 -0400
Subject: [PATCH 3/4] lxd: Export kernel features
---
lxd/api_1.0.go | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lxd/api_1.0.go b/lxd/api_1.0.go
index a3a44c64c1..249691f342 100644
--- a/lxd/api_1.0.go
+++ b/lxd/api_1.0.go
@@ -201,6 +201,12 @@ func api10Get(d *Daemon, r *http.Request) Response {
ServerName: serverName,
}
+ env.KernelFeatures = map[string]string{
+ "netnsid_getifaddrs": fmt.Sprintf("%v", d.os.NetnsGetifaddrs),
+ "uevent_injection": fmt.Sprintf("%v", d.os.UeventInjection),
+ "unpriv_fscaps": fmt.Sprintf("%v", d.os.VFS3Fscaps),
+ }
+
drivers := readStoragePoolDriversCache()
for driver, version := range drivers {
if env.Storage != "" {
From 5352e707afa95bde621c322dd68cd8773d168f3d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Fri, 22 Mar 2019 23:20:20 -0400
Subject: [PATCH 4/4] shared/api: Sort ServerEnvironment struct
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
shared/api/server.go | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/shared/api/server.go b/shared/api/server.go
index 5d7c249b65..b2d961179f 100644
--- a/shared/api/server.go
+++ b/shared/api/server.go
@@ -10,22 +10,25 @@ type ServerEnvironment struct {
DriverVersion string `json:"driver_version" yaml:"driver_version"`
Kernel string `json:"kernel" yaml:"kernel"`
KernelArchitecture string `json:"kernel_architecture" yaml:"kernel_architecture"`
- KernelVersion string `json:"kernel_version" yaml:"kernel_version"`
- Server string `json:"server" yaml:"server"`
- ServerPid int `json:"server_pid" yaml:"server_pid"`
- ServerVersion string `json:"server_version" yaml:"server_version"`
- Storage string `json:"storage" yaml:"storage"`
- StorageVersion string `json:"storage_version" yaml:"storage_version"`
- // API extension: clustering
- ServerClustered bool `json:"server_clustered" yaml:"server_clustered"`
- ServerName string `json:"server_name" yaml:"server_name"`
+ // API extension: kernel_features
+ KernelFeatures map[string]string `json:"kernel_features" yaml:"kernel_features"`
+
+ KernelVersion string `json:"kernel_version" yaml:"kernel_version"`
// API extension: projects
Project string `json:"project" yaml:"project"`
- // API extension: kernel_features
- KernelFeatures map[string]string `json:"kernel_features" yaml:"kernel_features"`
+ Server string `json:"server" yaml:"server"`
+
+ // API extension: clustering
+ ServerClustered bool `json:"server_clustered" yaml:"server_clustered"`
+ ServerName string `json:"server_name" yaml:"server_name"`
+
+ ServerPid int `json:"server_pid" yaml:"server_pid"`
+ ServerVersion string `json:"server_version" yaml:"server_version"`
+ Storage string `json:"storage" yaml:"storage"`
+ StorageVersion string `json:"storage_version" yaml:"storage_version"`
}
// ServerPut represents the modifiable fields of a LXD server configuration
More information about the lxc-devel
mailing list