kvm: Add check if host meets the minimum requirements (#5369)

* kvm: Add check if host meets min req

* Fix typo

* Update serviceConfig.py

* Remove obsessive checks

* Update error message
This commit is contained in:
davidjumani 2021-09-17 10:21:05 +05:30 committed by GitHub
parent 981dac7bca
commit f0eac35e3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 6 deletions

View File

@ -495,6 +495,27 @@ class nfsConfig(serviceCfgBase):
logging.debug(formatExceptionInfo())
return False
class hostConfig(serviceCfgBase):
def __init__(self, syscfg):
super(hostConfig, self).__init__(syscfg)
self.serviceName = "Host"
def config(self):
try:
cfo = configFileOps("/etc/cloudstack/agent/agent.properties", self)
reservedMemory = float(cfo.getEntry("host.reserved.mem.mb").strip() or 1024)
totalMemory = float(bash("awk '/MemTotal/ { printf \"%.3f \\n\", $2/1024 }' /proc/meminfo").getStdout().strip())
if totalMemory < reservedMemory :
raise CloudRuntimeException("CloudStack requires more than %d MB memory since %d MB is reserved" %(reservedMemory, reservedMemory))
if int(bash('ip a | grep "^\\w" | grep -iv "^lo" | wc -l').getStdout()) < 1 :
raise CloudRuntimeException("CloudStack requires at least a single NIC")
return True
except Exception as e:
logging.debug(e)
return False
class securityPolicyConfigUbuntu(serviceCfgBase):
def __init__(self, syscfg):
super(securityPolicyConfigUbuntu, self).__init__(syscfg)

View File

@ -166,7 +166,8 @@ class sysConfigAgentUbuntu(sysConfigAgent):
super(sysConfigAgentUbuntu, self).__init__(glbEnv)
self.svo = serviceOpsUbuntu()
self.services = [securityPolicyConfigUbuntu(self),
self.services = [hostConfig(self),
securityPolicyConfigUbuntu(self),
networkConfigUbuntu(self),
libvirtConfigUbuntu(self),
firewallConfigUbuntu(self),
@ -177,7 +178,8 @@ class sysConfigAgentUbuntu(sysConfigAgent):
class sysConfigRedhat6(sysConfigAgentRedhatBase):
def __init__(self, glbEnv):
super(sysConfigRedhat6, self).__init__(glbEnv)
self.services = [cgroupConfig(self),
self.services = [hostConfig(self),
cgroupConfig(self),
securityPolicyConfigRedhat(self),
networkConfigRedhat(self),
libvirtConfigRedhat(self),
@ -189,7 +191,7 @@ class sysConfigRedhat6(sysConfigAgentRedhatBase):
class sysConfigRedhat5(sysConfigAgentRedhatBase):
def __init__(self, glbEnv):
super(sysConfigRedhat5, self).__init__(glbEnv)
self.services = [
self.services = [hostConfig(self),
securityPolicyConfigRedhat(self),
networkConfigRedhat(self),
libvirtConfigRedhat(self),
@ -200,7 +202,8 @@ class sysConfigRedhat5(sysConfigAgentRedhatBase):
class sysConfigRedhat7(sysConfigAgentRedhat7Base):
def __init__(self, glbEnv):
super(sysConfigRedhat7, self).__init__(glbEnv)
self.services = [securityPolicyConfigRedhat(self),
self.services = [hostConfig(self),
securityPolicyConfigRedhat(self),
networkConfigRedhat(self),
libvirtConfigRedhat(self),
firewallConfigAgent(self),
@ -211,7 +214,8 @@ class sysConfigRedhat7(sysConfigAgentRedhat7Base):
class sysConfigRedhat8(sysConfigAgentRedhat8Base):
def __init__(self, glbEnv):
super(sysConfigRedhat8, self).__init__(glbEnv)
self.services = [securityPolicyConfigRedhat(self),
self.services = [hostConfig(self),
securityPolicyConfigRedhat(self),
networkConfigRedhat(self),
libvirtConfigRedhat(self),
firewallConfigAgent(self),
@ -221,7 +225,8 @@ class sysConfigRedhat8(sysConfigAgentRedhat8Base):
class sysConfigSUSE(sysConfigAgentSUSE):
def __init__(self, glbEnv):
super(sysConfigSUSE, self).__init__(glbEnv)
self.services = [securityPolicyConfigSUSE(self),
self.services = [hostConfig(self),
securityPolicyConfigSUSE(self),
networkConfigSUSE(self),
libvirtConfigSUSE(self),
firewallConfigAgent(self),