private void validateInstallRequest(InstallRequest installRequest) { Assert.notNull(installRequest.getInstallProperties(), "Install properties must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getPlatformName()), "Platform name must not be empty"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getReleaseName()), "Release name must not be empty"); Assert.notNull(installRequest.getPackageIdentifier(), "Package identifier must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getPackageIdentifier().getPackageName()), "Package name must not be empty"); try { Release latestRelease = this.releaseRepository.findLatestRelease(installRequest.getInstallProperties() .getReleaseName()); if (latestRelease != null && !latestRelease.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) { throw new SkipperException("Release with the name [" + installRequest.getInstallProperties().getReleaseName() + "] already exists and it is not deleted."); } } catch (ReleaseNotFoundException e) { // ignore as this is expected. } }
private void validateInstallRequest(InstallRequest installRequest) { Assert.notNull(installRequest.getInstallProperties(), "Install properties must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getPlatformName()), "Platform name must not be empty"); Assert.isTrue(StringUtils.hasText(installRequest.getInstallProperties().getReleaseName()), "Release name must not be empty"); Assert.notNull(installRequest.getPackageIdentifier(), "Package identifier must not be null"); Assert.isTrue(StringUtils.hasText(installRequest.getPackageIdentifier().getPackageName()), "Package name must not be empty"); try { Release latestRelease = this.releaseRepository.findLatestRelease(installRequest.getInstallProperties() .getReleaseName()); if (latestRelease != null && !latestRelease.getInfo().getStatus().getStatusCode().equals(StatusCode.DELETED)) { throw new SkipperException("Release with the name [" + installRequest.getInstallProperties().getReleaseName() + "] already exists and it is not deleted."); } } catch (ReleaseNotFoundException e) { // ignore as this is expected. } }
/** * Downloads the package metadata and package zip file specified by PackageIdentifier * property of the DeploymentRequest. Deploys the package on the target platform. * * @param installRequest the install request * @return the Release object associated with this deployment */ @Transactional public Release install(InstallRequest installRequest) { validateInstallRequest(installRequest); PackageIdentifier packageIdentifier = installRequest.getPackageIdentifier(); String packageVersion = packageIdentifier.getPackageVersion(); String packageName = packageIdentifier.getPackageName(); PackageMetadata packageMetadata; if (!StringUtils.hasText(packageVersion)) { List<PackageMetadata> packageMetadataList = this.packageMetadataRepository.findByNameRequired(packageName); if (packageMetadataList.size() == 1) { packageMetadata = packageMetadataList.get(0); } else { packageMetadata = this.packageMetadataRepository.findFirstByNameOrderByVersionDesc(packageName); } } else { packageMetadata = this.packageMetadataRepository.findByNameAndOptionalVersionRequired(packageName, packageVersion); } return install(packageMetadata, installRequest.getInstallProperties()); }
/** * Downloads the package metadata and package zip file specified by PackageIdentifier * property of the DeploymentRequest. Deploys the package on the target platform. * * @param installRequest the install request * @return the Release object associated with this deployment */ @Transactional public Release install(InstallRequest installRequest) { validateInstallRequest(installRequest); PackageIdentifier packageIdentifier = installRequest.getPackageIdentifier(); String packageVersion = packageIdentifier.getPackageVersion(); String packageName = packageIdentifier.getPackageName(); PackageMetadata packageMetadata; if (!StringUtils.hasText(packageVersion)) { List<PackageMetadata> packageMetadataList = this.packageMetadataRepository.findByNameRequired(packageName); if (packageMetadataList.size() == 1) { packageMetadata = packageMetadataList.get(0); } else { packageMetadata = this.packageMetadataRepository.findFirstByNameOrderByVersionDesc(packageName); } } else { packageMetadata = this.packageMetadataRepository.findByNameAndOptionalVersionRequired(packageName, packageVersion); } return install(packageMetadata, installRequest.getInstallProperties()); }
private Release installReleaseInternal(InstallRequest installRequest, Long id, InstallProperties installProperties) { String releaseName = installRequest != null ? installRequest.getInstallProperties().getReleaseName() : installProperties.getReleaseName(); Message<SkipperEvents> message = MessageBuilder .withPayload(SkipperEvents.INSTALL) .setHeader(SkipperEventHeaders.INSTALL_REQUEST, installRequest) .setHeader(SkipperEventHeaders.INSTALL_ID, id) .setHeader(SkipperEventHeaders.INSTALL_PROPERTIES, installProperties) .build(); return handleMessageAndWait(message, releaseName); }
private Release installReleaseInternal(InstallRequest installRequest, Long id, InstallProperties installProperties) { String releaseName = installRequest != null ? installRequest.getInstallProperties().getReleaseName() : installProperties.getReleaseName(); Message<SkipperEvents> message = MessageBuilder .withPayload(SkipperEvents.INSTALL) .setHeader(SkipperEventHeaders.INSTALL_REQUEST, installRequest) .setHeader(SkipperEventHeaders.INSTALL_ID, id) .setHeader(SkipperEventHeaders.INSTALL_PROPERTIES, installProperties) .build(); return handleMessageAndWait(message, releaseName); }