package alien4cloud.it.setup; import java.nio.file.Files; import java.nio.file.Path; import alien4cloud.git.RepositoryManager; import alien4cloud.it.Context; import alien4cloud.it.common.CommonStepDefinitions; import alien4cloud.utils.FileUtil; import cucumber.api.java.en.And; public class SetupStepDefinitions { private final static RepositoryManager REPOSITORY_MANAGER = new RepositoryManager(); private static final CommonStepDefinitions COMMON_STEP_DEFINITIONS = new CommonStepDefinitions(); @And("^I checkout the git archive from url \"([^\"]*)\" branch \"([^\"]*)\"$") public void I_checkout_the_git_archive_from_url_branch(String gitURL, String branch) throws Throwable { String localDirectoryName = gitURL.substring(gitURL.lastIndexOf('/') + 1); if (localDirectoryName.endsWith(Context.GIT_URL_SUFFIX)) { localDirectoryName = localDirectoryName.substring(0, localDirectoryName.length() - Context.GIT_URL_SUFFIX.length()); } REPOSITORY_MANAGER.cloneOrCheckout(Context.GIT_ARTIFACT_TARGET_PATH, gitURL, branch, localDirectoryName); } public void uploadArchive(Path source) throws Throwable { Path csarTargetPath = Context.CSAR_TARGET_PATH.resolve(source.getFileName() + ".csar"); FileUtil.zip(source, csarTargetPath); Context.getInstance().registerRestResponse(Context.getRestClientInstance().postMultipart("/rest/v1/csars", "file", Files.newInputStream(csarTargetPath))); COMMON_STEP_DEFINITIONS.I_should_receive_a_RestResponse_with_no_error(); } @And("^I upload the git archive \"([^\"]*)\"$") public void I_upload_the_git_archive(String folderToUpload) throws Throwable { Path csarSourceFolder = Context.GIT_ARTIFACT_TARGET_PATH.resolve(folderToUpload); uploadArchive(csarSourceFolder); } }