aci: santize AC Names properly

This commit is contained in:
Jimmy Zelinskie 2016-03-22 14:09:52 -04:00
parent d6abf17b4d
commit a531ce199d

View file

@ -1,9 +1,15 @@
import json
import re
from uuid import uuid4
from app import app
from util.registry.streamlayerformat import StreamLayerMerger
from formats.tarimageformatter import TarImageFormatter
import json
import re
ACNAME_REGEX = re.compile(r'[^a-z-]+')
class ACIImage(TarImageFormatter):
""" Image formatter which produces an ACI-compatible TAR.
@ -126,6 +132,13 @@ class ACIImage(TarImageFormatter):
return ports
@staticmethod
def _ac_name(value):
sanitized = ACNAME_REGEX.sub('-', value.lower()).strip('-')
if sanitized == '':
return str(uuid4())
return sanitized
@staticmethod
def _build_volumes(docker_config):
""" Builds the volumes definitions for the ACI. """
@ -133,7 +146,7 @@ class ACIImage(TarImageFormatter):
names = set()
def get_name(docker_volume_path):
return "volume-%s" % docker_volume_path.replace('/', '-')
return "volume-%s" % ACIImage._ac_name(docker_volume_path)
for docker_volume_path in ACIImage._get_docker_config_value(docker_config, 'Volumes', []):
if not docker_volume_path: