зеркало из https://github.com/mozilla/scribe.git
Merge pull request #7 from ameihm0912/master
add release test for amazon linux
This commit is contained in:
Коммит
ccdc782bb6
|
@ -0,0 +1,51 @@
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
//
|
||||||
|
// Contributor:
|
||||||
|
// - Aaron Meihm ameihm@mozilla.com
|
||||||
|
|
||||||
|
package vulnpolicy
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"scribe"
|
||||||
|
)
|
||||||
|
|
||||||
|
const amazon_expression = "^(Amazon Linux AMI.*)$"
|
||||||
|
|
||||||
|
func amazonGetReleaseTest(doc *scribe.Document, vuln Vulnerability) (string, error) {
|
||||||
|
reltestname := fmt.Sprintf("test-release-%v-%v", vuln.OS, vuln.Release)
|
||||||
|
relobjname := "obj-release-amazonsystemrelease"
|
||||||
|
// See if we have a release definition for this already, if not
|
||||||
|
// add it
|
||||||
|
for _, x := range doc.Tests {
|
||||||
|
if x.TestID == reltestname {
|
||||||
|
return reltestname, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
found := false
|
||||||
|
for _, x := range doc.Objects {
|
||||||
|
if x.Object == relobjname {
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
obj := scribe.Object{}
|
||||||
|
obj.Object = relobjname
|
||||||
|
obj.FileContent.Path = "/etc"
|
||||||
|
obj.FileContent.File = "^system-release$"
|
||||||
|
obj.FileContent.Expression = amazon_expression
|
||||||
|
doc.Objects = append(doc.Objects, obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
test := scribe.Test{}
|
||||||
|
test.TestID = reltestname
|
||||||
|
test.Object = relobjname
|
||||||
|
test.Regexp.Value = "Amazon Linux AMI release"
|
||||||
|
doc.Tests = append(doc.Tests, test)
|
||||||
|
|
||||||
|
return test.TestID, nil
|
||||||
|
}
|
|
@ -16,4 +16,5 @@ var OSList = []OS{
|
||||||
{"redhat"},
|
{"redhat"},
|
||||||
{"centos"},
|
{"centos"},
|
||||||
{"debian"},
|
{"debian"},
|
||||||
|
{"amazon"},
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,8 @@ func getReleaseTest(doc *scribe.Document, vuln Vulnerability) (string, error) {
|
||||||
return ubuntuGetReleaseTest(doc, vuln)
|
return ubuntuGetReleaseTest(doc, vuln)
|
||||||
} else if (vuln.OS == "redhat") || (vuln.OS == "centos") {
|
} else if (vuln.OS == "redhat") || (vuln.OS == "centos") {
|
||||||
return redhatGetReleaseTest(doc, vuln)
|
return redhatGetReleaseTest(doc, vuln)
|
||||||
|
} else if vuln.OS == "amazon" {
|
||||||
|
return amazonGetReleaseTest(doc, vuln)
|
||||||
}
|
}
|
||||||
return "", fmt.Errorf("unable to create release definition")
|
return "", fmt.Errorf("unable to create release definition")
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче