IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 8, 2019, 5:05:19 PM (7 years ago)
Author:
fairlamb
Message:

run_tar added to backup class + tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ipp-259_genericise_backups/tools/backups/backup.py

    r40923 r40924  
    11import configparser
     2import datetime
    23import os.path as path
    34import socket
     
    153154    def _run_tar(self):
    154155        if self.run_tar is None or False:
    155             return False
    156         return True
     156            return 0
     157
     158        dests = self.default_dict['backup_paths']
     159
     160        filename = self.tar_dict['target_filename']
     161        if 'prefix_date' in self.tar_dict.keys() and self.tar_dict['prefix_date']:
     162            filename = f"{get_date()}_{filename}"
     163        filename = path.join(dests[0], filename)  # may need some tar suffix magic
     164
     165        add_args = [] if 'additional_args' not in self.tar_dict.keys() else self.tar_dict['additional_args']
     166        all_args = add_args + [filename] + self.tar_dict['sources']
     167
     168        try:
     169            print(all_args)
     170            sub_utils.tar_wrapper(all_args)
     171            sub_utils.chmod_wrapper(['774', filename])
     172            # copy to backups
     173            if len(dests) == 1:
     174                return 0
     175            for d in range(1, len(dests)):
     176                sub_utils.cp_wrapper([ filename, dests[d]])
     177        except errs.SubprocessError as e:
     178            raise errs.SubprocessError() from e
     179        return 0
    157180
    158181    def _run_rsync(self):
    159         if self.run_rsync is None or False:
    160             return False
    161         return True
     182        raise Exception("Not implemented")
    162183
    163184    def _run_mysqldump(self):
    164         if self.run_mysqldump is None or False:
    165             return False
    166         return True
     185        raise Exception("Not implemented")
     186
     187
     188def get_date(custom_date=None, custom_format="%Y-%b-%d"):
     189        # Format is currently: 2019-10-08
     190        if custom_date is not None:
     191            return custom_date.strftime(custom_format)
     192        return datetime.date.today().strftime(custom_format)
Note: See TracChangeset for help on using the changeset viewer.