def delete_machine(): machine = Machine.get(request.form['machine_id']) if not machine: return jsonify(r=0) if machine.container_id: try: eru.remove_containers([machine.container_id]) except EruException: pass machine.delete() return jsonify(r=0)
def add_public_key(): machine = Machine.get(request.form['machine_id']) if not (machine and machine.container_id): return jsonify(error=u'机器挂了') container = eru.get_container(machine.container_id) if not container['networks']: return jsonify(error=u'机器没有对外开放') netaddr = container['networks'][0]['address'] if add_pubkey(g.user.pubkey, netaddr): return jsonify(error=u'添加成功') return jsonify(error=u'因为一些奇怪的原因添加失败')
def callback(machine_id): machine = Machine.get(machine_id) if not machine: return 'not found' data = request.get_json() container_id = data['container_id'] status = data.get('status') netaddr = data['networks'][0]['address'] machine.set_alive(status == 'start') if not machine.container_id: machine.set_container_id(container_id) machine.set_netaddr(netaddr) return 'ok'
def is_alive(): machine = Machine.get(request.form['machine_id']) if not machine: return jsonify(r=0) return jsonify(r=machine.is_alive)