Covering edge case issues

This commit is contained in:
Kevin Chung
2016-05-07 18:12:17 -04:00
parent 03d8dda878
commit 275ae6e94a
2 changed files with 12 additions and 4 deletions

View File

@@ -182,6 +182,7 @@ def admin_css():
return "1"
return "0"
@admin.route('/admin/pages', defaults={'route': None}, methods=['GET', 'POST'])
@admin.route('/admin/pages/<route>', methods=['GET', 'POST'])
@admins_only
@@ -274,6 +275,8 @@ def delete_container(container_id):
@admins_only
def new_container():
name = request.form.get('name')
if not name.isalpha():
return redirect('/admin/containers')
buildfile = request.form.get('buildfile')
files = request.files.getlist('files[]')
create_image(name=name, buildfile=buildfile, files=files)

View File

@@ -413,8 +413,9 @@ def create_image(name, buildfile, files):
tmpfile.close()
for f in files:
filename = os.path.basename(f.filename)
f.save(os.path.join(folder, filename))
if f.filename.strip():
filename = os.path.basename(f.filename)
f.save(os.path.join(folder, filename))
# repository name component must match "[a-z0-9](?:-*[a-z0-9])*(?:[._][a-z0-9](?:-*[a-z0-9])*)*"
# docker build -f tmpfile.name -t name
try:
@@ -425,6 +426,7 @@ def create_image(name, buildfile, files):
db.session.add(container)
db.session.commit()
db.session.close()
rmdir(folder)
return True
except subprocess.CalledProcessError:
return False
@@ -443,8 +445,11 @@ def run_image(name):
try:
info = json.loads(subprocess.check_output(['docker', 'inspect', '--type=image', name]))
ports_asked = info[0]['Config']['ExposedPorts'].keys()
ports_asked = [int(re.sub('[A-Za-z/]+', '', port)) for port in ports_asked]
try:
ports_asked = info[0]['Config']['ExposedPorts'].keys()
ports_asked = [int(re.sub('[A-Za-z/]+', '', port)) for port in ports_asked]
except KeyError:
ports_asked = []
cmd = ['docker', 'run', '-d']
for port in ports_asked: