Exemplo n.º 1
0
 public async Task <bool> Copy(RsyncEntry frm, RsyncEntry to)
 {
     if (await Copy(frm.ConInfo, to.ConInfo, frm.Path, to.Path))
     {
         return(await SaveSyncedFiles(frm, to));
     }
     return(false);
 }
Exemplo n.º 2
0
        private async Task <bool> SaveSyncedFiles(RsyncEntry frm, RsyncEntry to)
        {
            var fromResult = await FindFilesWithUniqueIdRelative(frm);

            var toResult = await FindFilesWithUniqueIdRelative(to);

            foreach (var line in fromResult)
            {
                if (!toResult.Contains(line))
                {
                    logger.LogDebug($"File \"{line}\" not synced!");
                }
            }

            fromResult.RemoveAll(line => !toResult.Contains(line));

            fromResult.RemoveAll(line => ExcludedFiles.Any(f => line.Contains(f.Trim('*'))));

            var syncedFilesFullFilename = $"{frm.Path}/{syncedFilesFilename}";
            var echoCommand             = $"echo -e \"{string.Join("\n", fromResult)}\"" +
                                          $" > {syncedFilesFullFilename}";

            return(await InvokeSshCommand(frm.ConInfo, echoCommand));
        }
Exemplo n.º 3
0
 public AlienDir(List <BobDir> nodes, RsyncEntry entry) : base(entry)
 {
     Nodes = nodes;
 }
Exemplo n.º 4
0
 public Task <List <string> > FindSyncedFiles(RsyncEntry entry) =>
 FindSyncedFiles(entry.ConInfo, entry.Path);
Exemplo n.º 5
0
        public async Task <List <string> > FindFilesWithUniqueIdRelative(RsyncEntry entry)
        {
            var lines = await FindFilesWithUniqueId(entry.ConInfo, entry.Path);

            return(lines.Select(s => s.Replace(entry.Path, string.Empty)).ToList());
        }
Exemplo n.º 6
0
 public Task <bool> RemoveFiles(RsyncEntry entry, IEnumerable <string> filenames) =>
 RemoveFiles(entry.ConInfo, filenames);
Exemplo n.º 7
0
 public DiskDir(string diskName, BobDir bob, RsyncEntry entry)
     : base(entry)
 {
     DiskName = diskName;
     Bob      = bob;
 }
Exemplo n.º 8
0
 public BobDir(List <VDiskDir> vDisks, RsyncEntry entry) : base(entry)
 {
     VDisks = vDisks;
 }
Exemplo n.º 9
0
 public VDiskDir(int id, List <PartitionDir> partitions, RsyncEntry entry)
     : base(entry)
 {
     Id         = id;
     Partitions = partitions;
 }
Exemplo n.º 10
0
 public NodeDir(List <DiskDir> disks, RsyncEntry entry) : base(entry)
 {
     Disks = disks;
 }