public void DownloadPackage( string packageId, IVersion version, string feedId, Uri feedUri, ICredentials feedCredentials, bool forcePackageDownload, int maxDownloadAttempts, TimeSpan downloadAttemptBackoff, out string downloadedTo, out string hash, out long size) { var cacheDirectory = PackageDownloaderUtils.GetPackageRoot(feedId); downloadedTo = null; if (!forcePackageDownload) { Log.Info("Attempting to get from cache"); try { downloadedTo = SourceFromCache( packageId, version, cacheDirectory); } catch (Exception ex) { Log.Info("SourceFromCache() failed"); Log.Info("Exception starts"); Log.Info(ex.ToString()); Log.Info(ex.StackTrace); Log.Info("Exception ends"); } } if (downloadedTo == null) { downloadedTo = DownloadPackage( packageId, version, feedUri, feedCredentials, cacheDirectory, maxDownloadAttempts, downloadAttemptBackoff); } else { Log.VerboseFormat("Package was found in cache. No need to download. Using file: '{0}'", downloadedTo); } size = fileSystem.GetFileSize(downloadedTo); hash = downloadedTo .Map(path => FunctionalExtensions.Using( () => fileSystem.OpenFile(path, FileAccess.Read), stream => HashCalculator.Hash(stream))); }
public void Dispose() { if (AttachLogFile) { if (fileSystem.FileExists(logPath)) { Log.NewOctopusArtifact(fileSystem.GetFullPath(logPath), fileSystem.GetFileName(logPath), fileSystem.GetFileSize(logPath)); } //When terraform crashes, the information would be contained in the crash.log file. We should attach this since //we don't want to blow that information away in case it provides something relevant https://www.terraform.io/docs/internals/debugging.html#interpreting-a-crash-log if (fileSystem.FileExists(crashLogPath)) { Log.NewOctopusArtifact(fileSystem.GetFullPath(crashLogPath), fileSystem.GetFileName(crashLogPath), fileSystem.GetFileSize(crashLogPath)); } } }
public void Dispose() { var attachLogFile = variables.GetFlag(TerraformSpecialVariables.Action.Terraform.AttachLogFile); if (attachLogFile) { var crashLogPath = Path.Combine(deployment.CurrentDirectory, "crash.log"); if (fileSystem.FileExists(logPath)) { log.NewOctopusArtifact(fileSystem.GetFullPath(logPath), fileSystem.GetFileName(logPath), fileSystem.GetFileSize(logPath)); } //When terraform crashes, the information would be contained in the crash.log file. We should attach this since //we don't want to blow that information away in case it provides something relevant https://www.terraform.io/docs/internals/debugging.html#interpreting-a-crash-log if (fileSystem.FileExists(crashLogPath)) { log.NewOctopusArtifact(fileSystem.GetFullPath(crashLogPath), fileSystem.GetFileName(crashLogPath), fileSystem.GetFileSize(crashLogPath)); } } }