MCPcopy Create free account
hub / github.com/apache/cloudstack / __init__

Method __init__

python/lib/cloudutils/utilities.py:105–157  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

103
104class Distribution:
105 def __init__(self):
106 self.distro = "Unknown"
107 self.release = "Unknown"
108
109 if os.path.exists("/etc/fedora-release"):
110 self.distro = "Fedora"
111 elif os.path.exists("/etc/redhat-release"):
112 version = open("/etc/redhat-release").readline()
113 if (version.find("Red Hat Enterprise Linux Server release 6") != -1 or version.find("Scientific Linux release 6") != -1 or
114 version.find("CentOS Linux release 6") != -1 or version.find("CentOS release 6.") != -1):
115 self.distro = "RHEL6"
116 elif (version.find("Red Hat Enterprise Linux Server release 7") != -1 or version.find("Scientific Linux release 7") != -1 or
117 version.find("CentOS Linux release 7") != -1 or version.find("CentOS release 7.") != -1):
118 self.distro = "RHEL7"
119 elif (version.find("Red Hat Enterprise Linux Server release 8") != -1 or version.find("Scientific Linux release 8") != -1 or
120 version.find("CentOS Linux release 8") != -1 or version.find("CentOS release 8.") != -1 or
121 version.find("Linux release 8") != -1):
122 self.distro = "RHEL8"
123 elif (version.find("Red Hat Enterprise Linux Server release 9") != -1 or version.find("Scientific Linux release 9") != -1 or
124 version.find("Red Hat Enterprise Linux release 9") != -1 or version.find("Linux release 9.") != -1 or
125 version.find("Linux release 9") != -1):
126 self.distro = "RHEL9"
127 elif (version.find("Red Hat Enterprise Linux Server release 10") != -1 or version.find("Scientific Linux release 10") != -1 or
128 version.find("Red Hat Enterprise Linux release 10") != -1 or version.find("Linux release 10.") != -1 or
129 version.find("Linux release 10") != -1):
130 self.distro = "RHEL10"
131 elif version.find("CentOS") != -1:
132 self.distro = "CentOS"
133 else:
134 self.distro = "RHEL5"
135 elif os.path.exists("/etc/legal") and "Ubuntu" in open("/etc/legal").read(-1):
136 self.distro = "Ubuntu"
137 kernel = bash("uname -r").getStdout()
138 if kernel.find("2.6.32") != -1:
139 self.release = "10.04"
140 self.arch = bash("uname -m").getStdout()
141 elif os.path.exists("/usr/bin/lsb_release"):
142 o = bash("/usr/bin/lsb_release -i")
143 distributor = o.getStdout().split(":\t")[1]
144 if "Debian" in distributor:
145 # This obviously needs a rewrite at some point
146 self.distro = "Ubuntu"
147 else:
148 raise UnknownSystemException(distributor)
149 elif os.path.exists("/etc/os-release"):
150 version = open("/etc/os-release").readline()
151 distributor = version.split("=")[1].replace('"', '').strip()
152 if "SUSE" in distributor or "SLES" in distributor:
153 self.distro = "SUSE"
154 else:
155 raise UnknownSystemException(distributor)
156 else:
157 raise UnknownSystemException
158
159 def getVersion(self):
160 return self.distro

Callers

nothing calls this directly

Calls 8

bashClass · 0.85
readlineMethod · 0.80
replaceMethod · 0.80
existsMethod · 0.65
findMethod · 0.65
readMethod · 0.45
getStdoutMethod · 0.45

Tested by

no test coverage detected