Set labels on containers managed by docker-cmd
Docker labels are metadata associated with running containers. This change sets labels which will allow the correct lifecycle decisions to be made by the docker-cmd hook about which containers are managed by heat and when specific containers should be deleted. Associating these labels now will also allow the os-refresh-config 50-heat-config-docker-cmd to be rewritten to not require a directory to store state, and instead get all of the current state information from 'docker ps' and 'docker inspect' calls. Change-Id: I967df26c8b0661413dc504c45d1764d23f895530
This commit is contained in:
parent
2a230b2c6e
commit
d30fa94af4
|
@ -59,6 +59,21 @@ def execute(cmd):
|
|||
return cmd_stdout, cmd_stderr, subproc.returncode
|
||||
|
||||
|
||||
def label_arguments(cmd, container, cid, iv):
|
||||
cmd.extend([
|
||||
'--label',
|
||||
'deploy_stack_id=%s' % iv.get('deploy_stack_id'),
|
||||
'--label',
|
||||
'deploy_resource_name=%s' % iv.get('deploy_resource_name'),
|
||||
'--label',
|
||||
'config_id=%s' % cid,
|
||||
'--label',
|
||||
'container_name=%s' % container,
|
||||
'--label',
|
||||
'managed_by=docker-cmd'
|
||||
])
|
||||
|
||||
|
||||
def main(argv=sys.argv):
|
||||
global log
|
||||
log = logging.getLogger('heat-config')
|
||||
|
@ -106,6 +121,7 @@ def main(argv=sys.argv):
|
|||
'--name',
|
||||
container
|
||||
]
|
||||
label_arguments(cmd, container, c.get('id'), input_values)
|
||||
if config[container].get('detach', True):
|
||||
cmd.append('--detach=true')
|
||||
elif action == 'exec':
|
||||
|
|
|
@ -26,6 +26,14 @@ class HookDockerCmdTest(common.RunScriptTest):
|
|||
data = {
|
||||
"name": "abcdef001",
|
||||
"group": "docker-cmd",
|
||||
"id": "abc123",
|
||||
"inputs": [{
|
||||
"name": "deploy_stack_id",
|
||||
"value": "the_stack",
|
||||
}, {
|
||||
"name": "deploy_resource_name",
|
||||
"value": "the_deployment",
|
||||
}],
|
||||
"config": {
|
||||
"db": {
|
||||
"name": "x",
|
||||
|
@ -128,6 +136,16 @@ class HookDockerCmdTest(common.RunScriptTest):
|
|||
'run',
|
||||
'--name',
|
||||
'db',
|
||||
'--label',
|
||||
'deploy_stack_id=the_stack',
|
||||
'--label',
|
||||
'deploy_resource_name=the_deployment',
|
||||
'--label',
|
||||
'config_id=abc123',
|
||||
'--label',
|
||||
'container_name=db',
|
||||
'--label',
|
||||
'managed_by=docker-cmd',
|
||||
'--detach=true',
|
||||
'--privileged=false',
|
||||
'xxx'
|
||||
|
@ -137,6 +155,16 @@ class HookDockerCmdTest(common.RunScriptTest):
|
|||
'run',
|
||||
'--name',
|
||||
'web',
|
||||
'--label',
|
||||
'deploy_stack_id=the_stack',
|
||||
'--label',
|
||||
'deploy_resource_name=the_deployment',
|
||||
'--label',
|
||||
'config_id=abc123',
|
||||
'--label',
|
||||
'container_name=web',
|
||||
'--label',
|
||||
'managed_by=docker-cmd',
|
||||
'--detach=true',
|
||||
'--env=KOLLA_CONFIG_STRATEGY=COPY_ALWAYS',
|
||||
'--env=FOO=BAR',
|
||||
|
@ -210,6 +238,16 @@ class HookDockerCmdTest(common.RunScriptTest):
|
|||
'run',
|
||||
'--name',
|
||||
'db',
|
||||
'--label',
|
||||
'deploy_stack_id=the_stack',
|
||||
'--label',
|
||||
'deploy_resource_name=the_deployment',
|
||||
'--label',
|
||||
'config_id=abc123',
|
||||
'--label',
|
||||
'container_name=db',
|
||||
'--label',
|
||||
'managed_by=docker-cmd',
|
||||
'--detach=true',
|
||||
'--privileged=false',
|
||||
'xxx'
|
||||
|
@ -219,6 +257,16 @@ class HookDockerCmdTest(common.RunScriptTest):
|
|||
'run',
|
||||
'--name',
|
||||
'web',
|
||||
'--label',
|
||||
'deploy_stack_id=the_stack',
|
||||
'--label',
|
||||
'deploy_resource_name=the_deployment',
|
||||
'--label',
|
||||
'config_id=abc123',
|
||||
'--label',
|
||||
'container_name=web',
|
||||
'--label',
|
||||
'managed_by=docker-cmd',
|
||||
'--detach=true',
|
||||
'--env=KOLLA_CONFIG_STRATEGY=COPY_ALWAYS',
|
||||
'--env=FOO=BAR',
|
||||
|
|
Loading…
Reference in New Issue