in ebcli/labs/convertdockerrun.py [0:0]
def get_dockerrun_v2(v1_json):
v2_json = {
'AWSEBDockerrunVersion': 2,
'containerDefinitions': [
{
'name': 'myapp',
'essential': True,
'memory': 512,
'portMappings': [
{
'hostPort': 80,
}
]
}
]
}
try:
v2_json['containerDefinitions'][0]['image'] = v1_json['Image']['Name']
except KeyError:
raise NotFoundError('The "image" field is required for v2 conversion.')
try:
v2_json['containerDefinitions'][0]['containerPort'] = \
int(v1_json['Ports'][0]['ContainerPort'])
except (KeyError, IndexError):
raise NotFoundError('The "port" field is required for v2 conversion.')
if 'Authentication' in v1_json:
v2_json['authentication'] = {
'bucket': v1_json['Authentication']['Bucket'],
'key': v1_json['Authentication']['Key']
}
for i, volume in enumerate(v1_json.get('Volumes', [])):
if 'volumes' not in v2_json:
v2_json['volumes'] = []
v2_json['volumes'].append(
{
'name': "volume#{i}".format(i=i),
'host': {
'sourcePath': volume['HostDirectory']
}
}
)
if 'mountPoints' not in v2_json['containerDefinitions'][0]:
v2_json['containerDefinitions'][0]['mountPoints'] = []
v2_json['containerDefinitions'][0]['mountPoints'].append(
{
'sourceVolume': "volume#{i}".format(i=i),
'containerPath': volume['ContainerDirectory']
})
if v1_json['Logging']:
if 'mountPoints' not in v2_json['containerDefinitions'][0]:
v2_json['containerDefinitions'][0]['mountPoints'] = []
v2_json['containerDefinitions'][0]['mountPoints'].append(
{
'sourceVolume': 'awseb-logs-myapp',
'containerPath': v1_json['Logging']
})
return v2_json