* Retrieves a list of AutomationComposition instances filtered by the specified state change results
* and deployment states. The result can be paginated and sorted based on the provided parameters.
*
- * @param compositionIds a list of composition UUIDs to filter the AutomationComposition instances
+ * @param instanceIds a list of instance UUIDs
* @param stateChangeResults a list of StateChangeResult values to filter the AutomationComposition instances
* @param deployStates a list of DeployState values to filter the AutomationComposition instances
* @param pageable the pagination information including page size and page number
* @return a list of AutomationComposition instances that match the specified filters
*/
public List<AutomationComposition> getAcInstancesByFilter(
- @NonNull final List<String> compositionIds,
+ @NonNull final List<String> instanceIds,
@NonNull final List<StateChangeResult> stateChangeResults,
@NonNull final List<DeployState> deployStates,
@NonNull final Pageable pageable) {
Page<JpaAutomationComposition> page;
- if (!compositionIds.isEmpty()) {
- page = filterWithCompositionIds(compositionIds, stateChangeResults, deployStates, pageable);
+ if (!instanceIds.isEmpty()) {
+ page = filterWithInstanceIds(instanceIds, stateChangeResults, deployStates, pageable);
} else if (stateChangeResults.isEmpty() && deployStates.isEmpty()) {
page = automationCompositionRepository.findAll(pageable);
} else if (!stateChangeResults.isEmpty() && deployStates.isEmpty()) {
return ProviderUtils.asEntityList(page.toList());
}
- private Page<JpaAutomationComposition> filterWithCompositionIds(final List<String> compositionIds,
+ private Page<JpaAutomationComposition> filterWithInstanceIds(final List<String> instanceIds,
final List<StateChangeResult> stages,
final List<DeployState> deployStates,
final Pageable pageable) {
if (stages.isEmpty() && deployStates.isEmpty()) {
- return automationCompositionRepository.findByCompositionIdIn(compositionIds, pageable);
+ return automationCompositionRepository.findByInstanceIdIn(instanceIds, pageable);
} else if (!stages.isEmpty() && deployStates.isEmpty()) {
- return automationCompositionRepository.findByCompositionIdInAndStateChangeResultIn(
- compositionIds, stages, pageable);
+ return automationCompositionRepository.findByInstanceIdInAndStateChangeResultIn(
+ instanceIds, stages, pageable);
} else if (stages.isEmpty()) {
- return automationCompositionRepository.findByCompositionIdInAndDeployStateIn(
- compositionIds, deployStates, pageable);
+ return automationCompositionRepository.findByInstanceIdInAndDeployStateIn(
+ instanceIds, deployStates, pageable);
} else {
- return automationCompositionRepository.findByCompositionIdInAndStateChangeResultInAndDeployStateIn(
- compositionIds, stages, deployStates, pageable);
+ return automationCompositionRepository.findByInstanceIdInAndStateChangeResultInAndDeployStateIn(
+ instanceIds, stages, deployStates, pageable);
}
}
}
Page<JpaAutomationComposition> findByStateChangeResultIn(Collection<StateChangeResult> stateChangeResults,
Pageable pageable);
- Page<JpaAutomationComposition> findByCompositionIdIn(Collection<String> compositionIds, Pageable pageable);
+ Page<JpaAutomationComposition> findByInstanceIdIn(Collection<String> instanceIds, Pageable pageable);
- Page<JpaAutomationComposition> findByCompositionIdInAndStateChangeResultIn(
- Collection<String> compositionIds, Collection<StateChangeResult> stateChangeResults, Pageable pageable);
+ Page<JpaAutomationComposition> findByInstanceIdInAndStateChangeResultIn(
+ Collection<String> instanceIds, Collection<StateChangeResult> stateChangeResults, Pageable pageable);
- Page<JpaAutomationComposition> findByCompositionIdInAndDeployStateIn(
- Collection<String> compositionIds, Collection<DeployState> deployStates, Pageable pageable);
+ Page<JpaAutomationComposition> findByInstanceIdInAndDeployStateIn(
+ Collection<String> instanceIds, Collection<DeployState> deployStates, Pageable pageable);
- Page<JpaAutomationComposition> findByCompositionIdInAndStateChangeResultInAndDeployStateIn(
- Collection<String> compositionIds, Collection<StateChangeResult> stateChangeResults,
+ Page<JpaAutomationComposition> findByInstanceIdInAndStateChangeResultInAndDeployStateIn(
+ Collection<String> instanceIds, Collection<StateChangeResult> stateChangeResults,
Collection<DeployState> deployStates, Pageable pageable);
}
}
@Test
- void testGetAcInstancesByFilter_WithoutCompositionIds() {
+ void testGetAcInstancesByFilter_WithoutInstanceIds() {
Page<JpaAutomationComposition> mockPage = new PageImpl<>(inputAutomationCompositionsJpa);
var acRepository = mock(AutomationCompositionRepository.class);
when(acRepository.findByStateChangeResultIn(anyCollection(), any(Pageable.class)))
}
@Test
- void testGetAcInstancesByFilter_WithCompositionIds() {
+ void testGetAcInstancesByFilter_WithInstanceIds() {
Page<JpaAutomationComposition> mockPage = new PageImpl<>(inputAutomationCompositionsJpa);
var acRepository = mock(AutomationCompositionRepository.class);
var deployStates = new ArrayList<DeployState>();
var pageable = Pageable.unpaged();
- when(acRepository.findByCompositionIdInAndStateChangeResultInAndDeployStateIn(
+ when(acRepository.findByInstanceIdInAndStateChangeResultInAndDeployStateIn(
acIds, stateChangeResults, deployStates, pageable)).thenReturn(mockPage);
- when(acRepository.findByCompositionIdInAndStateChangeResultIn(acIds, stateChangeResults, pageable))
+ when(acRepository.findByInstanceIdInAndStateChangeResultIn(acIds, stateChangeResults, pageable))
.thenReturn(mockPage);
- when(acRepository.findByCompositionIdInAndDeployStateIn(acIds, deployStates, pageable)).thenReturn(mockPage);
- when(acRepository.findByCompositionIdIn(acIds, pageable)).thenReturn(mockPage);
+ when(acRepository.findByInstanceIdInAndDeployStateIn(acIds, deployStates, pageable)).thenReturn(mockPage);
+ when(acRepository.findByInstanceIdIn(acIds, pageable)).thenReturn(mockPage);
var acProvider = new AutomationCompositionProvider(acRepository,
mock(AutomationCompositionElementRepository.class), mock(AutomationCompositionRollbackRepository.class));
* Retrieves a list of AutomationComposition instances filtered by the specified state change results
* and deployment states. The result can be paginated and sorted based on the provided parameters.
*
- * @param compositionIds a list of composition UUIDs to filter the AutomationComposition instances
+ * @param instanceIds a list of instance UUIDs
* @param stateChangeResults a list of StateChangeResult values to filter the AutomationComposition instances
* @param deployStates a list of DeployState values to filter the AutomationComposition instances
* @param pageable the pagination information including page size and page number
* @return a list of AutomationComposition instances that match the specified filters
*/
public AutomationCompositions getAcInstancesByFilter(
- final String compositionIds, final String stateChangeResults, final String deployStates,
+ final String instanceIds, final String stateChangeResults, final String deployStates,
final Pageable pageable) {
List<String> acIds = new ArrayList<>();
- if (compositionIds != null) {
- Arrays.stream(compositionIds.split(",")).forEach(acId -> acIds.add(acId.trim()));
+ if (instanceIds != null) {
+ Arrays.stream(instanceIds.split(",")).forEach(acId -> acIds.add(acId.trim()));
}
List<StateChangeResult> stateChangeResultList = new ArrayList<>();
*/
@Override
public ResponseEntity<AutomationCompositions> queryCompositionInstancesByFilter(
- String compositionIds, String deployStates, String stateChangeResults,
+ String instanceIds, String deployStates, String stateChangeResults,
Integer page, Integer size, String sort, String sortOrder, UUID requestId) {
var pageable = getPageableWithSorting(page, size, sort, sortOrder);
- var instances = provider.getAcInstancesByFilter(compositionIds, stateChangeResults, deployStates, pageable);
+ var instances = provider.getAcInstancesByFilter(instanceIds, stateChangeResults, deployStates, pageable);
return ResponseEntity.ok().body(instances);
}
description: Query a list of automation composition instances based on the query filter
operationId: queryCompositionInstancesByFilter
parameters:
- - name: compositionIds
+ - name: instanceIds
in: query
required: false
schema:
type: string
- description: Filter to get instances by compositionId (two or more to be comma-separated)
+ description: Filter to get instances by instanceId (two or more to be comma-separated)
- name: deployState
in: query
required: false
}
@Test
- void test_queryCompositionInstancesByFilter_WithoutCompositionIds() {
+ void test_queryCompositionInstancesByFilter_WithoutInstanceIds() {
// test setup
var compositionId = createAcDefinitionInDB("Query");
var automationComposition =
}
@Test
- void test_queryCompositionInstancesByFilter_WithCompositionIds() {
+ void test_queryCompositionInstancesByFilter_WithInstanceIds() {
// test setup
var compositionId = createAcDefinitionInDB("Query");
var automationComposition =
InstantiationUtils.getAutomationCompositionFromResource(AC_INSTANTIATION_CREATE_JSON, "Query");
assertNotNull(automationComposition);
automationComposition.setCompositionId(compositionId);
+ var instanceIds = new StringBuffer();
for (var i = 0; i < NUMBER_INSTANCES; i++) {
automationComposition.setName("acmr_" + i);
- instantiationProvider.createAutomationComposition(compositionId, automationComposition);
+ var result = instantiationProvider.createAutomationComposition(compositionId, automationComposition);
+ if (i > 0) {
+ instanceIds.append(",");
+ }
+ instanceIds.append(result.getInstanceId());
}
- validateQueryPageable("instances?compositionIds=" + compositionId, 10);
- validateQueryPageable("instances?page=1&size=4&compositionIds=" + compositionId, 4);
- validateQueryPageable("instances?size=4&compositionIds=" + compositionId, 10);
- validateQueryPageable("instances?stateChangeResult=FAILED,TIMEOUT&compositionIds=" + compositionId, 0);
- validateQueryPageable("instances?deployState=UNDEPLOYED&compositionIds=" + compositionId, 10);
- validateQueryPageable("instances?sort=name&sortOrder=DESC&compositionIds=" + compositionId, 10);
+ validateQueryPageable("instances?instanceIds=" + instanceIds, 10);
+ validateQueryPageable("instances?page=1&size=4&instanceIds=" + instanceIds, 4);
+ validateQueryPageable("instances?size=4&instanceIds=" + instanceIds, 10);
+ validateQueryPageable("instances?stateChangeResult=FAILED,TIMEOUT&instanceIds=" + instanceIds, 0);
+ validateQueryPageable("instances?deployState=UNDEPLOYED&instanceIds=" + instanceIds, 10);
+ validateQueryPageable("instances?sort=name&sortOrder=DESC&instanceIds=" + instanceIds, 10);
}
private UUID createAcDefinitionInDB(String name) {