diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/simplevpn.py | 15 | ||||
-rw-r--r-- | scripts/templates/eip-service.json.jinja | 1 |
2 files changed, 14 insertions, 2 deletions
diff --git a/scripts/simplevpn.py b/scripts/simplevpn.py index 02f4cb1..94adb36 100755 --- a/scripts/simplevpn.py +++ b/scripts/simplevpn.py @@ -1,11 +1,13 @@ #!/usr/bin/env python3 import argparse -import os +import os, sys import yaml from jinja2 import Template +AUTH_METHODS = ["anon", "sip"] + class EIPConfig: def __init__(self): @@ -13,6 +15,7 @@ class EIPConfig: self.locations = dict() self.gateways = dict() self.provider = dict() + self.auth = "" def parseConfig(provider_config): @@ -20,6 +23,7 @@ def parseConfig(provider_config): config = yaml.load(conf.read()) eip = EIPConfig() eip.openvpn.update(yamlListToDict(config['openvpn'])) + configureAuth(eip, config) for loc in config['locations']: eip.locations.update(yamlIdListToDict(loc)) @@ -28,6 +32,12 @@ def parseConfig(provider_config): eip.provider.update(yamlListToDict(config['provider'])) return eip +def configureAuth(eip, config): + auth = config.get('auth', 'anon') + if auth not in AUTH_METHODS: + print("ERROR: unknown auth method", auth) + sys.exit(1) + eip.auth = auth def yamlListToDict(values): vals = {} @@ -77,7 +87,8 @@ def produceEipConfig(config, obfs4_state, template): print(t.render( locations=config.locations, gateways=config.gateways, - openvpn=dictToStr(config.openvpn))) + openvpn=dictToStr(config.openvpn), + auth=config.auth)) def produceProviderConfig(config, template): diff --git a/scripts/templates/eip-service.json.jinja b/scripts/templates/eip-service.json.jinja index 189a422..5d55168 100644 --- a/scripts/templates/eip-service.json.jinja +++ b/scripts/templates/eip-service.json.jinja @@ -28,5 +28,6 @@ } }{{ "," if not loop.last }}{% endfor %} ], + "auth": "{{ auth }}", "openvpn_configuration": {{ openvpn|tojson(indent=8) }} } |