diff options
author | Joerg Steffens <joerg.steffens@bareos.com> | 2015-10-30 21:56:06 +0300 |
---|---|---|
committer | Joerg Steffens <joerg.steffens@bareos.com> | 2015-10-30 21:56:06 +0300 |
commit | 0b34c5b3959a8cb7ef7659162866b12c39e82523 (patch) | |
tree | 2c811c9b9d1e701342e9542c32eea532846cfa61 | |
parent | ccc5b9aa57316c7edd4e593fce90949855229401 (diff) |
added pool structure
-rw-r--r-- | bareos/fuse/node/__init__.py | 2 | ||||
-rw-r--r-- | bareos/fuse/node/pool.py | 34 | ||||
-rw-r--r-- | bareos/fuse/node/pools.py | 21 | ||||
-rw-r--r-- | bareos/fuse/node/volumelist.py (renamed from bareos/fuse/node/volumes.py) | 13 | ||||
-rw-r--r-- | bareos/fuse/root.py | 3 |
5 files changed, 65 insertions, 8 deletions
diff --git a/bareos/fuse/node/__init__.py b/bareos/fuse/node/__init__.py index 4a96491..a33ddfc 100644 --- a/bareos/fuse/node/__init__.py +++ b/bareos/fuse/node/__init__.py @@ -1,5 +1,5 @@ # ls *.py | sed -r "s/(.*)\.py/'\1', /" | tr '\n' ' ' -files = ['backups', 'base', 'bvfsdir', 'bvfsfile', 'client', 'clients', 'directory', 'file', 'job', 'joblog', 'jobs', 'jobslist', 'jobsname', 'status', 'volume', 'volumes', 'volumestatus'] +files = ['backups', 'base', 'bvfsdir', 'bvfsfile', 'client', 'clients', 'directory', 'file', 'job', 'joblog', 'jobs', 'jobslist', 'jobsname', 'pool', 'pools', 'status', 'volume', 'volumelist', 'volumestatus'] for i in files: module = __import__( "bareos.fuse.node." + i, globals(), locals(), ['*']) diff --git a/bareos/fuse/node/pool.py b/bareos/fuse/node/pool.py new file mode 100644 index 0000000..d7c689b --- /dev/null +++ b/bareos/fuse/node/pool.py @@ -0,0 +1,34 @@ +""" +Bareos specific Fuse node. +""" + +from bareos.fuse.node.directory import Directory +from bareos.fuse.node.file import File +from bareos.fuse.node.volumelist import VolumeList +from pprint import pformat + +class Pool(Directory): + def __init__(self, root, name, pool): + super(Pool, self).__init__(root, name) + self.pool = pool + + @classmethod + def get_id(cls, name, pool): + return name + + def do_update_stat(self): + data = self.bsock.call("llist pools count" % (self.selector)) + self.subnode_count = int(data['pools'][0]['count']) + + def do_update(self): + data = self.bsock.call("llist pools") + pools = data['pools'] + for i in pools: + self.add_subnode(Pool, i['name']) + + def do_update_stat(self): + self.subnode_count = 2 + + def do_update(self): + self.add_subnode(File, name="info.txt", content=pformat(self.pool) + "\n") + self.add_subnode(VolumeList, name="volumes", selector="pool=%s" % (self.name)) diff --git a/bareos/fuse/node/pools.py b/bareos/fuse/node/pools.py new file mode 100644 index 0000000..56626a5 --- /dev/null +++ b/bareos/fuse/node/pools.py @@ -0,0 +1,21 @@ +""" +Bareos specific Fuse node. +""" + +from bareos.fuse.node.directory import Directory +from bareos.fuse.node.pool import Pool + +class Pools(Directory): + def __init__(self, root, name): + super(Pools, self).__init__(root, name) + self.static = True + + @classmethod + def get_id(cls, name): + return "unique" + + def do_update(self): + data = self.bsock.call("llist pools") + pools = data['pools'] + for i in pools: + self.add_subnode(Pool, i['name'], i) diff --git a/bareos/fuse/node/volumes.py b/bareos/fuse/node/volumelist.py index 6cc8759..37d4e83 100644 --- a/bareos/fuse/node/volumes.py +++ b/bareos/fuse/node/volumelist.py @@ -6,16 +6,17 @@ from bareos.fuse.node.directory import Directory from bareos.fuse.node.volume import Volume from bareos.fuse.node.volumestatus import VolumeStatus -class Volumes(Directory): - def __init__(self, root, name): - super(Volumes, self).__init__(root, name) +class VolumeList(Directory): + def __init__(self, root, name, selector = 'all'): + super(VolumeList, self).__init__(root, name) + self.selector = selector @classmethod - def get_id(cls, name): - return "unique" + def get_id(cls, name, selector = 'all'): + return selector def do_update(self): - data = self.bsock.call("llist volumes all") + data = self.bsock.call("llist volumes %s" % (self.selector)) volumes = data['volumes'] for i in volumes: volumename = i['volumename'] diff --git a/bareos/fuse/root.py b/bareos/fuse/root.py index a80dae4..c83ad8e 100644 --- a/bareos/fuse/root.py +++ b/bareos/fuse/root.py @@ -22,6 +22,7 @@ class Root(Directory): super(Root, self).__init__(self, None) self.factory = NodeFactory(self) self.add_subnode(Jobs, "jobs") - self.add_subnode(Volumes, "volumes") + self.add_subnode(VolumeList, "volumes") + self.add_subnode(Pools, "pools") self.add_subnode(Clients, "clients") self.add_subnode(Status, ".bareosfs-status.txt") |