bundlewrap/bundles/transmission/metadata.py
Franziska Kunsmann b943d2d465
All checks were successful
bundlewrap/pipeline/head This commit looks good
rework iptables configuration
2021-03-21 10:30:04 +01:00

70 lines
2 KiB
Python

from bundlewrap.metadata import atomic
defaults = {
'apt': {
'packages': {
'transmission-daemon': {},
'transmission-remote-cli': {},
},
},
'icinga2_api': {
'transmission': {
'services': {
'TRANSMISSION PROCESS': {
'command_on_monitored_host': '/usr/lib/nagios/plugins/check_procs -a transmission-daemon -c 1:',
},
},
},
},
'transmission': {
'config': {
'message-level': 2,
'peer-port': 51413,
'port-forwarding-enabled': False,
'rename-partial-files': True,
'rpc-authentication-required': False,
'rpc-bind-address': '0.0.0.0',
'rpc-enabled': True,
'rpc-host-whitelist-enabled': False,
'rpc-port': 9091,
'rpc-url': '/transmission/',
'rpc-whitelist-enabled': False,
'start-added-torrents': True,
},
},
}
@metadata_reactor.provides(
'iptables/port_rules',
)
def iptables(metadata):
return {
'iptables': {
'port_rules': {
str(metadata.get('transmission/config/peer-port')): set('*'),
str(metadata.get('transmission/config/peer-port')) + '/udp': set('*'),
str(metadata.get('transmission/config/rpc-port')): atomic(metadata.get('transmission/restrict-to', set('*'))),
},
},
}
@metadata_reactor.provides(
'icinga2_api/transmission/services',
)
def icinga_web(metadata):
port = metadata.get('transmission/config/rpc-port')
path = metadata.get('transmission/config/rpc-url')
return {
'icinga2_api': {
'transmission': {
'services': {
'TRANSMISSION WEB INTERFACE': {
'command_on_monitored_host': f'/usr/local/share/icinga/plugins/check_http_url_for_string http://127.0.0.1:{port}{path} "Transmission"',
},
},
},
},
}