Search in sources :

Example 46 with PathsPromoteRequest

use of org.commonjava.indy.promote.model.PathsPromoteRequest in project indy by Commonjava.

the class PromoteResource method promotePaths.

@ApiOperation("Promote paths from a source repository into a target repository/group (subject to validation).")
@ApiResponse(code = 200, message = "Promotion operation finished (consult response content for success/failure).", response = PathsPromoteResult.class)
@ApiImplicitParam(name = "body", paramType = "body", value = "JSON request specifying source and target, with other configuration options", allowMultiple = false, required = true, dataType = "org.commonjava.indy.promote.model.PathsPromoteRequest")
@Path("/paths/promote")
@POST
@Consumes(ApplicationContent.application_json)
public Response promotePaths(@Context final HttpServletRequest request, @Context final UriInfo uriInfo) {
    PathsPromoteRequest req;
    Response response;
    try {
        final String json = IOUtils.toString(request.getInputStream());
        logger.info("Got promotion request:\n{}", json);
        req = mapper.readValue(json, PathsPromoteRequest.class);
    } catch (final IOException e) {
        response = responseHelper.formatResponse(e, "Failed to read DTO from request body.");
        return response;
    }
    try {
        final String baseUrl = getBaseUrlByStoreKey(uriInfo, req.getSource());
        final PathsPromoteResult result = manager.promotePaths(req, baseUrl);
        response = responseHelper.formatOkResponseWithJsonEntity(result);
        logger.info("Send promotion result:\n{}", response.getEntity());
    } catch (PromotionException | IndyWorkflowException e) {
        logger.error(e.getMessage(), e);
        response = responseHelper.formatResponse(e);
    }
    return response;
}
Also used : Response(javax.ws.rs.core.Response) ApiResponse(io.swagger.annotations.ApiResponse) PathsPromoteResult(org.commonjava.indy.promote.model.PathsPromoteResult) IndyWorkflowException(org.commonjava.indy.IndyWorkflowException) PathsPromoteRequest(org.commonjava.indy.promote.model.PathsPromoteRequest) IOException(java.io.IOException) PromotionException(org.commonjava.indy.promote.data.PromotionException) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Consumes(javax.ws.rs.Consumes) ApiOperation(io.swagger.annotations.ApiOperation) ApiImplicitParam(io.swagger.annotations.ApiImplicitParam) ApiResponse(io.swagger.annotations.ApiResponse)

Example 47 with PathsPromoteRequest

use of org.commonjava.indy.promote.model.PathsPromoteRequest in project indy by Commonjava.

the class NPMVersionPatternRuleTest method run.

@Test
@Category(EventDependent.class)
public void run() throws Exception {
    deployResource(INVALID_PKG, "npm-version-pattern/package-invalid.json");
    deployResource(VALID_PKG, "npm-version-pattern/package-valid.json");
    deployResource(SCOPED_INVALID_PKG, "npm-version-pattern/package-scoped-invalid.json");
    deployResource(SCOPED_VALID_PKG, "npm-version-pattern/package-scoped-valid.json");
    deployResource(REDHAT_SCOPED_INVALID_PKG, "npm-version-pattern/package-redhat-scoped-invalid.json");
    deployResource(REDHAT_SCOPED_VALID_PKG, "npm-version-pattern/package-redhat-scoped-valid.json");
    assertThat(client.content().exists(source.getKey(), INVALID_TAR), equalTo(true));
    assertThat(client.content().exists(source.getKey(), SCOPED_INVALID_TAR), equalTo(true));
    assertThat(client.content().exists(source.getKey(), INVALID_TAR), equalTo(true));
    assertThat(client.content().exists(source.getKey(), VALID_TAR), equalTo(true));
    assertThat(client.content().exists(source.getKey(), REDHAT_SCOPED_INVALID_TAR), equalTo(true));
    assertThat(client.content().exists(source.getKey(), REDHAT_SCOPED_VALID_TAR), equalTo(true));
    waitForEventPropagation();
    Thread.sleep(30 * 1000);
    PathsPromoteRequest request = new PathsPromoteRequest(source.getKey(), target.getKey(), INVALID_TAR, VALID_TAR, SCOPED_INVALID_TAR, SCOPED_VALID_TAR, REDHAT_SCOPED_INVALID_TAR, REDHAT_SCOPED_VALID_TAR);
    check(request);
    request = new PathsPromoteRequest(source.getKey(), target.getKey());
    check(request);
}
Also used : PathsPromoteRequest(org.commonjava.indy.promote.model.PathsPromoteRequest) Category(org.junit.experimental.categories.Category) Test(org.junit.Test)

Aggregations

PathsPromoteRequest (org.commonjava.indy.promote.model.PathsPromoteRequest)47 PathsPromoteResult (org.commonjava.indy.promote.model.PathsPromoteResult)40 Test (org.junit.Test)34 IndyPromoteClientModule (org.commonjava.indy.promote.client.IndyPromoteClientModule)15 Category (org.junit.experimental.categories.Category)10 InputStream (java.io.InputStream)8 StoreKey (org.commonjava.indy.model.core.StoreKey)8 IndyWorkflowException (org.commonjava.indy.IndyWorkflowException)7 ByteArrayInputStream (java.io.ByteArrayInputStream)6 HashSet (java.util.HashSet)6 IndyDataException (org.commonjava.indy.data.IndyDataException)6 AbstractContentManagementTest (org.commonjava.indy.ftest.core.AbstractContentManagementTest)6 EventMetadata (org.commonjava.maven.galley.event.EventMetadata)6 IOException (java.io.IOException)5 HostedRepository (org.commonjava.indy.model.core.HostedRepository)5 PromotionValidationException (org.commonjava.indy.promote.validate.PromotionValidationException)5 Transfer (org.commonjava.maven.galley.model.Transfer)5 ExecutionException (java.util.concurrent.ExecutionException)4 ChangeSummary (org.commonjava.indy.audit.ChangeSummary)4 ArtifactStore (org.commonjava.indy.model.core.ArtifactStore)4