Changed docker_restart_policy to unless-stopped

Current implementation has docker_restart_policy "always" and
docker_restart_policy_retry:"10" which should be mutually exclusive.
"unless-stopped" will restart the containers on any exit state
but not start on daemon startup if container was put to stopped state before.
Closes-Bug: #1621187

Change-Id: I4d881cd123a55625121b7a9047385e9b54e2e129
This commit is contained in:
Sajauddin Mohammad 2016-09-23 02:25:23 -04:00
parent b1511a1719
commit 3f134d0f53
4 changed files with 24 additions and 18 deletions

View File

@ -72,8 +72,8 @@ docker_registry:
docker_namespace: "kolla" docker_namespace: "kolla"
docker_registry_username: docker_registry_username:
# Valid options are [ never, on-failure, always ] # Valid options are [ never, on-failure, always, unless-stopped ]
docker_restart_policy: "always" docker_restart_policy: "unless-stopped"
# '0' means unlimited retries # '0' means unlimited retries
docker_restart_policy_retry: "10" docker_restart_policy_retry: "10"

View File

@ -145,6 +145,7 @@ options:
- never - never
- on-failure - on-failure
- always - always
- unless-stopped
restart_retries: restart_retries:
description: description:
- How many times to attempt a restart if restart_policy is set - How many times to attempt a restart if restart_policy is set
@ -511,7 +512,9 @@ class DockerWorker(object):
'volumes_from': self.params.get('volumes_from') 'volumes_from': self.params.get('volumes_from')
} }
if self.params.get('restart_policy') in ['on-failure', 'always']: if self.params.get('restart_policy') in ['on-failure',
'always',
'unless-stopped']:
options['restart_policy'] = { options['restart_policy'] = {
'Name': self.params.get('restart_policy'), 'Name': self.params.get('restart_policy'),
'MaximumRetryCount': self.params.get('restart_retries') 'MaximumRetryCount': self.params.get('restart_retries')
@ -674,10 +677,12 @@ def generate_module():
pid_mode=dict(required=False, type='str', choices=['host']), pid_mode=dict(required=False, type='str', choices=['host']),
privileged=dict(required=False, type='bool', default=False), privileged=dict(required=False, type='bool', default=False),
remove_on_exit=dict(required=False, type='bool', default=True), remove_on_exit=dict(required=False, type='bool', default=True),
restart_policy=dict(required=False, type='str', choices=['no', restart_policy=dict(required=False, type='str', choices=[
'never', 'no',
'on-failure', 'never',
'always']), 'on-failure',
'always',
'unless-stopped']),
restart_retries=dict(required=False, type='int', default=10), restart_retries=dict(required=False, type='int', default=10),
tls_verify=dict(required=False, type='bool', default=False), tls_verify=dict(required=False, type='bool', default=False),
tls_cert=dict(required=False, type='str'), tls_cert=dict(required=False, type='str'),

View File

@ -825,7 +825,7 @@ class KollaWorker(object):
for plugin in [match.group(0) for match in for plugin in [match.group(0) for match in
(re.search('{}-plugin-.+'.format(image.name), (re.search('{}-plugin-.+'.format(image.name),
section) for section in section) for section in
self.conf.list_all_sections()) if match]: self.conf.list_all_sections()) if match]:
try: try:
self.conf.register_opts( self.conf.register_opts(
common_config.get_source_opts(), common_config.get_source_opts(),

View File

@ -73,7 +73,8 @@ class ModuleArgsTest(base.BaseTestCase):
required=False, type='str', choices=['no', required=False, type='str', choices=['no',
'never', 'never',
'on-failure', 'on-failure',
'always']), 'always',
'unless-stopped']),
restart_retries=dict(required=False, type='int', default=10), restart_retries=dict(required=False, type='int', default=10),
tls_verify=dict(required=False, type='bool', default=False), tls_verify=dict(required=False, type='bool', default=False),
tls_cert=dict(required=False, type='str'), tls_cert=dict(required=False, type='str'),
@ -107,7 +108,7 @@ FAKE_DATA = {
'pid_mode': '', 'pid_mode': '',
'privileged': False, 'privileged': False,
'volumes_from': None, 'volumes_from': None,
'restart_policy': 'always', 'restart_policy': 'unless-stopped',
'restart_retries': 10}, 'restart_retries': 10},
'labels': {'build-date': '2016-06-02', 'labels': {'build-date': '2016-06-02',
'kolla_version': '2.0.1', 'kolla_version': '2.0.1',
@ -516,14 +517,14 @@ class TestVolume(base.BaseTestCase):
self.fake_data = copy.deepcopy(FAKE_DATA) self.fake_data = copy.deepcopy(FAKE_DATA)
self.volumes = { self.volumes = {
'Volumes': 'Volumes':
[{'Driver': u'local', [{'Driver': u'local',
'Labels': None, 'Labels': None,
'Mountpoint': '/var/lib/docker/volumes/nova_compute/_data', 'Mountpoint': '/var/lib/docker/volumes/nova_compute/_data',
'Name': 'nova_compute'}, 'Name': 'nova_compute'},
{'Driver': 'local', {'Driver': 'local',
'Labels': None, 'Labels': None,
'Mountpoint': '/var/lib/docker/volumes/mariadb/_data', 'Mountpoint': '/var/lib/docker/volumes/mariadb/_data',
'Name': 'mariadb'}] 'Name': 'mariadb'}]
} }
def test_create_volume(self): def test_create_volume(self):