def create_machine(): if request.method == 'GET': images = Image.list_all() return render_template('create_machine.html', images=images) name = request.form['name'] image_name = request.form['image_name'] if not (image_name and name): abort(400) image = Image.get_by_name(image_name) if not image: abort(400) machine = Machine.create(g.user, name) callback_url = url_for('machine.callback', machine_id=machine.id, _external=True) try: if DEPLOY_MODE == 'public': eru.deploy_public(PODNAME, image.appname, 1, image.version, image.entrypoint, image.env, [image.network], raw=True, image=image.addr, callback_url=callback_url) elif DEPLOY_MODE == 'private': eru.deploy_private(PODNAME, image.appname, 1, 1, image.version, image.entrypoint, image.env, [image.network], raw=True, image=image.addr, callback_url=callback_url) except EruException: pass return redirect(url_for('machine.index'))