changes to remove the need to pass services separately, when the node has access to them directly, also made a couple CoreServices methods more consistent to have the node as first param and service second

This commit is contained in:
Blake J. Harnden 2018-06-21 14:56:30 -07:00
parent b868454b5e
commit 0aca9d7809
11 changed files with 123 additions and 147 deletions

View file

@ -26,7 +26,7 @@ class UtilService(CoreService):
shutdown = ()
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
return ""
@ -37,14 +37,14 @@ class IPForwardService(UtilService):
startup = ("sh ipforward.sh",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
if os.uname()[0] == "Linux":
return cls.generateconfiglinux(node, filename, services)
return cls.generateconfiglinux(node, filename)
else:
raise Exception("unknown platform")
@classmethod
def generateconfiglinux(cls, node, filename, services):
def generateconfiglinux(cls, node, filename):
cfg = """\
#!/bin/sh
# auto-generated by IPForward service (utility.py)
@ -72,7 +72,7 @@ class DefaultRouteService(UtilService):
startup = ("sh defaultroute.sh",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
cfg = "#!/bin/sh\n"
cfg += "# auto-generated by DefaultRoute service (utility.py)\n"
for ifc in node.netifs():
@ -106,7 +106,7 @@ class DefaultMulticastRouteService(UtilService):
startup = ("sh defaultmroute.sh",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
cfg = "#!/bin/sh\n"
cfg += "# auto-generated by DefaultMulticastRoute service (utility.py)\n"
cfg += "# the first interface is chosen below; please change it "
@ -132,7 +132,7 @@ class StaticRouteService(UtilService):
custom_needed = True
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
cfg = "#!/bin/sh\n"
cfg += "# auto-generated by StaticRoute service (utility.py)\n#\n"
cfg += "# NOTE: this service must be customized to be of any use\n"
@ -173,7 +173,7 @@ class SshService(UtilService):
validate = ()
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Use a startup script for launching sshd in order to wait for host
key generation.
@ -241,7 +241,7 @@ class DhcpService(UtilService):
validate = ("pidof dhcpd",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Generate a dhcpd config file using the network address of
each interface.
@ -303,7 +303,7 @@ class DhcpClientService(UtilService):
validate = ("pidof dhclient",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Generate a script to invoke dhclient on all interfaces.
"""
@ -314,7 +314,7 @@ class DhcpClientService(UtilService):
cfg += "#mkdir -p /var/run/resolvconf/interface\n"
for ifc in node.netifs():
if hasattr(ifc, 'control') and ifc.control == True:
if hasattr(ifc, 'control') and ifc.control is True:
continue
cfg += "#ln -s /var/run/resolvconf/interface/%s.dhclient" % ifc.name
cfg += " /var/run/resolvconf/resolv.conf\n"
@ -335,7 +335,7 @@ class FtpService(UtilService):
validate = ("pidof vsftpd",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Generate a vsftpd.conf configuration file.
"""
@ -371,16 +371,16 @@ class HttpService(UtilService):
APACHEVER22, APACHEVER24 = (22, 24)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Generate an apache2.conf configuration file.
"""
if filename == cls.configs[0]:
return cls.generateapache2conf(node, filename, services)
return cls.generateapache2conf(node, filename)
elif filename == cls.configs[1]:
return cls.generateenvvars(node, filename, services)
return cls.generateenvvars(node, filename)
elif filename == cls.configs[2]:
return cls.generatehtml(node, filename, services)
return cls.generatehtml(node, filename)
else:
return ""
@ -400,7 +400,7 @@ class HttpService(UtilService):
return cls.APACHEVER22
@classmethod
def generateapache2conf(cls, node, filename, services):
def generateapache2conf(cls, node, filename):
lockstr = {cls.APACHEVER22:
'LockFile ${APACHE_LOCK_DIR}/accept.lock\n',
cls.APACHEVER24:
@ -538,7 +538,7 @@ TraceEnable Off
return cfg
@classmethod
def generateenvvars(cls, node, filename, services):
def generateenvvars(cls, node, filename):
return """\
# this file is used by apache2ctl - generated by utility.py:HttpService
# these settings come from a default Ubuntu apache2 installation
@ -553,7 +553,7 @@ export LANG
"""
@classmethod
def generatehtml(cls, node, filename, services):
def generatehtml(cls, node, filename):
body = """\
<!-- generated by utility.py:HttpService -->
<h1>%s web server</h1>
@ -581,7 +581,7 @@ class PcapService(UtilService):
meta = "logs network traffic to pcap packet capture files"
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Generate a startpcap.sh traffic logging script.
"""
@ -619,7 +619,7 @@ class RadvdService(UtilService):
validate = ("pidof radvd",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
"""
Generate a RADVD router advertisement daemon config file
using the network address of each interface.
@ -678,7 +678,7 @@ class AtdService(UtilService):
shutdown = ("pkill atd",)
@classmethod
def generateconfig(cls, node, filename, services):
def generateconfig(cls, node, filename):
return """
#!/bin/sh
echo 00001 > /var/spool/cron/atjobs/.SEQ