diff --git a/dirkules/manager/driveManager.py b/dirkules/manager/driveManager.py index 0efd760..1412967 100644 --- a/dirkules/manager/driveManager.py +++ b/dirkules/manager/driveManager.py @@ -135,3 +135,33 @@ def get_pool_health(drive_list): if db_drive.smart is not True: return False return True + + +def delete_drive(drive): + """ + removes a given drive object (including cascades) from db + :param drive: The drive + :type drive: Drive + :return: nothing + :rtype: + """ + try: + db.session.delete(drive) + db.session.commit() + except: + db.session.rollback() + + +def get_drive_by_id(drive_id): + """ + returns drive object for given id + :param drive_id: id of drive (primary key) + :type drive_id: int + :return: Drive object + :rtype: Drive + """ + drive = Drive.query.get(drive_id) + if drive is not None: + return drive + else: + raise LookupError diff --git a/dirkules/models.py b/dirkules/models.py index 9c0d151..fe5a95d 100644 --- a/dirkules/models.py +++ b/dirkules/models.py @@ -1,10 +1,8 @@ import datetime - from dirkules import db class Drive(db.Model): - __tablename__ = 'drive' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) model = db.Column(db.String) @@ -47,9 +45,8 @@ class Drive(db.Model): class Partitions(db.Model): - __tablename__ = 'partitions' id = db.Column(db.Integer, primary_key=True) - drive_id = db.Column(db.Integer, db.ForeignKey('drive.id'), nullable=False) + drive_id = db.Column(db.Integer, db.ForeignKey('drive.id')) name = db.Column(db.String) fs = db.Column(db.String) size = db.Column(db.Integer) @@ -68,7 +65,6 @@ class Partitions(db.Model): class Pool(db.Model): - __tablename__ = 'pool' id = db.Column(db.Integer, primary_key=True) label = db.Column(db.String) size = db.Column(db.Integer) @@ -100,7 +96,6 @@ class Pool(db.Model): class Time(db.Model): - __tablename__ = 'time' id = db.Column(db.Integer, primary_key=True) desc = db.Column(db.String) time = db.Column(db.Integer, default=0, onupdate=1) @@ -110,7 +105,6 @@ class Time(db.Model): class Cleaning(db.Model): - __tablename__ = 'cleaning' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) path = db.Column(db.String) @@ -126,7 +120,6 @@ class Cleaning(db.Model): class SambaShare(db.Model): - __tablename__ = 'samba_share' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) writeable = db.Column(db.Boolean) @@ -142,7 +135,6 @@ class SambaShare(db.Model): class SambaOptions(db.Model): - __tablename__ = 'samba_options' id = db.Column(db.Integer, primary_key=True) option = db.Column(db.String, nullable=False) value = db.Column(db.String, nullable=False) diff --git a/dirkules/templates/drives.html b/dirkules/templates/drives.html index 3954fbd..574bf58 100644 --- a/dirkules/templates/drives.html +++ b/dirkules/templates/drives.html @@ -36,10 +36,15 @@ {% endif %}