diff --git a/contrail_provisioning/common/staticroute_setup.py b/contrail_provisioning/common/staticroute_setup.py index dd1a94f1..35478ae8 100644 --- a/contrail_provisioning/common/staticroute_setup.py +++ b/contrail_provisioning/common/staticroute_setup.py @@ -15,13 +15,15 @@ import argparse import socket import struct +import subprocess from netaddr import IPNetwork from tempfile import NamedTemporaryFile +from distutils.version import LooseVersion logging.basicConfig(format='%(asctime)-15s:: %(funcName)s:%(levelname)s:: %(message)s', level=logging.INFO) log = logging.getLogger(__name__) -PLATFORM = platform.dist()[0] +(PLATFORM, VERSION, EXTRA) = platform.linux_distribution() class StaticRoute(object): '''Base class containing common methods for configuring static routes @@ -106,8 +108,11 @@ class UbuntuStaticRoute(StaticRoute): def restart_service(self): '''Restart network service for Ubuntu''' log.info('Restarting Network Services...') - os.system('sudo /etc/init.d/networking restart') - time.sleep(3) + if LooseVersion(VERSION) < LooseVersion("14.04"): + subprocess.call('sudo /etc/init.d/networking restart', shell=True) + else: + subprocess.call('sudo ifdown -a && sudo ifup -a', shell=True) + time.sleep(5) def write_network_script(self): '''Add route to ifup-parts dir and set the correct permission'''