public static File calculatePackageZipFile(PackageMetadata packageMetadata, File targetPath) { return new File(targetPath, packageMetadata.getName() + "-" + packageMetadata.getVersion() + ".zip"); } }
public static File calculatePackageZipFile(PackageMetadata packageMetadata, File targetPath) { return new File(targetPath, packageMetadata.getName() + "-" + packageMetadata.getVersion() + ".zip"); } }
@Transactional public void delete(PackageMetadata packageMetadata) { Assert.notNull(packageMetadata, "Can't download PackageMetadata, it is a null value."); Assert.hasText(packageMetadata.getName(), "Package name can not be empty."); Assert.hasText(packageMetadata.getVersion(), "Package version can not be empty."); Assert.isTrue(packageMetadata.getRepositoryId() > 0, "Invalid Repository ID."); this.packageMetadataRepository.delete(packageMetadata); }
@Transactional public void delete(PackageMetadata packageMetadata) { Assert.notNull(packageMetadata, "Can't download PackageMetadata, it is a null value."); Assert.hasText(packageMetadata.getName(), "Package name can not be empty."); Assert.hasText(packageMetadata.getVersion(), "Package version can not be empty."); Assert.isTrue(packageMetadata.getRepositoryId() > 0, "Invalid Repository ID."); this.packageMetadataRepository.delete(packageMetadata); }
@ShellMethod(key = "package upload", value = "Upload a package.") public String upload(@ShellOption(help = "the package to be uploaded") String path, @ShellOption(help = "the local repository name to upload to", defaultValue = NULL) String repoName) { UploadRequest uploadRequest = new UploadRequest(); try { File file = ResourceUtils.getFile(path); String zipFileName = file.getName(); String fileName = zipFileName.substring(0, zipFileName.lastIndexOf("-")); String versionAndExtension = zipFileName.substring(fileName.length() + 1); String extension = versionAndExtension.substring(versionAndExtension.lastIndexOf(".") + 1); String version = versionAndExtension.replaceAll("." + extension, ""); uploadRequest.setName(fileName); uploadRequest.setVersion(version); uploadRequest.setExtension(extension); uploadRequest.setRepoName(StringUtils.hasText(repoName) ? repoName : "local"); uploadRequest.setPackageFileAsBytes(Files.readAllBytes(file.toPath())); } catch (FileNotFoundException e) { throw new IllegalArgumentException("File Not found: " + e.getMessage()); } catch (IOException e) { throw new IllegalArgumentException(e.getMessage()); } PackageMetadata packageMetadata = skipperClient.upload(uploadRequest); return "Package uploaded successfully:[" + packageMetadata.getName() + ":" + packageMetadata.getVersion() + "]"; }
@Override public File write(Package pkg, File targetDirectory) { PackageMetadata packageMetadata = pkg.getMetadata(); File tmpDir = TempFileUtils.createTempDirectory("skipper" + packageMetadata.getName()).toFile(); File rootPackageDir = new File(tmpDir, String.format("%s-%s", packageMetadata.getName(), packageMetadata.getVersion())); rootPackageDir.mkdir(); writePackage(pkg, rootPackageDir); if (!pkg.getDependencies().isEmpty()) { File packagesDir = new File(rootPackageDir, "packages"); packagesDir.mkdir(); for (Package dependencyPkg : pkg.getDependencies()) { File packageDir = new File(packagesDir, dependencyPkg.getMetadata().getName()); packageDir.mkdir(); writePackage(dependencyPkg, packageDir); } } File targetZipFile = PackageFileUtils.calculatePackageZipFile(pkg.getMetadata(), targetDirectory); ZipUtil.pack(rootPackageDir, targetZipFile, true); FileSystemUtils.deleteRecursively(tmpDir); return targetZipFile; }
private void loadAllPackageMetadata() { try { List<PackageMetadata> packageMetadataList = this.packageMetadataService.downloadPackageMetadata(); for (PackageMetadata packageMetadata : packageMetadataList) { if (this.packageMetadataRepository.findByRepositoryIdAndNameAndVersion( packageMetadata.getRepositoryId(), packageMetadata.getName(), packageMetadata.getVersion()) == null) { this.packageMetadataRepository.save(packageMetadata); } } } catch (SkipperException e) { logger.warn("Could not load package metadata from remote repositories", e); } }
private void loadAllPackageMetadata() { try { List<PackageMetadata> packageMetadataList = this.packageMetadataService.downloadPackageMetadata(); for (PackageMetadata packageMetadata : packageMetadataList) { if (this.packageMetadataRepository.findByRepositoryIdAndNameAndVersion( packageMetadata.getRepositoryId(), packageMetadata.getName(), packageMetadata.getVersion()) == null) { this.packageMetadataRepository.save(packageMetadata); } } } catch (SkipperException e) { logger.warn("Could not load package metadata from remote repositories", e); } }
@Override public File write(Package pkg, File targetDirectory) { PackageMetadata packageMetadata = pkg.getMetadata(); File tmpDir = TempFileUtils.createTempDirectory("skipper" + packageMetadata.getName()).toFile(); File rootPackageDir = new File(tmpDir, String.format("%s-%s", packageMetadata.getName(), packageMetadata.getVersion())); rootPackageDir.mkdir(); writePackage(pkg, rootPackageDir); if (!pkg.getDependencies().isEmpty()) { File packagesDir = new File(rootPackageDir, "packages"); packagesDir.mkdir(); for (Package dependencyPkg : pkg.getDependencies()) { File packageDir = new File(packagesDir, dependencyPkg.getMetadata().getName()); packageDir.mkdir(); writePackage(dependencyPkg, packageDir); } } File targetZipFile = PackageFileUtils.calculatePackageZipFile(pkg.getMetadata(), targetDirectory); ZipUtil.pack(rootPackageDir, targetZipFile, true); FileSystemUtils.deleteRecursively(tmpDir); return targetZipFile; }
private Package deserializePackageFromDatabase(PackageMetadata packageMetadata) { // package file was uploaded to a local DB hosted repository Path tmpDirPath = null; try { tmpDirPath = TempFileUtils.createTempDirectory("skipper"); File targetPath = new File(tmpDirPath + File.separator + packageMetadata.getName()); targetPath.mkdirs(); File targetFile = PackageFileUtils.calculatePackageZipFile(packageMetadata, targetPath); try { StreamUtils.copy(packageMetadata.getPackageFile().getPackageBytes(), new FileOutputStream(targetFile)); } catch (IOException e) { throw new SkipperException( "Could not copy package file for " + packageMetadata.getName() + "-" + packageMetadata.getVersion() + " from database to target file " + targetFile, e); } ZipUtil.unpack(targetFile, targetPath); Package pkgToReturn = this.packageReader.read(new File(targetPath, packageMetadata.getName() + "-" + packageMetadata.getVersion())); pkgToReturn.setMetadata(packageMetadata); return pkgToReturn; } finally { if (tmpDirPath != null && !FileSystemUtils.deleteRecursively(tmpDirPath.toFile())) { logger.warn("Temporary directory can not be deleted: " + tmpDirPath); } } }
private Package deserializePackageFromDatabase(PackageMetadata packageMetadata) { // package file was uploaded to a local DB hosted repository Path tmpDirPath = null; try { tmpDirPath = TempFileUtils.createTempDirectory("skipper"); File targetPath = new File(tmpDirPath + File.separator + packageMetadata.getName()); targetPath.mkdirs(); File targetFile = PackageFileUtils.calculatePackageZipFile(packageMetadata, targetPath); try { StreamUtils.copy(packageMetadata.getPackageFile().getPackageBytes(), new FileOutputStream(targetFile)); } catch (IOException e) { throw new SkipperException( "Could not copy package file for " + packageMetadata.getName() + "-" + packageMetadata.getVersion() + " from database to target file " + targetFile, e); } ZipUtil.unpack(targetFile, targetPath); Package pkgToReturn = this.packageReader.read(new File(targetPath, packageMetadata.getName() + "-" + packageMetadata.getVersion())); pkgToReturn.setMetadata(packageMetadata); return pkgToReturn; } finally { if (tmpDirPath != null && !FileSystemUtils.deleteRecursively(tmpDirPath.toFile())) { logger.warn("Temporary directory can not be deleted: " + tmpDirPath); } } }
packageMetadata.getVersion()); packageMetadata.getName(), packageMetadata.getVersion(), sourceResource.getDescription(), targetFile); try { + packageMetadata.getVersion() + " from " + sourceResource.getDescription() + " to target file " + targetFile + ". " + e.getMessage(), e); Package pkgToReturn = this.packageReader .read(new File(targetPath.toFile(), packageMetadata.getName() + "-" + packageMetadata.getVersion())); packageMetadata.setPackageFile(new PackageFile(Files.readAllBytes(targetFile.toPath()))); + packageMetadata.getName() + "-" + packageMetadata.getVersion() + ". PackageMetadata repositoryId = " + packageMetadata.getRepositoryId(), ex); + packageMetadata.getName() + "-" + packageMetadata.getVersion() + ". PackageMetadata repositoryId = " + packageMetadata.getRepositoryId() + "No repository found.", ex);
packageMetadata.getVersion()); packageMetadata.getName(), packageMetadata.getVersion(), sourceResource.getDescription(), targetFile); try { + packageMetadata.getVersion() + " from " + sourceResource.getDescription() + " to target file " + targetFile + ". " + e.getMessage(), e); Package pkgToReturn = this.packageReader .read(new File(targetPath.toFile(), packageMetadata.getName() + "-" + packageMetadata.getVersion())); packageMetadata.setPackageFile(new PackageFile(Files.readAllBytes(targetFile.toPath()))); + packageMetadata.getName() + "-" + packageMetadata.getVersion() + ". PackageMetadata repositoryId = " + packageMetadata.getRepositoryId(), ex); + packageMetadata.getName() + "-" + packageMetadata.getVersion() + ". PackageMetadata repositoryId = " + packageMetadata.getRepositoryId() + "No repository found.", ex);
PackageMetadata packageMetadata = packageToUpload.getMetadata(); if (!packageMetadata.getName().equals(uploadRequest.getName()) || !packageMetadata.getVersion().equals(uploadRequest.getVersion())) { throw new SkipperException(String.format("Package definition in the request [%s:%s] " + "differs from one inside the package.yml [%s:%s]", uploadRequest.getName(), uploadRequest.getVersion(), packageMetadata.getName(), packageMetadata.getVersion()));
PackageMetadata packageMetadata = packageToUpload.getMetadata(); if (!packageMetadata.getName().equals(uploadRequest.getName()) || !packageMetadata.getVersion().equals(uploadRequest.getVersion())) { throw new SkipperException(String.format("Package definition in the request [%s:%s] " + "differs from one inside the package.yml [%s:%s]", uploadRequest.getName(), uploadRequest.getVersion(), packageMetadata.getName(), packageMetadata.getVersion()));
errorMessages.add(String.format("Can not delete Package Metadata [%s:%s] in Repository [%s]. " + "Not all releases of this package have the status DELETED. Active Releases [%s]", packageMetadata.getName(), packageMetadata.getVersion(), repository.getName(), StringUtils.collectionToCommaDelimitedString(activeReleaseNames)));
errorMessages.add(String.format("Can not delete Package Metadata [%s:%s] in Repository [%s]. " + "Not all releases of this package have the status DELETED. Active Releases [%s]", packageMetadata.getName(), packageMetadata.getVersion(), repository.getName(), StringUtils.collectionToCommaDelimitedString(activeReleaseNames)));
packageIdentifier.setPackageVersion(releaseToRollback.getPkg().getMetadata().getVersion()); packageIdentifier.setRepositoryName(releaseToRollback.getPkg().getMetadata().getRepositoryName());
packageIdentifier.setPackageVersion(releaseToRollback.getPkg().getMetadata().getVersion()); packageIdentifier.setRepositoryName(releaseToRollback.getPkg().getMetadata().getRepositoryName());