[lxc-devel] [lxd/master] Add OS information to /1.0
stgraber on Github
lxc-bot at linuxcontainers.org
Wed Apr 8 01:15:31 UTC 2020
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/20200407/db24398f/attachment.bin>
-------------- next part --------------
From 74322dc9e92e0f82ef5bafe12bb28c7c44dd34c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Tue, 7 Apr 2020 21:02:02 -0400
Subject: [PATCH 1/5] shared/osarch: Coding style
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/osarch/release.go | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/shared/osarch/release.go b/shared/osarch/release.go
index 22ba8d09b6..c016d06d73 100644
--- a/shared/osarch/release.go
+++ b/shared/osarch/release.go
@@ -13,6 +13,7 @@ func GetLSBRelease() (map[string]string, error) {
if os.IsNotExist(err) {
return getLSBRelease("/usr/lib/os-release")
}
+
return osRelease, err
}
@@ -23,10 +24,12 @@ func getLSBRelease(filename string) (map[string]string, error) {
if err != nil {
return osRelease, err
}
+
for i, line := range strings.Split(string(data), "\n") {
if len(line) == 0 {
continue
}
+
if strings.HasPrefix(line, "#") {
continue
}
@@ -35,6 +38,7 @@ func getLSBRelease(filename string) (map[string]string, error) {
if len(tokens) != 2 {
return osRelease, fmt.Errorf("%s: invalid format on line %d", filename, i+1)
}
+
osRelease[tokens[0]] = strings.Trim(tokens[1], `'"`)
}
From 5dbc4ac9521a9ba8d9ff93daa5d75f1d4f36dd99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Tue, 7 Apr 2020 21:06:05 -0400
Subject: [PATCH 2/5] shared/osarch: Don't fail on missing os-release
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/osarch/release.go | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/shared/osarch/release.go b/shared/osarch/release.go
index c016d06d73..83e300995a 100644
--- a/shared/osarch/release.go
+++ b/shared/osarch/release.go
@@ -22,6 +22,10 @@ func getLSBRelease(filename string) (map[string]string, error) {
data, err := ioutil.ReadFile(filename)
if err != nil {
+ if os.IsNotExist(err) {
+ return osRelease, nil
+ }
+
return osRelease, err
}
From 03b09db1446c850f8fb5ec50cf546963229c55dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Tue, 7 Apr 2020 21:11:11 -0400
Subject: [PATCH 3/5] shared/api: Add OS information
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #7153
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
shared/api/server.go | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/shared/api/server.go b/shared/api/server.go
index 70f844a049..433b26287a 100644
--- a/shared/api/server.go
+++ b/shared/api/server.go
@@ -23,6 +23,10 @@ type ServerEnvironment struct {
// API extension: lxc_features
LXCFeatures map[string]string `json:"lxc_features" yaml:"lxc_features"`
+ // API extension: api_os
+ OSName string `json:"os_name" yaml:"os_name"`
+ OSVersion string `json:"os_version" yaml:"os_version"`
+
// API extension: projects
Project string `json:"project" yaml:"project"`
From 474dc14d6f7d201eb07adf1f8af947557ce81cdc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Tue, 7 Apr 2020 21:11:29 -0400
Subject: [PATCH 4/5] lxd/api: Add OS information
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>
---
lxd/api_1.0.go | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lxd/api_1.0.go b/lxd/api_1.0.go
index 4d4bbbb6a6..4c8f42f9e7 100644
--- a/lxd/api_1.0.go
+++ b/lxd/api_1.0.go
@@ -188,6 +188,11 @@ func api10Get(d *Daemon, r *http.Request) response.Response {
projectName = project.Default
}
+ osInfo, err := osarch.GetLSBRelease()
+ if err != nil {
+ return response.InternalError(err)
+ }
+
env := api.ServerEnvironment{
Addresses: addresses,
Architectures: architectures,
@@ -198,6 +203,8 @@ func api10Get(d *Daemon, r *http.Request) response.Response {
Kernel: uname.Sysname,
KernelArchitecture: uname.Machine,
KernelVersion: uname.Release,
+ OSName: osInfo["NAME"],
+ OSVersion: osInfo["VERSION_ID"],
Project: projectName,
Server: "lxd",
ServerPid: os.Getpid(),
From d039f97cdcb25d213941fa90717449813b3b642d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Tue, 7 Apr 2020 21:12:32 -0400
Subject: [PATCH 5/5] api: Add api_os
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>
---
doc/api-extensions.md | 4 ++--
shared/version/api.go | 1 +
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/doc/api-extensions.md b/doc/api-extensions.md
index 9274f246b4..57f30068dc 100644
--- a/doc/api-extensions.md
+++ b/doc/api-extensions.md
@@ -1002,9 +1002,9 @@ This allows multiple ipvlan NIC devices to be added to a container.
This adds USB and PCI devices to the output of `/1.0/resources`.
## resources\_cpu\_threads\_numa
-This indicates that the numa_node field is now recorded per-thread
+This indicates that the numa\_node field is now recorded per-thread
rather than per core as some hardware apparently puts threads in
different NUMA domains.
## resources\_cpu\_core\_die
-Exposes the die_id information on each core.
+Exposes the die\_id information on each core.
diff --git a/shared/version/api.go b/shared/version/api.go
index 04f131cc3a..87e58fd56b 100644
--- a/shared/version/api.go
+++ b/shared/version/api.go
@@ -204,6 +204,7 @@ var APIExtensions = []string{
"resources_usb_pci",
"resources_cpu_threads_numa",
"resources_cpu_core_die",
+ "api_os",
}
// APIExtensionsCount returns the number of available API extensions.
More information about the lxc-devel
mailing list