10
scan/suse.go
10
scan/suse.go
@@ -184,16 +184,16 @@ func (o *suse) parseZypperLULines(stdout string) (models.Packages, error) {
|
||||
}
|
||||
|
||||
func (o *suse) parseZypperLUOneLine(line string) (*models.Package, error) {
|
||||
fs := strings.Fields(line)
|
||||
if len(fs) != 11 {
|
||||
ss := strings.Split(line, "|")
|
||||
if len(ss) != 6 {
|
||||
return nil, fmt.Errorf("zypper -q lu Unknown format: %s", line)
|
||||
}
|
||||
available := strings.Split(fs[8], "-")
|
||||
available := strings.Split(strings.TrimSpace(ss[4]), "-")
|
||||
return &models.Package{
|
||||
Name: fs[4],
|
||||
Name: strings.TrimSpace(ss[2]),
|
||||
NewVersion: available[0],
|
||||
NewRelease: available[1],
|
||||
Arch: fs[10],
|
||||
Arch: strings.TrimSpace(ss[5]),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,8 @@ func TestScanUpdatablePackages(t *testing.T) {
|
||||
stdout := `S | Repository | Name | Current Version | Available Version | Arch
|
||||
--+---------------------------------------------+-------------------------------+-----------------------------+-----------------------------+-------
|
||||
v | SLES12-SP2-Updates | SUSEConnect | 0.3.0-19.8.1 | 0.3.1-19.11.2 | x86_64
|
||||
v | SLES12-SP2-Updates | SuSEfirewall2 | 3.6.312-2.3.1 | 3.6.312-2.10.1 | noarch`
|
||||
v | SLES12-SP2-Updates | SuSEfirewall2 | 3.6.312-2.3.1 | 3.6.312-2.10.1 | noarch
|
||||
v | Clone of SLES11-SP3-Updates for x86_64 | ConsoleKit | 0.2.10-64.65.1 | 0.2.10-64.69.1 | x86_64`
|
||||
|
||||
var tests = []struct {
|
||||
in string
|
||||
@@ -51,6 +52,12 @@ v | SLES12-SP2-Updates | SuSEfirewall2
|
||||
NewRelease: "2.10.1",
|
||||
Arch: "noarch",
|
||||
},
|
||||
models.Package{
|
||||
Name: "ConsoleKit",
|
||||
NewVersion: "0.2.10",
|
||||
NewRelease: "64.69.1",
|
||||
Arch: "x86_64",
|
||||
},
|
||||
),
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user