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

job.py « node « fuse « bareos - github.com/bareos/python-bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6bbc2cb9ac14b3a36b3d35a784f4f1f0e4059770 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
Bareos specific Fuse node.
"""

from   bareos.fuse.node.bvfsdir import BvfsDir
from   bareos.fuse.node.directory import Directory
from   bareos.fuse.node.file import File
from   bareos.fuse.node.joblog import JobLog
import errno
import logging
from   pprint import pformat
import stat

class Job(Directory):
    def __init__(self, root, job):
        self.job = job
        super(Job, self).__init__(root, self.get_name())
        try:
            self.stat.st_ctime = self._convert_date_bareos_unix(self.job['starttime'])
        except KeyError:
            pass
        try:
            self.stat.st_mtime = self._convert_date_bareos_unix(self.job['realendtime'])
        except KeyError:
            pass
        if job['jobstatus'] == 'T' or job['jobstatus'] == 'E' or job['jobstatus'] == 'W':           
            self.set_static()

    @classmethod
    def get_id(cls, job):
        return job['jobid']

    def get_name(self):
        try:
            name = "jobid={jobid}_name={name}_client={client}_level={level}_status={jobstatus}".format(**self.job)
        except KeyError:
            try:
                name = "jobid={jobid}_name={name}_client={clientname}_level={level}_status={jobstatus}".format(**self.job)
            except KeyError:
                name = "jobid={jobid}_level={level}_status={jobstatus}".format(**self.job)
        return name

    def do_update(self):
        self.add_subnode(File, name="info.txt", content = pformat(self.job) + "\n")
        self.add_subnode(JobLog, name="job.log", job=self.job)
        self.add_subnode(BvfsDir, "data", self.job['jobid'], None)