Extract helper methods

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2016-01-26 16:08:34 +00:00
parent be66779fe9
commit 89cca7bcb2
1 changed files with 70 additions and 55 deletions

View File

@ -24,6 +24,23 @@ def migrate(content):
service_names = data.keys()
for name, service in data.items():
warn_for_links(name, service)
warn_for_external_links(name, service)
rewrite_net(service, service_names)
rewrite_build(service)
rewrite_logging(service)
rewrite_volumes_from(service, service_names)
services = {name: data.pop(name) for name in data.keys()}
data['version'] = 2
data['services'] = services
create_volumes_section(data)
return data
def warn_for_links(name, service):
links = service.get('links')
if links:
example_service = links[0].partition(':')[0]
@ -36,6 +53,8 @@ def migrate(content):
.format(name=name, example_service=example_service,
example_service_upper=example_service.upper()))
def warn_for_external_links(name, service):
external_links = service.get('external_links')
if external_links:
log.warn(
@ -50,7 +69,8 @@ def migrate(content):
"for more on how to do this."
.format(name=name, ext=external_links))
# net is now network_mode
def rewrite_net(service, service_names):
if 'net' in service:
network_mode = service.pop('net')
@ -62,32 +82,27 @@ def migrate(content):
service['network_mode'] = network_mode
# create build section
def rewrite_build(service):
if 'dockerfile' in service:
service['build'] = {
'context': service.pop('build'),
'dockerfile': service.pop('dockerfile'),
}
# create logging section
def rewrite_logging(service):
if 'log_driver' in service:
service['logging'] = {'driver': service.pop('log_driver')}
if 'log_opt' in service:
service['logging']['options'] = service.pop('log_opt')
# volumes_from prefix with 'container:'
def rewrite_volumes_from(service, service_names):
for idx, volume_from in enumerate(service.get('volumes_from', [])):
if volume_from.split(':', 1)[0] not in service_names:
service['volumes_from'][idx] = 'container:%s' % volume_from
services = {name: data.pop(name) for name in data.keys()}
data['version'] = 2
data['services'] = services
create_volumes_section(data)
return data
def create_volumes_section(data):
named_volumes = get_named_volumes(data['services'])