mirror of
https://github.com/vale981/dirkules
synced 2025-03-05 09:21:38 -05:00
partitionen angefangen
This commit is contained in:
parent
413bdfe644
commit
01838f3820
5 changed files with 43 additions and 44 deletions
|
@ -10,4 +10,13 @@ db = SQLAlchemy(app)
|
||||||
import dirkules.models
|
import dirkules.models
|
||||||
db.create_all()
|
db.create_all()
|
||||||
|
|
||||||
|
from dirkules.models import Time
|
||||||
|
from sqlalchemy.orm.exc import NoResultFound
|
||||||
|
|
||||||
|
try:
|
||||||
|
Time.query.one()
|
||||||
|
except NoResultFound:
|
||||||
|
db.session.add(Time("Drives"))
|
||||||
|
db.session.commit()
|
||||||
|
|
||||||
import dirkules.views
|
import dirkules.views
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import psutil
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import os
|
import os
|
||||||
from dirkules.models import Drive
|
from dirkules.models import Drive
|
||||||
|
@ -9,7 +8,7 @@ from dirkules import db
|
||||||
def getAllDrives():
|
def getAllDrives():
|
||||||
#vorbereitung
|
#vorbereitung
|
||||||
drives = []
|
drives = []
|
||||||
driveDict = []
|
driveDict = [] # ist eine Liste, enthält für jede HDD ein dict
|
||||||
keys = ['device', 'name', 'smart', 'size']
|
keys = ['device', 'name', 'smart', 'size']
|
||||||
|
|
||||||
blkid = subprocess.Popen(["hwinfo --disk --short"],
|
blkid = subprocess.Popen(["hwinfo --disk --short"],
|
||||||
|
@ -28,6 +27,7 @@ def getAllDrives():
|
||||||
break
|
break
|
||||||
blkid.stdout.close()
|
blkid.stdout.close()
|
||||||
for line in drives:
|
for line in drives:
|
||||||
|
# Effizienter machen mit newLine = ' '.join(line.split())
|
||||||
values = []
|
values = []
|
||||||
line = line.replace(" ", "", 15)
|
line = line.replace(" ", "", 15)
|
||||||
values.append(line[:8])
|
values.append(line[:8])
|
||||||
|
@ -63,7 +63,6 @@ def smartPassed(device):
|
||||||
|
|
||||||
|
|
||||||
def getTotalSize(device):
|
def getTotalSize(device):
|
||||||
# Hier könnte man auch die Partitionen mit abfragen
|
|
||||||
drives = []
|
drives = []
|
||||||
fdisk = subprocess.Popen(["fdisk -l"],
|
fdisk = subprocess.Popen(["fdisk -l"],
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
|
@ -85,19 +84,18 @@ def getTotalSize(device):
|
||||||
return size
|
return size
|
||||||
|
|
||||||
|
|
||||||
#nicht verwenden
|
def getPartitions(device):
|
||||||
def OLDgetAllDrives():
|
partDict = [] # ist eine Liste, enthält für jede part ein dict
|
||||||
|
|
||||||
#vorbereitung
|
|
||||||
drives = []
|
drives = []
|
||||||
driveDict = []
|
# name = sda1 zum Beispiel
|
||||||
keys = ['device', 'mountpoint', 'fstype', 'label']
|
keys = ['name', 'fs', 'size', 'uuid', 'mountpoint', 'label']
|
||||||
|
|
||||||
blkid = subprocess.Popen(["blkid"],
|
fdisk = subprocess.Popen(["fdisk -l"],
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
|
shell=True,
|
||||||
universal_newlines=True)
|
universal_newlines=True)
|
||||||
grepedDrives = subprocess.Popen(["grep", "/dev/sd"],
|
grepedDrives = subprocess.Popen(["grep", device],
|
||||||
stdin=blkid.stdout,
|
stdin=fdisk.stdout,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
universal_newlines=True)
|
universal_newlines=True)
|
||||||
while True:
|
while True:
|
||||||
|
@ -106,31 +104,22 @@ def OLDgetAllDrives():
|
||||||
drives.append(line.rstrip())
|
drives.append(line.rstrip())
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
blkid.stdout.close()
|
fdisk.stdout.close()
|
||||||
|
del drives[0]
|
||||||
for line in drives:
|
for line in drives:
|
||||||
values = []
|
line = line.replace("*", "")
|
||||||
#Informationen aufbereiten
|
newLine = ' '.join(line.split())
|
||||||
arrayline = line.split(' ')
|
newLine = newLine.split(" ")
|
||||||
values.append(arrayline[0][:-1])
|
if newLine[5] != 5: #Ungültige Partitionen herausfiltern
|
||||||
if any("LABEL" in s for s in arrayline):
|
# Für jede Partition muss nun blkid ausgeführt werden, um weitere Informationen zu erhalten
|
||||||
if any("UUID_SUB" in s for s in arrayline):
|
values = []
|
||||||
values.append("Was weiß ich...")
|
values.append(newLine[0])
|
||||||
values.append(arrayline[4][6:-1])
|
values.append("fs")
|
||||||
values.append("Weiß ich auch noch nicht...")
|
values.append(newLine[4])
|
||||||
else:
|
values.append("uuid")
|
||||||
values.append("Was weiß ich...")
|
values.append("mountpoint")
|
||||||
values.append(arrayline[3][6:-1])
|
values.append("label")
|
||||||
values.append("Weiß ich auch noch nicht...")
|
partDict.append(dict(zip(keys, values)))
|
||||||
elif any(not "LABEL" in s
|
|
||||||
for s in arrayline) and any("UUID_SUB" in s
|
|
||||||
for s in arrayline):
|
|
||||||
values.append("Was weiß ich...")
|
|
||||||
values.append(arrayline[3][6:-1])
|
|
||||||
values.append("(keiner)")
|
|
||||||
else:
|
else:
|
||||||
values.append("Was weiß ich...")
|
pass
|
||||||
values.append(arrayline[2][6:-1])
|
return partDict
|
||||||
values.append("(keiner)")
|
|
||||||
#Dict für Jinja anfügen
|
|
||||||
driveDict.append(dict(zip(keys, values)))
|
|
||||||
return driveDict
|
|
||||||
|
|
|
@ -26,17 +26,17 @@ class Partitions(db.Model):
|
||||||
drive_id = db.Column(db.Integer, db.ForeignKey('drives.id'))
|
drive_id = db.Column(db.Integer, db.ForeignKey('drives.id'))
|
||||||
name = db.Column(db.String)
|
name = db.Column(db.String)
|
||||||
fs = db.Column(db.String)
|
fs = db.Column(db.String)
|
||||||
|
size =db.Column(db.String)
|
||||||
uuid = db.Column(db.String)
|
uuid = db.Column(db.String)
|
||||||
mountpoint = db.Column(db.String)
|
mountpoint = db.Column(db.String)
|
||||||
label = db.Column(db.String)
|
label = db.Column(db.String)
|
||||||
|
|
||||||
|
|
||||||
class Times(db.Model):
|
class Time(db.Model):
|
||||||
__tablename__ = 'times'
|
__tablename__ = 'time'
|
||||||
id = db.Column(db.Integer, primary_key=True)
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
desc = db.Column(db.String)
|
desc = db.Column(db.String)
|
||||||
time = db.Column(db.Integer, default=0, onupdate=1)
|
time = db.Column(db.Integer, default=0, onupdate=1)
|
||||||
|
|
||||||
def __init__(self, desc, time):
|
def __init__(self, desc):
|
||||||
self.desc = desc
|
self.desc = desc
|
||||||
self.time = time
|
|
||||||
|
|
|
@ -12,7 +12,9 @@ def index():
|
||||||
@app.route('/drives', methods=['GET'])
|
@app.route('/drives', methods=['GET'])
|
||||||
def drives():
|
def drives():
|
||||||
drives = drico.getAllDrives()
|
drives = drico.getAllDrives()
|
||||||
print(Drive.query.filter_by(device='/dev/sda').all())
|
#print(Drive.query.filter_by(device='/dev/sda').all())
|
||||||
|
test = drico.getPartitions("/dev/sdb")
|
||||||
|
print(test)
|
||||||
return render_template('drives.html', drives=drives)
|
return render_template('drives.html', drives=drives)
|
||||||
|
|
||||||
|
|
||||||
|
|
1
setup.py
1
setup.py
|
@ -8,6 +8,5 @@ setup(
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'flask',
|
'flask',
|
||||||
'Flask-SQLAlchemy',
|
'Flask-SQLAlchemy',
|
||||||
'psutil',
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue