import Pyro4 # from argparse import ArgumentParser ## TODO Arguments from Snapshot import Snapshot import time from zfssmd_worker import DEFAULT_REFRESH_INTERVAL PYRO_URI = "PYRO:058b7dde9ec53de9235cfc57a07ce17a9eabfce3@./u:/run/zfssmd.sock" class ZFSSMDClient(object): def __init__(self, uri=PYRO_URI): self.uri = uri self.pyro_conn = Pyro4.Proxy(self.uri) ## FIXME Check for old timestamp def check_old_timestamp(self, timestamp): target_interval = DEFAULT_REFRESH_INTERVAL * 2 if time.time() - timestamp <= target_interval: return False else: return True def get_snapshot_list(self): response = self.pyro_conn.get_current_list() timestamp = next(iter(response)) if (self.check_old_timestamp(timestamp)): print("WARNING! Data is older than supposed to be. Check daemon worker") slist = next(iter(response.values())) return slist def make_snapshot_objects(self): snapshot_object_list = list() for snapshot in self.get_snapshot_list(): snapshot_obj = Snapshot(snapshot) snapshot_object_list.append(snapshot_obj) return snapshot_object_list objects = (ZFSSMDClient().make_snapshot_objects()) for o in objects: print = (o.get_snapshot_zvol()+o.get_snapshot_name()+" "+o.get_snapshot_creation_time() )#+ " " + o.get_snapshot_used_size() + " " + o.get_snapshot_referenced_size())