Skip to content

Commit

Permalink
Support SUSE Enterprise 11
Browse files Browse the repository at this point in the history
  • Loading branch information
kotakanbe committed Sep 26, 2017
1 parent fa96739 commit c838954
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 15 deletions.
9 changes: 1 addition & 8 deletions scan/redhat.go
Original file line number Diff line number Diff line change
Expand Up @@ -276,14 +276,7 @@ func (o *redhat) scanInstalledPackages() (models.Packages, error) {
}

installed := models.Packages{}
var cmd string
majorVersion, _ := o.Distro.MajorVersion()
if majorVersion < 6 {
cmd = "rpm -qa --queryformat '%{NAME} %{EPOCH} %{VERSION} %{RELEASE} %{ARCH}\n'"
} else {
cmd = "rpm -qa --queryformat '%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n'"
}
r := o.exec(cmd, noSudo)
r := o.exec(rpmQa(o.Distro), noSudo)
if !r.isSuccess() {
return nil, fmt.Errorf("Scan packages failed: %s", r)
}
Expand Down
15 changes: 8 additions & 7 deletions scan/suse.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,16 +135,17 @@ func (o *suse) rebootRequired() (bool, error) {
return false, fmt.Errorf("Failed to detect the last installed kernel : %v", r)
}
stdout := strings.Fields(r.Stdout)[0]
ss := strings.Split(stdout, ".")
rel := strings.Join(ss[0:len(ss)-2], ".")
lastInstalledKernelVer := fmt.Sprintf("%s-default", rel)

running := fmt.Sprintf("kernel-default-%s", o.Kernel.Release)
return running != lastInstalledKernelVer, nil
return !strings.Contains(stdout, strings.TrimSuffix(o.Kernel.Release, "-default")), nil
}

func (o *suse) scanUpdatablePackages() (models.Packages, error) {
r := o.exec("zypper --no-color -q lu", noSudo)
cmd := ""
if v, _ := o.Distro.MajorVersion(); v < 12 {
cmd = "zypper -q lu"
} else {
cmd = "zypper --no-color -q lu"
}
r := o.exec(cmd, noSudo)
if !r.isSuccess() {
return nil, fmt.Errorf("Failed to scan updatable packages: %v", r)
}
Expand Down
17 changes: 17 additions & 0 deletions scan/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,20 @@ func isRunningKernel(pack models.Package, family string, kernel models.Kernel) (
}
return false, false
}

func rpmQa(distro config.Distro) string {
const old = "rpm -qa --queryformat '%{NAME} %{EPOCH} %{VERSION} %{RELEASE} %{ARCH}\n'"
const new = "rpm -qa --queryformat '%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n'"
switch distro.Family {
case config.SUSEEnterpriseServer:
if v, _ := distro.MajorVersion(); v < 12 {
return old
}
return new
default:
if v, _ := distro.MajorVersion(); v < 6 {
return old
}
return new
}
}

0 comments on commit c838954

Please sign in to comment.