minor updates

This commit is contained in:
Qiu Jian
2019-01-25 17:12:31 +08:00
committed by 屈轩
parent 70ae19b743
commit 9cf8417a93
+76 -43
View File
@@ -183,15 +183,16 @@ var ubuntu = SAWSImagePublisherInfo{
return "Linux"
},
GetOSDist: func(image SImage) string {
parts := strings.Split(image.ImageName, "/")
if len(parts) < 4 {
return "Ubuntu Core"
if strings.HasPrefix(image.ImageName, "ubuntu-minimal/") {
return "Ubuntu Minimal"
}
if strings.HasPrefix(image.ImageName, "ubuntu-rolling-") || strings.HasPrefix(image.ImageName, "ubuntu-core") {
return "Ubuntu Core"
} else {
if strings.HasPrefix(image.ImageName, "ubuntu/") {
return "Ubuntu"
}
if strings.HasPrefix(image.ImageName, "ubuntu-rolling-") || strings.HasPrefix(image.ImageName, "ubuntu-core") || strings.Index(image.ImageName, "core-edge") > 0 {
return "Ubuntu Core"
}
return "Ubuntu"
},
GetOSVersion: func(image SImage) string {
relStr := ubuntuReleasePattern.FindString(image.ImageName)
@@ -219,14 +220,8 @@ var ubuntu = SAWSImagePublisherInfo{
return ""
},
GetOSBuildID: func(image SImage) string {
parts := strings.Split(image.ImageName, "/")
if len(parts) >= 4 {
parts = strings.Split(parts[3], "-")
if len(parts) >= 5 {
return parts[len(parts)-1]
}
}
return ""
parts := strings.Split(image.ImageName, "-")
return parts[len(parts)-1]
},
}
@@ -409,18 +404,56 @@ var coreos = SAWSImagePublisherInfo{
},
}
var (
sqlServerPattern = regexp.MustCompile(`-SQL_(\d+)_(\w+)-`)
dotnetcorePattern = regexp.MustCompile(`-dotnetcore-`)
)
var windowsServer = SAWSImagePublisherInfo{
GetOSType: func(image SImage) string {
return "Windows"
if strings.HasPrefix(image.ImageName, "ubuntu-") || strings.HasPrefix(image.ImageName, "amzn-ami-") || strings.HasPrefix(image.ImageName, "amzn2-ami-") {
return "Linux"
} else {
return "Windows"
}
},
GetOSDist: func(image SImage) string {
return "Windows Server"
osStr := "Windows Server"
if strings.HasPrefix(image.ImageName, "ubuntu-") {
osStr = "Ubuntu"
} else if strings.HasPrefix(image.ImageName, "amzn-ami-") || strings.HasPrefix(image.ImageName, "amzn2-ami-") {
osStr = "Amazon Linux"
}
apps := make([]string, 0)
matchApp := sqlServerPattern.FindStringSubmatch(image.ImageName)
if len(matchApp) > 0 {
apps = append(apps, fmt.Sprintf("SQL Server %s %s", matchApp[1], matchApp[2]))
}
if dotnetcorePattern.MatchString(image.ImageName) {
apps = append(apps, ".Net Core")
}
if len(apps) > 0 {
osStr = fmt.Sprintf("%s with %s", osStr, strings.Join(apps, " "))
}
return osStr
},
GetOSVersion: func(image SImage) string {
if strings.HasPrefix(image.ImageName, "ubuntu-") {
return ubuntu.GetOSVersion(image)
}
if strings.HasPrefix(image.ImageName, "amzn-ami-") || strings.HasPrefix(image.ImageName, "amzn2-ami-") {
return amazon.GetOSVersion(image)
}
parts := strings.Split(image.ImageName, "-")
return strings.Join(parts[1:len(parts)-1], " ")
},
GetOSBuildID: func(image SImage) string {
if strings.HasPrefix(image.ImageName, "ubuntu-") {
return ubuntu.GetOSBuildID(image)
}
if strings.HasPrefix(image.ImageName, "amzn-ami-") || strings.HasPrefix(image.ImageName, "amzn2-ami-") {
return amazon.GetOSBuildID(image)
}
parts := strings.Split(image.ImageName, "-")
return parts[len(parts)-1]
},
@@ -428,7 +461,7 @@ var windowsServer = SAWSImagePublisherInfo{
var (
amazonVersionPattern = regexp.MustCompile(`-(\d{4})\.(\d{2})\.(rc-\d+|\d+)(\.(\d+))?`)
amazonVersionPattern2 = regexp.MustCompile(`-(\d+)\.(\d+)\.(\d{8})(\.(\d+))?`)
amazonVersionPattern2 = regexp.MustCompile(`-(\d{1,2})\.(\d{1,2})\.(\d{8})(\.(\d+))?`)
)
var amazon = SAWSImagePublisherInfo{
@@ -443,48 +476,48 @@ var amazon = SAWSImagePublisherInfo{
}
},
GetOSVersion: func(image SImage) string {
verStrs := amazonVersionPattern.FindStringSubmatch(image.ImageName)
if len(verStrs) > 3 {
return fmt.Sprintf("%s.%s.%s", verStrs[1], verStrs[2], verStrs[3])
}
verStrs = amazonVersionPattern2.FindStringSubmatch(image.ImageName)
verStrs := amazonVersionPattern2.FindStringSubmatch(image.ImageName)
if len(verStrs) > 3 {
return fmt.Sprintf("%s.%s.%s", verStrs[1], verStrs[2], verStrs[3][:6])
}
verStrs = amazonVersionPattern.FindStringSubmatch(image.ImageName)
if len(verStrs) > 3 {
return fmt.Sprintf("%s.%s.%s", verStrs[1], verStrs[2], verStrs[3])
}
return ""
},
GetOSBuildID: func(image SImage) string {
verStrs := amazonVersionPattern.FindStringSubmatch(image.ImageName)
if len(verStrs) > 5 {
return verStrs[5]
}
verStrs = amazonVersionPattern2.FindStringSubmatch(image.ImageName)
verStrs := amazonVersionPattern2.FindStringSubmatch(image.ImageName)
if len(verStrs) > 5 && len(verStrs[5]) > 0 {
return fmt.Sprintf("%s.%s", verStrs[3], verStrs[5])
} else if len(verStrs) > 3 {
return verStrs[3]
}
verStrs = amazonVersionPattern.FindStringSubmatch(image.ImageName)
if len(verStrs) > 5 {
return verStrs[5]
}
return ""
},
}
var awsImagePublishers = map[string]SAWSImagePublisherInfo{
"841258680906": rhel,
"309956199498": rhel,
"673060587306": debian,
"379101102735": debian,
"718707510307": centos,
"410186602215": centos,
"837727238323": ubuntu,
"099720109477": ubuntu,
"841869936221": suse,
"013907871322": suse,
"280032941352": coreos,
"595879546273": coreos,
"016951021795": windowsServer,
"801119661308": windowsServer,
"137112412989": amazon,
"141808717104": amazon,
"841258680906": rhel, // china
"309956199498": rhel, // international
"673060587306": debian, // china
"379101102735": debian, // international
"718707510307": centos, // china
"410186602215": centos, // international
"837727238323": ubuntu, // china
"099720109477": ubuntu, // internaltional
"841869936221": suse, // china
"013907871322": suse, // international
"280032941352": coreos, // china
"595879546273": coreos, // international
"016951021795": windowsServer, // china
"801119661308": windowsServer, // international
"141808717104": amazon, // china
"137112412989": amazon, // international
}
func getImageOSType(image SImage) string {