diff options
Diffstat (limited to 'workflow-designer-be')
7 files changed, 51 insertions, 8 deletions
diff --git a/workflow-designer-be/pom.xml b/workflow-designer-be/pom.xml index ac77e5f7..60a7cd0b 100644 --- a/workflow-designer-be/pom.xml +++ b/workflow-designer-be/pom.xml @@ -8,7 +8,7 @@ <artifactId>workflow-designer-be</artifactId> <parent> - <groupId>org.onap.sdc.workflow_designer</groupId> + <groupId>org.onap.sdc.sdc-workflow-designer</groupId> <artifactId>workflow-designer-parent</artifactId> <version>1.3.0-SNAPSHOT</version> </parent> @@ -128,6 +128,11 @@ <version>${lombok.version}</version> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + <scope>provided</scope> + </dependency> </dependencies> <build> diff --git a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/RestUtils.java b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/RestUtils.java index b6259ccc..8ba75429 100644 --- a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/RestUtils.java +++ b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/RestUtils.java @@ -1,3 +1,18 @@ +/* + * Copyright © 2018 European Support Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.onap.sdc.workflow; import java.util.Arrays; diff --git a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java index 7027985f..f8eb4bb9 100644 --- a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java +++ b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java @@ -16,7 +16,7 @@ package org.onap.sdc.workflow.api; -import static org.onap.sdc.workflow.RestUtils.mapVersionStateFilter; +import static org.onap.sdc.workflow.RestUtils.*; import static org.onap.sdc.workflow.api.RestConstants.SIZE_DEFAULT; import static org.onap.sdc.workflow.api.RestConstants.SORT_FIELD_NAME; import static org.onap.sdc.workflow.api.RestConstants.SORT_PARAM; @@ -31,6 +31,7 @@ import java.util.Set; import org.onap.sdc.workflow.api.types.CollectionWrapper; import org.onap.sdc.workflow.persistence.types.Workflow; import org.onap.sdc.workflow.services.WorkflowManager; +import org.onap.sdc.workflow.services.WorkflowVersionManager; import org.onap.sdc.workflow.services.exceptions.InvalidPaginationParameterException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -59,10 +60,13 @@ import org.springframework.web.bind.annotation.RestController; public class WorkflowController { private final WorkflowManager workflowManager; + private final WorkflowVersionManager workflowVersionManager; @Autowired - public WorkflowController(@Qualifier("workflowManager") WorkflowManager workflowManager) { + public WorkflowController(@Qualifier("workflowManager") WorkflowManager workflowManager, + @Qualifier("workflowVersionManager") WorkflowVersionManager workflowVersionManager) { this.workflowManager = workflowManager; + this.workflowVersionManager = workflowVersionManager; } @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE) @@ -88,10 +92,16 @@ public class WorkflowController { @GetMapping(path = "/{workflowId}") @ApiOperation("Get workflow") public Workflow get(@PathVariable("workflowId") String workflowId, + @ApiParam(value = "Expand workflow data", allowableValues = "versions") + @RequestParam(value = "expand", required = false) String expand, @RequestHeader(USER_ID_HEADER_PARAM) String user) { Workflow workflow = new Workflow(); workflow.setId(workflowId); - return workflowManager.get(workflow); + Workflow retrievedWorkflow = workflowManager.get(workflow); + if("versions".equals(expand)){ + retrievedWorkflow.setVersions(workflowVersionManager.list(workflowId,null)); + } + return retrievedWorkflow; } @PutMapping(path = "/{workflowId}", consumes = MediaType.APPLICATION_JSON_VALUE) diff --git a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowVersionController.java b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowVersionController.java index 91995bd0..34ecb898 100644 --- a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowVersionController.java +++ b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowVersionController.java @@ -59,7 +59,7 @@ public class WorkflowVersionController { private final WorkflowVersionManager workflowVersionManager; private Validator validator; - @InitBinder + @InitBinder("WorkflowVersion") private void initBinder(WebDataBinder binder) { binder.addValidators(validator); } diff --git a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/persistence/types/Workflow.java b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/persistence/types/Workflow.java index 72e62778..b2fc6f59 100644 --- a/workflow-designer-be/src/main/java/org/onap/sdc/workflow/persistence/types/Workflow.java +++ b/workflow-designer-be/src/main/java/org/onap/sdc/workflow/persistence/types/Workflow.java @@ -30,8 +30,8 @@ public class Workflow { private String id; @NotNull(message = "Workflow name may not be null") - @Size(min = 6, max = 30, message = "The field must be at least 6 characters, and less than 30 characters") - @Pattern(regexp = "[A-Za-z0-9_]*", message = "The field must contain only letters, digits and underscores") + @Size(max = 80, message = "Workflow name must be less than 80 characters") + @Pattern(regexp = "[A-Za-z0-9_]*", message = "Workflow name must contain only letters, digits and underscores") private String name; private String description; private Set<WorkflowVersionState> versionStates; diff --git a/workflow-designer-be/src/main/resources/application.properties b/workflow-designer-be/src/main/resources/application.properties index ab4930b5..c120bda3 100644 --- a/workflow-designer-be/src/main/resources/application.properties +++ b/workflow-designer-be/src/main/resources/application.properties @@ -7,4 +7,5 @@ spring.data.cassandra.keyspace-name=workflow spring.data.cassandra.port=${CS_PORT:9042} spring.data.cassandra.username=${CS_USER:} spring.data.cassandra.password=${CS_PASSWORD:} -zusammen.cassandra.isAuthenticate=${CS_AUTHENTICATE:true}
\ No newline at end of file +zusammen.cassandra.isAuthenticate=${CS_AUTHENTICATE:true} +management.endpoint.health.show-details=${SHOW_HEALTH:never}
\ No newline at end of file diff --git a/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java b/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java index 5e7df483..337fea79 100644 --- a/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java +++ b/workflow-designer-be/src/test/java/org/onap/sdc/workflow/api/WorkflowControllerTest.java @@ -257,6 +257,18 @@ public class WorkflowControllerTest { verify(workflowManagerMock).create(reqWorkflow); } + @Test + public void shouldThrowExceptionWhenWorkflowNameInvalid() throws Exception { + + Workflow reqWorkflow = new Workflow(); + reqWorkflow.setName("Invalid workflow name %"); + MockHttpServletResponse response = mockMvc.perform( + post(RestPath.getWorkflowsPath()).header(USER_ID_HEADER_PARAM, USER_ID).contentType(APPLICATION_JSON) + .content(GSON.toJson(reqWorkflow))).andDo(print()) + .andExpect(status().isBadRequest()).andReturn().getResponse(); + assertEquals("Workflow name must contain only letters, digits and underscores", response.getContentAsString()); + } + private List<Workflow> createWorkflows(int numOfWorkflows) { List<Workflow> workflowList = new ArrayList<>(numOfWorkflows); for (int i = 0; i < numOfWorkflows; i++) { |