def build_completed_backups(backup_dir): domain_names = ("a", "b", "vm-10", "matching", "matching2") backup_properties = ( (arrow.get("2016-07-08 19:40:02").to("local"), None), (arrow.get("2016-07-08 18:40:02").to("local"), None), (arrow.get("2016-07-08 18:30:02").to("local"), None), (arrow.get("2016-07-08 17:40:02").to("local"), None), (arrow.get("2016-07-07 19:40:02").to("local"), None), (arrow.get("2016-07-07 21:40:02").to("local"), None), (arrow.get("2016-07-06 20:40:02").to("local"), None), (arrow.get("2016-04-08 19:40:02").to("local"), None), (arrow.get("2014-05-01 00:30:00").to("local"), "tar"), (arrow.get("2016-03-08 14:28:13").to("local"), "xz"), ) conn = MockConn() for domain_id, domain_name in enumerate(domain_names): domain_bdir = os.path.join(backup_dir, domain_name) os.mkdir(domain_bdir) domain = MockDomain(conn, name=domain_name, id=domain_id) dbackup = DomBackup( domain, domain_bdir, dev_disks=("vda", "vdb") ) for bakdate, compression in backup_properties: dbackup.compression = compression definition = build_complete_backup_files_from_domainbackup( dbackup, bakdate ) dbackup._dump_json_definition(definition) # create a bad json file with open(os.path.join(domain_bdir, "badfile.json"), "w"): pass return (domain_names, (bp[0] for bp in backup_properties))
def build_completed_backups(backup_dir): domain_names = ("a", "b", "vm-10", "matching", "matching2") backup_properties = ( (arrow.get("2016-07-08 19:40:02").to("local"), None), (arrow.get("2016-07-08 18:40:02").to("local"), None), (arrow.get("2016-07-08 18:30:02").to("local"), None), (arrow.get("2016-07-08 17:40:02").to("local"), None), (arrow.get("2016-07-07 19:40:02").to("local"), None), (arrow.get("2016-07-07 21:40:02").to("local"), None), (arrow.get("2016-07-06 20:40:02").to("local"), None), (arrow.get("2016-04-08 19:40:02").to("local"), None), (arrow.get("2014-05-01 00:30:00").to("local"), "tar"), (arrow.get("2016-03-08 14:28:13").to("local"), "xz"), ) conn = MockConn() for domain_id, domain_name in enumerate(domain_names): domain_bdir = os.path.join(backup_dir, domain_name) os.mkdir(domain_bdir) domain = MockDomain(conn, name=domain_name, id=domain_id) dbackup = DomBackup(domain, domain_bdir, dev_disks=("vda", "vdb")) for bakdate, compression in backup_properties: dbackup.compression = compression definition = build_complete_backup_files_from_domainbackup( dbackup, bakdate) dbackup._dump_json_definition(definition) # create a bad json file with open(os.path.join(domain_bdir, "badfile.json"), "w"): pass return (domain_names, (bp[0] for bp in backup_properties))
def test_dump_json_definition(self, build_mock_domain, tmpdir): target_dir = tmpdir.mkdir("json_dump") dombkup = DomBackup( dom=build_mock_domain, dev_disks=("vda", ), compression="xz", compression_lvl=4, target_dir=str(target_dir), ) definition = dombkup.get_definition() datenow = datetime.datetime.now() definition["date"] = datenow.timestamp() dombkup._dump_json_definition(definition) assert len(target_dir.listdir()) == 1 assert json.loads(target_dir.listdir()[0].read()) == definition