summaryrefslogtreecommitdiff
path: root/src/leap/eip/config.py
diff options
context:
space:
mode:
authorkali <kali@leap.se>2012-09-25 05:48:06 +0900
committerkali <kali@leap.se>2012-10-02 05:27:15 +0900
commitabf481cab381a86d8a9c5607a131b56636081382 (patch)
tree813ef6de78207cde08da6afa5f73e5d52af1e385 /src/leap/eip/config.py
parent5d8e518d03e9fd045a75a63fec79b52392266c26 (diff)
refactored jsonconfig, included jsonschema validation
and type casting.
Diffstat (limited to 'src/leap/eip/config.py')
-rw-r--r--src/leap/eip/config.py39
1 files changed, 28 insertions, 11 deletions
diff --git a/src/leap/eip/config.py b/src/leap/eip/config.py
index 24e837d0..7c9bf335 100644
--- a/src/leap/eip/config.py
+++ b/src/leap/eip/config.py
@@ -55,21 +55,38 @@ def get_socket_path():
def get_eip_gateway():
"""
- return the first host in the list of hosts
- under gateways list
+ return the first host in eip service config
+ that matches the name defined in the eip.json config
+ file.
"""
+ placeholder = "testprovider.example.org"
+
eipconfig = EIPConfig()
+ #import ipdb;ipdb.set_trace()
eipconfig.load()
- conf = eipconfig.get_config()
- gateways = conf.get('gateways', None)
+ conf = eipconfig.config
+
+ primary_gateway = conf.get('primary_gateway', None)
+ if not primary_gateway:
+ return placeholder
+
+ eipserviceconfig = EIPServiceConfig()
+ eipserviceconfig.load()
+ eipsconf = eipserviceconfig.get_config()
+ gateways = eipsconf.get('gateways', None)
+ if not gateways:
+ logger.error('missing gateways in eip service config')
+ return placeholder
if len(gateways) > 0:
- # we just pick first
- gw = gateways[0]
- hosts = gw['hosts']
- if len(hosts) > 0:
- return hosts[0]
- else:
- return "testprovider.example.org"
+ for gw in gateways:
+ if gw['name'] == primary_gateway:
+ hosts = gw['hosts']
+ if len(hosts) > 0:
+ return hosts[0]
+ else:
+ logger.error('no hosts')
+ logger.error('could not find primary gateway in provider'
+ 'gateway list')
def build_ovpn_options(daemon=False, socket_path=None, **kwargs):