Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/python-bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Steffens <joerg.steffens@bareos.com>2015-10-30 21:56:06 +0300
committerJoerg Steffens <joerg.steffens@bareos.com>2015-10-30 21:56:06 +0300
commit0b34c5b3959a8cb7ef7659162866b12c39e82523 (patch)
tree2c811c9b9d1e701342e9542c32eea532846cfa61
parentccc5b9aa57316c7edd4e593fce90949855229401 (diff)
added pool structure
-rw-r--r--bareos/fuse/node/__init__.py2
-rw-r--r--bareos/fuse/node/pool.py34
-rw-r--r--bareos/fuse/node/pools.py21
-rw-r--r--bareos/fuse/node/volumelist.py (renamed from bareos/fuse/node/volumes.py)13
-rw-r--r--bareos/fuse/root.py3
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")