From 3a214fbdee4a69b3eac2b33678eedb8ab5ae9d0d Mon Sep 17 00:00:00 2001 From: Yang Hongyang Date: Sat, 6 Feb 2016 23:17:15 +0800 Subject: [PATCH] Make defaults can be override by local settings Make defaults can be override by local settings, it is useful because users might use non-standard SSH ports and so on. Change-Id: Ic30e611f73ce844848efb452b53f86242be9219d --- astara_router/commands/management.py | 6 +++--- astara_router/defaults.py | 4 ++++ astara_router/drivers/iptables.py | 16 ++++++++-------- astara_router/drivers/metadata.py | 2 +- astara_router/models.py | 6 +++--- astara_router/settings.py | 5 +---- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/astara_router/commands/management.py b/astara_router/commands/management.py index d5b0286..074bc98 100644 --- a/astara_router/commands/management.py +++ b/astara_router/commands/management.py @@ -20,7 +20,7 @@ import sys import netaddr -from astara_router import defaults +from astara_router import settings from astara_router import utils from astara_router.drivers import ip @@ -52,9 +52,9 @@ def configure_gunicorn(listen_ip): """ """ if listen_ip.version == 6: - bind = "'[%s]:%d'" % (listen_ip, defaults.API_SERVICE) + bind = "'[%s]:%d'" % (listen_ip, settings.API_SERVICE) else: - bind = "'%s:%d'" % (listen_ip, defaults.API_SERVICE) + bind = "'%s:%d'" % (listen_ip, settings.API_SERVICE) config = open('/etc/astara_gunicorn_config.py', 'r').read() config = re.sub('\nbind(\s)?\=(\s)?.*', '\nbind = %s' % bind, config) diff --git a/astara_router/defaults.py b/astara_router/defaults.py index 2ad2978..d93b90c 100644 --- a/astara_router/defaults.py +++ b/astara_router/defaults.py @@ -48,3 +48,7 @@ ORCHESTRATOR_METADATA_PORT = 9697 def internal_metadata_port(ifname): return BASE_METADATA_PORT + int(re.sub('[a-zA-Z]', '', ifname)) + +# Configures which advanced service drivers are loaded by this +# instance of the appliance. +ENABLED_SERVICES = ['router'] diff --git a/astara_router/drivers/iptables.py b/astara_router/drivers/iptables.py index f441416..b6efac1 100644 --- a/astara_router/drivers/iptables.py +++ b/astara_router/drivers/iptables.py @@ -20,7 +20,7 @@ import os from astara_router.drivers import base from astara_router.models import Network -from astara_router import defaults, utils +from astara_router import settings, utils class Rule(object): @@ -196,8 +196,8 @@ class IPTablesManager(base.Manager): # Open SSH, the HTTP API (5000) and the Nova metadata proxy (9697) for port in ( - defaults.SSH, defaults.API_SERVICE, - defaults.ORCHESTRATOR_METADATA_PORT + settings.SSH, settings.API_SERVICE, + settings.ORCHESTRATOR_METADATA_PORT ): rules.append(Rule( '-A INPUT -i %s -p tcp -m tcp --dport %s -j ACCEPT' % ( @@ -224,8 +224,8 @@ class IPTablesManager(base.Manager): for network in self.get_internal_networks(config): for version, address, dhcp_port in ( - (4, network.interface.first_v4, defaults.DHCP), - (6, network.interface.first_v6, defaults.DHCPV6) + (4, network.interface.first_v4, settings.DHCP), + (6, network.interface.first_v6, settings.DHCPV6) ): if address: # Allow DHCP @@ -286,10 +286,10 @@ class IPTablesManager(base.Manager): '-A PREROUTING -i %s -d %s -p tcp -m tcp ' '--dport %s -j DNAT --to-destination %s:%s' % ( network.interface.ifname, - defaults.METADATA_DEST_ADDRESS, - defaults.HTTP, + settings.METADATA_DEST_ADDRESS, + settings.HTTP, network.interface.first_v4, - defaults.internal_metadata_port( + settings.internal_metadata_port( network.interface.ifname ) ), ip_version=4 diff --git a/astara_router/drivers/metadata.py b/astara_router/drivers/metadata.py index 0882312..df9d534 100644 --- a/astara_router/drivers/metadata.py +++ b/astara_router/drivers/metadata.py @@ -17,7 +17,7 @@ import json -from astara_router.defaults import internal_metadata_port +from astara_router.settings import internal_metadata_port from astara_router.drivers import base from astara_router.utils import execute, replace_file diff --git a/astara_router/models.py b/astara_router/models.py index 76251ee..3ad2a49 100644 --- a/astara_router/models.py +++ b/astara_router/models.py @@ -20,7 +20,7 @@ import re import netaddr -from astara_router import defaults +from astara_router import settings GROUP_NAME_LENGTH = 15 DEFAULT_AS = 64512 @@ -719,9 +719,9 @@ class RouterConfiguration(SystemConfiguration): orchestrator_conf = conf_dict.get('orchestrator', {}) self.metadata_address = orchestrator_conf.get( - 'address', defaults.ORCHESTRATOR_METADATA_ADDRESS) + 'address', settings.ORCHESTRATOR_METADATA_ADDRESS) self.metadata_port = orchestrator_conf.get( - 'metadata_port', defaults.ORCHESTRATOR_METADATA_PORT) + 'metadata_port', settings.ORCHESTRATOR_METADATA_PORT) self.floating_ips = [ FloatingIP.from_dict(fip) diff --git a/astara_router/settings.py b/astara_router/settings.py index 9ebd27b..ff64550 100644 --- a/astara_router/settings.py +++ b/astara_router/settings.py @@ -1,7 +1,4 @@ - -# Configures which advanced service drivers are loaded by this -# instance of the appliance. -ENABLED_SERVICES = ['router'] +from astara_router.defaults import * # noqa # If astara_local_settings.py is located in your python path, # it can be used to override the defaults. DIB will install this