| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- // Copyright 2019 Yunion
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package esxi
- type TOSType string
- type TOSArch string
- const (
- LINUX = TOSType("Linux")
- WINDOWS = TOSType("Windows")
- MACOS = TOSType("macOS")
- FREEBSD = TOSType("FreeBSD")
- SOLARIS = TOSType("Solaris")
- VMWARE = TOSType("VMware")
- X86 = TOSArch("x86")
- X86_64 = TOSArch("x86_64")
- )
- type SOsInfo struct {
- OsType TOSType
- OsDistribution string
- OsVersion string
- OsArch TOSArch
- }
- func asian(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Asianux Server", ver, arch}
- }
- func centos4_5(arch TOSArch) SOsInfo {
- return centos("4/5", arch)
- }
- func centos(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "CentOS", ver, arch}
- }
- func coreos(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "CoreOS Linux", ver, arch}
- }
- func macos(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{MACOS, "Mac OS", ver, arch}
- }
- func debian(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Debian", ver, arch}
- }
- func eComStationGuest(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{"", "eComStationGuest", ver, arch}
- }
- func fedora(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Fedora", ver, arch}
- }
- func freebsd(arch TOSArch) SOsInfo {
- return SOsInfo{FREEBSD, "FreeBSD", "", arch}
- }
- func rhel(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "RedHat Enterprise Linux", ver, arch}
- }
- func suse(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "SuSE", ver, arch}
- }
- func opensuse(arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "OpenSuSE", "?", arch}
- }
- func oracle(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Oracle", ver, arch}
- }
- func linux(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Generic", ver, arch}
- }
- func windows(dist string, arch TOSArch) SOsInfo {
- return SOsInfo{WINDOWS, dist, "", arch}
- }
- func solaris(ver string, arch TOSArch) SOsInfo {
- return SOsInfo{SOLARIS, "Solaris", ver, arch}
- }
- func turbo(arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Turbo Linux", "?", arch}
- }
- func ubuntu(arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Ubuntu", "?", arch}
- }
- func mandriva(arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Mandriva", "?", arch}
- }
- func mandrake(arch TOSArch) SOsInfo {
- return SOsInfo{LINUX, "Mandrake", "?", arch}
- }
- func vmware(ver string) SOsInfo {
- return SOsInfo{VMWARE, "ESX", ver, X86_64}
- }
- var (
- // https://vdc-repo.vmware.com/vmwb-repository/dcr-public/da47f910-60ac-438b-8b9b-6122f4d14524/16b7274a-bf8b-4b4c-a05e-746f2aa93c8c/doc/vim.vm.GuestOsDescriptor.GuestOsIdentifier.html
- GuestOsInfo = map[string]SOsInfo{
- "asianux3_64Guest": asian("3", X86_64),
- "asianux3Guest": asian("3", X86),
- "asianux4_64Guest": asian("4", X86_64),
- "asianux4Guest": asian("4", X86),
- "asianux5_64Guest": asian("5", X86_64),
- "asianux7_64Guest": asian("7", X86_64),
- "centos6_64Guest": centos("6", X86_64),
- "centos64Guest": centos4_5(X86_64),
- "centos6Guest": centos("6", X86),
- "centos7_64Guest": centos("7", X86_64),
- "centos7Guest": centos("7", X86),
- "centos8_64Guest": centos("8", X86),
- "centosGuest": centos4_5(X86),
- "coreos64Guest": coreos("", X86_64),
- "darwin10_64Guest": macos("10.6", X86_64),
- "darwin10Guest": macos("10.6", X86),
- "darwin11_64Guest": macos("10.7", X86_64),
- "darwin11Guest": macos("10.7", X86),
- "darwin12_64Guest": macos("10.8", X86_64),
- "darwin13_64Guest": macos("10.9", X86_64),
- "darwin14_64Guest": macos("10.10", X86_64),
- "darwin15_64Guest": macos("10.11", X86_64),
- "darwin16_64Guest": macos("10.12", X86_64),
- "darwin17_64Guest": macos("10.13", X86_64),
- "darwin18_64Guest": macos("10.14", X86_64),
- "darwin64Guest": macos("10.5", X86_64),
- "darwinGuest": macos("10.5", X86),
- "debian10_64Guest": debian("10", X86_64),
- "debian10Guest": debian("10", X86),
- "debian4_64Guest": debian("4", X86_64),
- "debian4Guest": debian("4", X86),
- "debian5_64Guest": debian("5", X86_64),
- "debian5Guest": debian("5", X86),
- "debian6_64Guest": debian("6", X86_64),
- "debian6Guest": debian("6", X86),
- "debian7_64Guest": debian("7", X86_64),
- "debian7Guest": debian("7", X86),
- "debian8_64Guest": debian("8", X86_64),
- "debian8Guest": debian("8", X86),
- "debian9_64Guest": debian("9", X86_64),
- "debian9Guest": debian("9", X86),
- "eComStation2Guest": eComStationGuest("2.0", X86),
- "eComStationGuest": eComStationGuest("1.x", X86),
- "fedora64Guest": fedora("?", X86_64),
- "fedoraGuest": fedora("?", X86),
- "freebsd64Guest": freebsd(X86_64),
- "freebsdGuest": freebsd(X86),
- //"genericLinuxGuest": linux("?", X86),
- "mandrakeGuest": mandrake(X86),
- "mandriva64Guest": mandriva(X86_64),
- "mandrivaGuest": mandriva(X86),
- "opensuse64Guest": opensuse(X86_64),
- "opensuseGuest": opensuse(X86),
- "oracleLinux6_64Guest": oracle("6", X86_64),
- "oracleLinux64Guest": oracle("4/5", X86_64),
- "oracleLinux6Guest": oracle("6", X86),
- "oracleLinux7_64Guest": oracle("7", X86_64),
- "oracleLinux7Guest": oracle("7", X86),
- "oracleLinuxGuest": oracle("4/5", X86),
- //"other24xLinux64Guest": linux("2.4", X86_64),
- //"other24xLinuxGuest": linux("2.4", X86),
- //"other26xLinux64Guest": linux("2.6", X86_64),
- //"other26xLinuxGuest": linux("2.6", X86),
- //"other3xLinux64Guest": linux("3.x", X86_64),
- //"other3xLinuxGuest": linux("3.x", X86_64),
- //"otherLinux64Guest": linux("2.2", X86_64),
- //"otherLinuxGuest": linux("2.2", X86),
- "redhatGuest": rhel("2.1", X86),
- "rhel2Guest": rhel("2", X86),
- "rhel3_64Guest": rhel("3", X86_64),
- "rhel3Guest": rhel("3", X86),
- "rhel4_64Guest": rhel("4", X86_64),
- "rhel4Guest": rhel("4", X86),
- "rhel5_64Guest": rhel("5", X86_64),
- "rhel5Guest": rhel("5", X86),
- "rhel6_64Guest": rhel("6", X86_64),
- "rhel6Guest": rhel("6", X86),
- "rhel7_64Guest": rhel("7", X86_64),
- "rhel7Guest": rhel("7", X86),
- "sles10_64Guest": suse("10", X86_64),
- "sles10Guest": suse("10", X86),
- "sles11_64Guest": suse("11", X86_64),
- "sles11Guest": suse("11", X86),
- "sles12_64Guest": suse("12", X86_64),
- "sles12Guest": suse("12", X86),
- "sles64Guest": suse("9", X86_64),
- "slesGuest": suse("9", X86),
- "solaris10_64Guest": solaris("10", X86_64),
- "solaris10Guest": solaris("10", X86),
- "solaris11_64Guest": solaris("11", X86_64),
- "solaris6Guest": solaris("6", X86),
- "solaris7Guest": solaris("7", X86),
- "solaris8Guest": solaris("8", X86),
- "solaris9Guest": solaris("9", X86),
- "suse64Guest": suse("?", X86_64),
- "suseGuest": suse("?", X86),
- "turboLinux64Guest": turbo(X86_64),
- "turboLinuxGuest": turbo(X86),
- "ubuntu64Guest": ubuntu(X86_64),
- "ubuntuGuest": ubuntu(X86),
- "vmkernel5Guest": vmware("5"),
- "vmkernel65Guest": vmware("6.5"),
- "vmkernel6Guest": vmware("6"),
- "vmkernelGuest": vmware("4"),
- "win2000AdvServGuest": windows("Windows 2000 Advanced Server", X86),
- "win2000ProGuest": windows("Windows 2000 Professional", X86),
- "win2000ServGuest": windows("Windows 2000 Server", X86),
- "win31Guest": windows("Windows 3.1", X86),
- "win95Guest": windows("Windows 95", X86),
- "win98Guest": windows("Windows 98", X86),
- "windows7_64Guest": windows("Windows 7", X86_64),
- "windows7Guest": windows("Windows 7", X86_64),
- "windows7Server64Guest": windows("Windows Server 2008 R2", X86_64),
- "windows8_64Guest": windows("Windows 8", X86_64),
- "windows8Guest": windows("Windows 8", X86),
- "windows8Server64Guest": windows("Windows 8 Server", X86_64),
- "windows9_64Guest": windows("Windows 10", X86_64),
- "windows9Guest": windows("Windows 10", X86),
- "windows9Server64Guest": windows("Windows 10 Server", X86_64),
- "windowsHyperVGuest": windows("Windows Hyper-V", X86_64),
- "winLonghorn64Guest": windows("Windows Longhorn", X86_64),
- "winLonghornGuest": windows("Windows Longhorn", X86),
- "winMeGuest": windows("Windows Millenium Edition", X86),
- "winNetBusinessGuest": windows("Windows Small Business Server 2003", X86),
- "winNetDatacenter64Guest": windows("Windows Server 2003 Datacenter Edition", X86_64),
- "winNetDatacenterGuest": windows("Windows Server 2003 Datacenter Edition", X86),
- "winNetEnterprise64Guest": windows("Windows Server 2003 Enterprise Edition", X86_64),
- "winNetEnterpriseGuest": windows("Windows Server 2003 Enterprise Edition", X86),
- "winNetStandard64Guest": windows("Windows Server 2003 Standard Edition", X86_64),
- "winNetStandardGuest": windows("Windows Server 2003 Standard Edition", X86),
- "winNetWebGuest": windows("Windows Server 2003 Web Edition", X86),
- "winNTGuest": windows("Windows NT 4", X86),
- "winVista64Guest": windows("Windows Vista", X86_64),
- "winVistaGuest": windows("Windows Vista", X86),
- "winXPHomeGuest": windows("Windows XP Home Edition", X86),
- "winXPPro64Guest": windows("Windows XP Professional Edition", X86_64),
- "winXPProGuest": windows("Windows XP Professional", X86),
- }
- )
|