addes some disk class preparations

This commit is contained in:
Miłosz Stocki 2019-10-03 15:58:40 +02:00
parent 47a03f5161
commit ec94aa9e25
Signed by: osiu97
GPG Key ID: E3D1D83FA04F51D6
3 changed files with 33 additions and 3 deletions

2
Disk.py Normal file
View File

@ -0,0 +1,2 @@
from Snapshot import Snapshot

View File

@ -8,6 +8,7 @@ class Snapshot(object):
self.re_name = re.compile(r"[^/]+$") self.re_name = re.compile(r"[^/]+$")
self.re_zvol = re.compile(r"^.*[\\/]") self.re_zvol = re.compile(r"^.*[\\/]")
self.snapshot_tuple = self.parse_string_to_table() self.snapshot_tuple = self.parse_string_to_table()
self.disk_name = self.get_snapshot_name().split("@")[0]
def __repr__(self): def __repr__(self):
return self.get_snapshot_name() return self.get_snapshot_name()
@ -41,6 +42,9 @@ class Snapshot(object):
referenced_str = self.snapshot_tuple[3] referenced_str = self.snapshot_tuple[3]
return self.sizeof_fmt(int(referenced_str)) return self.sizeof_fmt(int(referenced_str))
def get_disk_name(self):
return self.disk_name
@staticmethod @staticmethod
def sizeof_fmt(num, suffix='B'): def sizeof_fmt(num, suffix='B'):
## FIXME WOW taken from stack but it's too fucking slow. Probably because of division. Have to profile ## FIXME WOW taken from stack but it's too fucking slow. Probably because of division. Have to profile

View File

@ -4,6 +4,9 @@ import Pyro4
from Snapshot import Snapshot from Snapshot import Snapshot
import time import time
from zfssmd_worker import DEFAULT_REFRESH_INTERVAL from zfssmd_worker import DEFAULT_REFRESH_INTERVAL
## FIXME Only debug
import pprint
from itertools import product
PYRO_URI = "PYRO:058b7dde9ec53de9235cfc57a07ce17a9eabfce3@./u:/run/zfssmd.sock" PYRO_URI = "PYRO:058b7dde9ec53de9235cfc57a07ce17a9eabfce3@./u:/run/zfssmd.sock"
@ -35,6 +38,27 @@ class ZFSSMDClient(object):
snapshot_object_list.append(snapshot_obj) snapshot_object_list.append(snapshot_obj)
return snapshot_object_list return snapshot_object_list
objects = (ZFSSMDClient().make_snapshot_objects()) def make_disk_objects(self):
for o in objects: disk_object_list = list()
print = (o.get_snapshot_zvol()+o.get_snapshot_name()+" "+o.get_snapshot_creation_time() )#+ " " + o.get_snapshot_used_size() + " " + o.get_snapshot_referenced_size()) #disk_list = list()
#snapshot_list = self.make_snapshot_objects()
#for snapshot in snapshot_list:
# disk = snapshot.get_disk_name()
# if disk not in disk_list:
# disk_list.append(disk)
#map(lambda (x,y):)
def list_snapshots(self):
## TODO make d
snapshot_dict = dict()
for o in self.make_snapshot_objects():
name = o.get_snapshot_name()
zvol = o.get_snapshot_zvol()
ctime = o.get_snapshot_creation_time()
used = o.get_snapshot_used_size()
ref = o.get_snapshot_referenced_size()
snapshot_dict.update ({name:[zvol,ctime,used,ref]})
return snapshot_dict
pp = pprint.PrettyPrinter()
pp.pprint(ZFSSMDClient().make_disk_objects())