Ejemplo n.º 1
0
def listJobs(sort):
    with Pidfile(config().lockfile, logger().debug, logger().error):
        # Run director
        directorInstance = director()
        jobs = directorInstance.getJobArray()
        sizes = {}
        averages = {}
        tot_size = 0
        tot_avg = 0
        for job in jobs:
            sizes[job.hostname], averages[
                job.hostname] = director().getBackupsSize(job)
        aux = sorted(sizes.items(), key=lambda x: x[1], reverse=True)
        if sort == 'average':
            aux = sorted(averages.items(), key=lambda x: x[1], reverse=True)
        x = PrettyTable([
            'Hostname', 'Estimated total backup size',
            'Average backup size increase'
        ])
        for elem in aux:
            hostname = elem[0]
            tot_size += sizes[hostname]
            tot_avg += averages[hostname]
            size = jinjafilters()._bytesToReadableStr(sizes[hostname])
            avg = jinjafilters()._bytesToReadableStr(averages[hostname])
            x.add_row([hostname, size, avg])
        tot_size = jinjafilters()._bytesToReadableStr(tot_size)
        tot_avg = jinjafilters()._bytesToReadableStr(tot_avg)
        x.add_row(['Total', tot_size, tot_avg])
        x.align = "l"
        x.padding_width = 1
        print(x)
Ejemplo n.º 2
0
 def printOutput(self, hostname):
     ret = 1
     l = self.getList(hostname)
     if l:
         x = PrettyTable([
             'Hostname', 'Backup status', 'Start time', 'Duration',
             'Total number of files', 'Total filesize'
         ])
         backupState = 'Failed'
         hostname = l[0]['hostname']
         totalNumberOfFiles = jinjafilters()._intToReadableStr(
             l[0]['rsync_number_of_files'])
         totalFileSize = jinjafilters()._bytesToReadableStr(
             l[0]['rsync_total_file_size'])
         duration = jinjafilters()._secondsToReadableStr(
             l[0]['enddatetime'] - l[0]['startdatetime'] + 1, True)
         starttime = jinjafilters()._epochToStrDate(l[0]['startdatetime'],
                                                    "%d-%m-%Y %H:%M:%S")
         if l[0]['rsync_backup_status'] == 1:
             backupState = 'Ok'
             ret = 0
         else:
             duration = '-'
             totalNumberOfFiles = '-'
             totalFileSize = '-'
         x.add_row([
             hostname, backupState, starttime, duration, totalNumberOfFiles,
             totalFileSize
         ])
         x.align = "l"
         x.padding_width = 1
         print(x)
     else:
         print("Could not find hostname: [%s]" % hostname)
     return ret
Ejemplo n.º 3
0
 def printOutput(self, hostname):
     ret = 1
     l = self.getList(hostname)
     if l:
         x = PrettyTable(['Hostname', 'Backup status', 'Start time', 'Duration', 'Total number of files', 'Total filesize'])
         backupState = 'Failed'
         hostname = l[0]['hostname']
         totalNumberOfFiles = jinjafilters()._intToReadableStr(l[0]['rsync_number_of_files'])
         totalFileSize = jinjafilters()._bytesToReadableStr(l[0]['rsync_total_file_size'])
         duration = jinjafilters()._secondsToReadableStr(l[0]['enddatetime'] - l[0]['startdatetime'] + 1, True)
         starttime = jinjafilters()._epochToStrDate(l[0]['startdatetime'], "%d-%m-%Y %H:%M:%S")
         if l[0]['rsync_backup_status'] == 1:
             backupState = 'Ok'
             ret = 0
         else:
             duration = '-'
             totalNumberOfFiles = '-'
             totalFileSize = '-'
         x.add_row([hostname, backupState, starttime, duration, totalNumberOfFiles, totalFileSize])
         x.align = "l"
         x.padding_width = 1
         print(x)
     else:
         print("Could not find hostname: [%s]" % hostname)
     return ret
