mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-17 23:47:07 +00:00
kata-env: kata-env error out when there is no VERSION_ID.
For example, under debian buster/sid. Those information should be provide with best effort instead of error out. Set name and version to "<<unknown>>" if they are not defined. Fixes: #1177 Signed-off-by: Yang Bo <bo@hyper.sh>
This commit is contained in:
parent
29dae85ad5
commit
4f51687550
@ -478,7 +478,7 @@ func TestEnvGetHostInfoNoOSRelease(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = getHostInfo()
|
||||
assert.Error(t, err)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestEnvGetHostInfoNoProcVersion(t *testing.T) {
|
||||
@ -600,7 +600,7 @@ func TestEnvGetEnvInfoNoOSRelease(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
_, err = getEnvInfo(configFile, config)
|
||||
assert.Error(t, err)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestEnvGetEnvInfoNoProcCPUInfo(t *testing.T) {
|
||||
|
16
cli/utils.go
16
cli/utils.go
@ -48,6 +48,8 @@ func getKernelVersion() (string, error) {
|
||||
// returned.
|
||||
func getDistroDetails() (name, version string, err error) {
|
||||
files := []string{osRelease, osReleaseClr}
|
||||
name = ""
|
||||
version = ""
|
||||
|
||||
for _, file := range files {
|
||||
contents, err := katautils.GetFileContents(file)
|
||||
@ -62,10 +64,10 @@ func getDistroDetails() (name, version string, err error) {
|
||||
lines := strings.Split(contents, "\n")
|
||||
|
||||
for _, line := range lines {
|
||||
if strings.HasPrefix(line, "NAME=") {
|
||||
if strings.HasPrefix(line, "NAME=") && name == "" {
|
||||
fields := strings.Split(line, "=")
|
||||
name = strings.Trim(fields[1], `"`)
|
||||
} else if strings.HasPrefix(line, "VERSION_ID=") {
|
||||
} else if strings.HasPrefix(line, "VERSION_ID=") && version == "" {
|
||||
fields := strings.Split(line, "=")
|
||||
version = strings.Trim(fields[1], `"`)
|
||||
}
|
||||
@ -76,7 +78,15 @@ func getDistroDetails() (name, version string, err error) {
|
||||
}
|
||||
}
|
||||
|
||||
return "", "", fmt.Errorf("failed to find expected fields in one of %v", files)
|
||||
if name == "" {
|
||||
name = unknown
|
||||
}
|
||||
|
||||
if version == "" {
|
||||
version = unknown
|
||||
}
|
||||
|
||||
return name, version, nil
|
||||
}
|
||||
|
||||
// genericGetCPUDetails returns the vendor and model of the CPU.
|
||||
|
@ -101,6 +101,8 @@ func TestGetDistroDetails(t *testing.T) {
|
||||
expectError bool
|
||||
}
|
||||
|
||||
const unknown = "<<unknown>>"
|
||||
|
||||
tmpdir, err := ioutil.TempDir("", "")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -144,11 +146,11 @@ VERSION_ID="%s"
|
||||
|
||||
_, _, err = getDistroDetails()
|
||||
// ENOENT
|
||||
assert.Error(t, err)
|
||||
assert.NoError(t, err)
|
||||
|
||||
data := []testData{
|
||||
{"", "", "", "", true},
|
||||
{"invalid", "", "", "", true},
|
||||
{"", "", unknown, unknown, false},
|
||||
{"invalid", "", unknown, unknown, false},
|
||||
{clrContents, "", clrExpectedName, clrExpectedVersion, false},
|
||||
{"", nonClrContents, nonClrExpectedName, nonClrExpectedVersion, false},
|
||||
{clrContents, nonClrContents, nonClrExpectedName, nonClrExpectedVersion, false},
|
||||
|
Loading…
Reference in New Issue
Block a user