public void CopyFromVM(string remoteFilePathGlob, string localFilePath, bool recursive, bool force) { CheckProfileCanResolveSlave(); Log(string.Format("Copying from remote path '{0}' to local path '{1}'{2}{3}.", localFilePath, remoteFilePathGlob, recursive ? " recursively" : "", force ? " force overwrite" : "")); var client = GetSlaveClient(); EnumerateRequest enumerateRequest = new EnumerateRequest() { PathGlob = remoteFilePathGlob, Recursive = recursive }; EnumerateResponse enumerateResponse = client.Enumerate(enumerateRequest); if (enumerateResponse.Items.Count == 0 && !FileUtil.HasWildcard(remoteFilePathGlob)) { throw new OperationFailedException() { Why = string.Format("Remote file{0} not found '{1}'.", recursive ? " or directory" : "", remoteFilePathGlob) } } ; foreach (EnumerateItem item in enumerateResponse.Items) { string path = Path.Combine(localFilePath, item.RelativePath); if (item.Kind == EnumerateItemKind.DIRECTORY) { if (!Directory.Exists(path)) { Log(string.Format("Creating directory '{0}'.", item.RelativePath)); Directory.CreateDirectory(path); } } else { Log(string.Format("Copying '{0}'.", item.RelativePath)); ReadFileRequest request = new ReadFileRequest() { Path = item.FullPath }; ReadFileResponse response = client.ReadFile(request); if (!force && File.Exists(path)) { throw new OperationFailedException() { Why = string.Format("Local file already exists '{0}'.", path) } } ; File.WriteAllBytes(path, response.Contents); } } }
public override EnumerateResponse Enumerate(EnumerateRequest request) { log.InfoFormat("Enumerate:\n Path: {0}\n Recursive: {1}", request.PathGlob, request.Recursive); EnumerateResponse response = new EnumerateResponse(); response.Items = new List <EnumerateItem>(); FileUtil.TraverseFiles(request.PathGlob, request.Recursive, (file, relativePath) => response.Items.Add(new EnumerateItem() { Kind = EnumerateItemKind.FILE, RelativePath = relativePath, FullPath = file.FullName }), (directory, relativePath) => response.Items.Add(new EnumerateItem() { Kind = EnumerateItemKind.DIRECTORY, RelativePath = relativePath, FullPath = directory.FullName })); return(response); }
public abstract EnumerateResponse Enumerate(EnumerateRequest request);
public override EnumerateResponse Enumerate(EnumerateRequest request) { log.InfoFormat("Enumerate:\n Path: {0}\n Recursive: {1}", request.PathGlob, request.Recursive); EnumerateResponse response = new EnumerateResponse(); response.Items = new List<EnumerateItem>(); FileUtil.TraverseFiles(request.PathGlob, request.Recursive, (file, relativePath) => response.Items.Add(new EnumerateItem() { Kind = EnumerateItemKind.FILE, RelativePath = relativePath, FullPath = file.FullName }), (directory, relativePath) => response.Items.Add(new EnumerateItem() { Kind = EnumerateItemKind.DIRECTORY, RelativePath = relativePath, FullPath = directory.FullName })); return response; }
public void CopyFromVM(string remoteFilePathGlob, string localFilePath, bool recursive, bool force) { CheckProfileCanResolveSlave(); Log(string.Format("Copying from remote path '{0}' to local path '{1}'{2}{3}.", localFilePath, remoteFilePathGlob, recursive ? " recursively" : "", force ? " force overwrite" : "")); var client = GetSlaveClient(); EnumerateRequest enumerateRequest = new EnumerateRequest() { PathGlob = remoteFilePathGlob, Recursive = recursive }; EnumerateResponse enumerateResponse = client.Enumerate(enumerateRequest); if (enumerateResponse.Items.Count == 0 && !FileUtil.HasWildcard(remoteFilePathGlob)) throw new OperationFailedException() { Why = string.Format("Remote file{0} not found '{1}'.", recursive ? " or directory" : "", remoteFilePathGlob) }; foreach (EnumerateItem item in enumerateResponse.Items) { string path = Path.Combine(localFilePath, item.RelativePath); if (item.Kind == EnumerateItemKind.DIRECTORY) { if (!Directory.Exists(path)) { Log(string.Format("Creating directory '{0}'.", item.RelativePath)); Directory.CreateDirectory(path); } } else { Log(string.Format("Copying '{0}'.", item.RelativePath)); ReadFileRequest request = new ReadFileRequest() { Path = item.FullPath }; ReadFileResponse response = client.ReadFile(request); if (! force && File.Exists(path)) throw new OperationFailedException() { Why = string.Format("Local file already exists '{0}'.", path) }; File.WriteAllBytes(path, response.Contents); } } }
public EnumerateResponse Enumerate(EnumerateRequest request) { return(_service.Enumerate(request)); }
public EnumerateResponse Enumerate(EnumerateRequest request) { return _service.Enumerate(request); }
EnumerateResponse IWSEnumerationContract.Enumerate(EnumerateRequest request) { return(_enumerationServer.Enumerate(request)); }