in cli_tools/import_precheck/precheck/check_osversion.go [78:114]
func (c *OSVersionCheck) createOSID(originalMajor string, originalMinor string, r *Report) string {
major, minor := originalMajor, originalMinor
switch c.OSInfo.ShortName {
case "":
r.Info("Unable to determine OS.")
return ""
case osinfo.Linux:
// OS config returns "linux" as the distro when it can't find a more specific match.
r.Info("Detected generic Linux system.")
return ""
case osinfo.Windows:
r.Info("Detected Windows system.")
// OS config uses NT version numbers, while cli_tools/common/distro uses marketing verions.
windowsMajor, windowsMinor, err :=
distro.WindowsServerVersionforNTVersion(originalMajor, originalMinor)
if err == nil {
major, minor = windowsMajor, windowsMinor
}
}
release, err := distro.FromComponents(c.OSInfo.ShortName, major, minor, c.OSInfo.Architecture)
if err != nil {
r.Info(err.Error())
return ""
}
osID := release.AsGcloudArg()
if osID != "" {
return osID
}
// If the distro package can't determine the osID, attempt to create one using
// the format "os-version".
if c.OSInfo.ShortName != osinfo.Linux && c.OSInfo.ShortName != "" && c.OSInfo.Version != "" {
return fmt.Sprintf("%s-%s", c.OSInfo.ShortName, c.OSInfo.Version)
}
return ""
}