diff --git a/contrail_provisioning/common/upgrade.py b/contrail_provisioning/common/upgrade.py index fd15dc8b..af6f455f 100644 --- a/contrail_provisioning/common/upgrade.py +++ b/contrail_provisioning/common/upgrade.py @@ -7,6 +7,7 @@ import os import shutil import argparse +import stat from distutils.version import LooseVersion from fabric.api import local @@ -199,6 +200,19 @@ def get_build(self, pkg='contrail-install-packages'): return None return pkg_rel + def disable_apt_get_auto_start(self): + if self.pdist in ['Ubuntu']: + with open("/usr/sbin/policy-rc.d", "w+") as f: + f.write('#!/bin/sh\n') + f.write('exit 101\n') + f.close() + h = os.stat("/usr/sbin/policy-rc.d") + os.chmod("/usr/sbin/policy-rc.d", h.st_mode | stat.S_IEXEC) + + def enable_apt_get_auto_start(self): + if self.pdist in ['Ubuntu']: + local('rm -f /usr/sbin/policy-rc.d') + def _upgrade(self): self._backup_config() if self.pdist in ['centos']: diff --git a/contrail_provisioning/compute/upgrade.py b/contrail_provisioning/compute/upgrade.py index 8fc57ea4..70a72262 100644 --- a/contrail_provisioning/compute/upgrade.py +++ b/contrail_provisioning/compute/upgrade.py @@ -84,18 +84,20 @@ def fix_nova_params(self): local("service %s start" % openstack_compute_service) def upgrade(self): + self.disable_apt_get_auto_start() self._upgrade() - if ('running' in - local('service supervisor-vrouter status', capture=True)): + if ((self.pdist not in ['Ubuntu']) and + ('running' in local('service supervisor-vrouter status', capture=True))): local("service supervisor-vrouter stop") - if self._args.orchestrator == 'openstack': + nova_config = not(getattr(self._args, 'no_nova_config', False)) + if (nova_config and self._args.orchestrator == 'openstack'): if self._args.from_rel == LooseVersion('2.00'): self.fix_nova_params() # Seperate contrail--nodemgr.conf is introduced from release 2.20 if (self._args.from_rel < LooseVersion('2.20') and self._args.to_rel >= LooseVersion('2.20')): self.compute_setup.fixup_contrail_vrouter_nodemgr() - + self.enable_apt_get_auto_start() def main(): compute = ComputeUpgrade()