Ejemplo n.º 4
0
def listJobs(sort):
    with Pidfile(config().lockfile, logger().debug, logger().error):
        # Run director
        directorInstance = director()
        jobs = directorInstance.getJobArray()
        sizes = {}
        averages = {}
        tot_size=0
        tot_avg=0
        for job in jobs:
            sizes[job.hostname], averages[job.hostname] = director().getBackupsSize(job)
        aux = sorted(sizes.items(), key=lambda x: x[1], reverse=True)
        if sort == 'average':
            aux = sorted(averages.items(), key=lambda x: x[1], reverse=True)
        x = PrettyTable(['Hostname', 'Estimated total backup size', 'Average backup size increase'])
        for elem in aux:
            hostname = elem[0]
            tot_size += sizes[hostname]
            tot_avg += averages[hostname] 
            size = jinjafilters()._bytesToReadableStr(sizes[hostname])
            avg = jinjafilters()._bytesToReadableStr(averages[hostname])
            x.add_row([hostname, size, avg])
        tot_size = jinjafilters()._bytesToReadableStr(tot_size)
        tot_avg = jinjafilters()._bytesToReadableStr(tot_avg)
        x.add_row(['Total', tot_size, tot_avg])
        x.align = "l"
        x.padding_width = 1
        print(x)
Ejemplo n.º 5
0
 def getHtmlEmailBody(self, state, hosts, missinghosts, stats, durationstats, jobrunhistory, jobs):
     env = Environment(loader=PackageLoader('autorsyncbackup', 'templates'))
     env.filters['datetimeformat'] = jinjafilters()._epochToStrDate
     env.filters['bytesformat'] = jinjafilters()._bytesToReadableStr
     env.filters['secondsformat'] = jinjafilters()._secondsToReadableStr
     env.filters['numberformat'] = jinjafilters()._intToReadableStr
     template = env.get_template('email.j2')
     return template.render(state=state, hosts=hosts, missinghosts=missinghosts, stats=stats, durationstats=durationstats, jobrunhistory=jobrunhistory, jobs=jobs)
Ejemplo n.º 6
0
 def getHtmlExceptionBody(self, exc):
     env = Environment(loader=PackageLoader('autorsyncbackup', 'templates'))
     env.filters['datetimeformat'] = jinjafilters()._epochToStrDate
     env.filters['bytesformat'] = jinjafilters()._bytesToReadableStr
     env.filters['secondsformat'] = jinjafilters()._secondsToReadableStr
     env.filters['numberformat'] = jinjafilters()._intToReadableStr
     env.filters['nl2br'] = jinjafilters()._nl2br
     template = env.get_template('email_exc.j2')
     return template.render(exc=exc)
Ejemplo n.º 7
0
 def getTextExceptionBody(self, exc):
     env = Environment(loader=PackageLoader('autorsyncbackup', 'templates'))
     env.filters['datetimeformat'] = jinjafilters()._epochToStrDate
     env.filters['bytesformat'] = jinjafilters()._bytesToReadableStr
     env.filters['secondsformat'] = jinjafilters()._secondsToReadableStr
     env.filters['numberformat'] = jinjafilters()._intToReadableStr
     env.filters['nl2br'] = jinjafilters()._nl2br
     template = env.get_template('text_email_exc.j2')
     return template.render(exc=exc)
Ejemplo n.º 8
0
 def getTextEmailBody(self, state, hosts, missinghosts, stats,
                      durationstats, jobrunhistory, jobs, sizes, averages):
     env = Environment(loader=PackageLoader('autorsyncbackup', 'templates'))
     env.filters['datetimeformat'] = jinjafilters()._epochToStrDate
     env.filters['bytesformat'] = jinjafilters()._bytesToReadableStr
     env.filters['secondsformat'] = jinjafilters()._secondsToReadableStr
     env.filters['numberformat'] = jinjafilters()._intToReadableStr
     env.filters['nl2br'] = jinjafilters()._nl2br
     template = env.get_template('text_email.j2')
     return template.render(state=state,
                            hosts=hosts,
                            missinghosts=missinghosts,
                            stats=stats,
                            durationstats=durationstats,
                            jobrunhistory=jobrunhistory,
                            jobs=jobs,
                            sizes=sizes,
                            averages=averages)
Ejemplo n.º 9
0
def filters():
    filters = jinjafilters()

    yield filters