shrug
This commit is contained in:
@@ -2,6 +2,7 @@ import docker
|
|||||||
import os
|
import os
|
||||||
import socket
|
import socket
|
||||||
import inspect
|
import inspect
|
||||||
|
import shutil
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
from game_table_model import GameTable
|
from game_table_model import GameTable
|
||||||
from key_model import TableKey
|
from key_model import TableKey
|
||||||
@@ -31,13 +32,23 @@ def build_container_routing_labels(prefix: str, strip_prefix=True):
|
|||||||
return labels
|
return labels
|
||||||
|
|
||||||
|
|
||||||
def delete_container(docker_id) -> bool:
|
def delete_file_package(table: GameTable) -> bool:
|
||||||
if not docker_id:
|
if table.active:
|
||||||
|
return False
|
||||||
|
if not os.path.exists("/data/{prefix}".format(prefix=table.game_table_link)):
|
||||||
|
return False
|
||||||
|
shutil.rmtree("/data/{prefix}".format(prefix=table.game_table_link))
|
||||||
|
os.removedir("/data/{prefix}")
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def delete_container(table: GameTable) -> bool:
|
||||||
|
if not table.docker_id:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
client = docker.from_env()
|
client = docker.from_env()
|
||||||
container = client.containers.get(docker_id)
|
container = client.containers.get(table.docker_id)
|
||||||
container.remove()
|
container.remove()
|
||||||
return True
|
return True
|
||||||
except (docker.errors.NotFound, docker.errors.APIError):
|
except (docker.errors.NotFound, docker.errors.APIError):
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from main import db
|
from main import db
|
||||||
|
|
||||||
|
|
||||||
class TableKey(db.Model):
|
class TableKey(db.Model):
|
||||||
|
|
||||||
__tablename__ = "game_keys"
|
__tablename__ = "game_keys"
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ def update_table(table_id):
|
|||||||
@tables.route("tables/<table_id>", methods=["DELETE"])
|
@tables.route("tables/<table_id>", methods=["DELETE"])
|
||||||
def delete_table(table_id):
|
def delete_table(table_id):
|
||||||
table = GameTable.query.get_or_404(table_id)
|
table = GameTable.query.get_or_404(table_id)
|
||||||
|
container_managment.delete_file_package(table)
|
||||||
potato.session.delete(table)
|
potato.session.delete(table)
|
||||||
potato.session.commit()
|
potato.session.commit()
|
||||||
return jsonify({}), 200
|
return jsonify({}), 200
|
||||||
@@ -90,7 +91,7 @@ def activate_table(table_id):
|
|||||||
key.reserve(table.game_table_id)
|
key.reserve(table.game_table_id)
|
||||||
table.active = True
|
table.active = True
|
||||||
if hard:
|
if hard:
|
||||||
container_managment.delete_container(table.docker_id)
|
container_managment.delete_container(table)
|
||||||
table.docker_id = container_managment.start_foundry_container(table, key)
|
table.docker_id = container_managment.start_foundry_container(table, key)
|
||||||
potato.session.commit()
|
potato.session.commit()
|
||||||
return jsonify(table.to_dict())
|
return jsonify(table.to_dict())
|
||||||
@@ -112,4 +113,3 @@ def deactivate_table(table_id):
|
|||||||
|
|
||||||
potato.session.commit()
|
potato.session.commit()
|
||||||
return jsonify(table.to_dict())
|
return jsonify(table.to_dict())
|
||||||
|
|
||||||
|
|||||||
12
src/user_model.py
Normal file
12
src/user_model.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
from main import db
|
||||||
|
|
||||||
|
|
||||||
|
class User(db.Model):
|
||||||
|
|
||||||
|
__tablename__ = "users"
|
||||||
|
|
||||||
|
user_id = db.Column(db.Integer, primary_key=True)
|
||||||
|
password_hash = db.Column(db.Text)
|
||||||
|
user_name = db.Column(db.Text, unique=True)
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user