renamed sample plugin to avoid namespace conflict.

This commit is contained in:
Stefan Midjich 2016-04-16 18:48:03 +02:00
parent 0ac157116b
commit d7a55dd9e6
4 changed files with 41 additions and 1 deletions

View File

@ -1,4 +1,9 @@
# Lists all the plugins, or jobs, and whether they are enabled or not. Each
# section name must correspond to a plugin name in the plugins dir.
[logging]
[sample_log]
enabled = True
[iptables]
enabled = True
command_mac = iptables -t mangle -D internet -m mac --mac-source "{mac_address}" -j RETURN
command_ip = iptables -t mangle -D internet -m tcp --source "{ip_address}" -j RETURN

0
plugins/__init__.py Normal file
View File

35
plugins/iptables.py Normal file
View File

@ -0,0 +1,35 @@
# Add an iptables rule
from logging import getLogger, DEBUG, WARN, INFO
from portal import logHandler, logFormatter
# Try to import arping for mac_from_ip(), otherwise use just the client IP.
only_ip = False
try:
from sh import arping
except ImportError:
only_ip = True
pass
def run(arg):
environ = arg['environ']
l = getLogger('plugin_logging')
l.addHandler(logHandler)
l.setLevel(DEBUG)
client_ip = environ.get('REMOTE_ADDR')
if only_ip:
if not client_ip:
return {
'error': 'Unknown client IP',
'status': False
}
else:
client_mac = mac_from_ip(client_ip)
# Try to get the mac address from the IP. Requires arping installed.
def mac_from_ip(ip):
return