Fix issues for suse

This commit is contained in:
Yue Zhang
2014-11-24 16:09:01 +08:00
parent 8aff9f3738
commit f318df141c
2 changed files with 24 additions and 13 deletions
+2 -2
View File
@@ -200,8 +200,8 @@ def Deprovision(force=False, deluser=False):
protocol = proto.GetDefaultProtocol()
ovf = protocol.getOvf()
if ovf is not None and deluser:
print("WARNING! {0} account and entire home directory will be deleted.",
ovf.getUserName())
print ("WARNING! {0} account and entire home directory "
"will be deleted.").format(ovf.getUserName())
if not force:
confirm = raw_input("Do you want to proceed (y/n)")
+22 -11
View File
@@ -543,7 +543,8 @@ class DefaultDistro(object):
return shellutil.Run(cmd, chk_err=False)
def GetDhcpProcessId(self):
raise NotImplementedError('GetDhcpProcessId method missing')
ret= shellutil.RunGetOutput("pidof dhclient")
return ret[1] if ret[0] == 0 else None
def SetHostname(self, hostname):
fileutil.SetFileContents('/etc/hostname', hostname)
@@ -718,10 +719,6 @@ class UbuntuDistro(DebianDistro):
def StartNetwork(self):
return shellutil.Run("service networking start", chk_err=False)
def GetDhcpProcessId(self):
ret= shellutil.RunGetOutput("pidof dhclient")
return ret[1] if ret[0] == 0 else None
def SetDhcpHostname(self, hostname):
pass
@@ -744,7 +741,7 @@ class Ubuntu1204Distro(UbuntuDistro):
#Override
def GetDhcpProcessId(self):
ret= shellutil.RunGetOutput("pidof dhclient")
ret= shellutil.RunGetOutput("pidof dhclient3")
return ret[1] if ret[0] == 0 else None
class RedhatDistro(DefaultDistro):
@@ -834,19 +831,26 @@ class GentooDistro(DefaultDistro):
class SUSEDistro(DefaultDistro):
def __init__(self):
super(SUSEDistro, self).init()
self.dhcpClientName='dhcpcd'
def SetHostname(self, hostname):
fileutil.SetFileContents('/etc/HOSTNAME', hostname)
shellutil.Run("hostname {0}".format(hostname), chk_err=False)
def GetDhcpProcessId(self):
ret= shellutil.RunGetOutput("pidof {0}".format(self.dhcpClientName))
return ret[1] if ret[0] == 0 else None
def IsDhcpEnabled(self):
return True
def StopDhcpService(self):
return shellutil.Run("/sbin/service wickedd-dhcp4 stop", chk_err=False)
cmd = "/sbin/service {0} stop".format(self.dhcpClientName)
return shellutil.Run(cmd, chk_err=False)
def StartDhcpService(self):
return shellutil.Run("/sbin/service wickedd-dhcp4 start", chk_err=False)
cmd = "/sbin/service {0} start".format(self.dhcpClientName)
return shellutil.Run(cmd, chk_err=False)
def StartNetwork(self) :
return shellutil.Run("/sbin/service start networking", chk_err=False)
@@ -873,6 +877,11 @@ class SUSEDistro(DefaultDistro):
return ret
return shellutil.Run("insserv -r waagent", chk_err=False)
class SUSE12Distro(SUSE12Distro):
def __init__(self):
super(SUSE12Distro, self).__init__()
self.dhcpClientName = 'wickedd-dhcp4'
class FreeBSDDistro(DefaultDistro):
def __init__(self):
self.scsiConfigured = False
@@ -920,11 +929,13 @@ def GetDistro(distroInfo):
elif name == 'gentoo':
return CoreOSDistro()
elif name == 'suse':
return SUSEDistro()
if version < '1.2':
return SUSEDistro()
else:
return SUSE12Distro()
elif name == 'freebsd':
return FreeBSDDistro()
else:
return DefaultDistro()
return DefaultDistro()
CurrOSInfo = GetDistroInfo()
CurrOS = GetDistro(CurrOSInfo)