use of org.onap.aai.domain.yang.Vserver in project so by onap.
the class ExceptionBuilder method processAuditException.
public void processAuditException(DelegateExecutionImpl execution, boolean flowShouldContinue) {
logger.debug("Processing Audit Results");
String auditListString = execution.getVariable("auditInventoryResult");
String processKey = getProcessKey(execution.getDelegateExecution());
if (auditListString != null) {
StringBuilder errorMessage = new StringBuilder();
try {
ExtractPojosForBB extractPojosForBB = getExtractPojosForBB();
VfModule module = extractPojosForBB.extractByKey(execution, ResourceKey.VF_MODULE_ID);
String cloudRegionId = execution.getGeneralBuildingBlock().getCloudRegion().getLcpCloudRegionId();
GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
AAIObjectAuditList auditList = objectMapper.getMapper().readValue(auditListString, AAIObjectAuditList.class);
errorMessage = errorMessage.append(auditList.getAuditType() + " VF-Module " + module.getVfModuleId() + " failed due to incomplete AAI vserver inventory population after stack " + auditList.getHeatStackName() + " was successfully " + auditList.getAuditType() + "d in cloud region " + cloudRegionId + ". MSO Audit indicates that the following was not " + auditList.getAuditType() + "d in AAI: ");
Stream<AAIObjectAudit> vServerLInterfaceAuditStream = auditList.getAuditList().stream().filter(auditObject -> auditObject.getAaiObjectType().equals(Types.VSERVER.typeName()) || auditObject.getAaiObjectType().equals(Types.L_INTERFACE.typeName()));
List<AAIObjectAudit> filteredAuditStream = vServerLInterfaceAuditStream.filter(a -> !a.isDoesObjectExist()).collect(Collectors.toList());
for (AAIObjectAudit object : filteredAuditStream) {
if (object.getAaiObjectType().equals(Types.L_INTERFACE.typeName())) {
LInterface li = objectMapper.getMapper().convertValue(object.getAaiObject(), LInterface.class);
errorMessage = errorMessage.append(Types.L_INTERFACE.typeName() + " " + li.getInterfaceId() + ", ");
} else {
Vserver vs = objectMapper.getMapper().convertValue(object.getAaiObject(), Vserver.class);
errorMessage = errorMessage.append(Types.VSERVER.typeName() + " " + vs.getVserverId() + ", ");
}
}
if (errorMessage.length() > 0) {
errorMessage.setLength(errorMessage.length() - 2);
errorMessage = errorMessage.append(".");
}
} catch (IOException | BBObjectNotFoundException e) {
errorMessage = errorMessage.append("process objects in AAI. ");
logger.error("Exception occurred in processAuditException", e);
}
if (flowShouldContinue) {
execution.setVariable("StatusMessage", errorMessage.toString());
} else {
WorkflowException exception = new WorkflowException(processKey, 400, errorMessage.toString(), ONAPComponents.SO);
execution.setVariable("WorkflowException", exception);
execution.setVariable("WorkflowExceptionErrorMessage", errorMessage.toString());
logger.info("Outgoing WorkflowException is {}", exception);
logger.info("Throwing AAIInventoryFailure");
throw new BpmnError("AAIInventoryFailure");
}
} else {
String errorMessage = "Unable to process audit results due to auditInventoryResult being null";
WorkflowException exception = new WorkflowException(processKey, 400, errorMessage, ONAPComponents.SO);
execution.setVariable("WorkflowException", exception);
execution.setVariable("WorkflowExceptionErrorMessage", errorMessage);
logger.info("Outgoing WorkflowException is {}", exception);
logger.info("Throwing AAIInventoryFailure");
throw new BpmnError("AAIInventoryFailure");
}
}
use of org.onap.aai.domain.yang.Vserver in project so by onap.
the class AppcOrchestratorPreProcessorTest method getVserversForAppcTest.
@Test
public void getVserversForAppcTest() throws Exception {
GenericVnf genericVnf = getTestGenericVnf();
final String aaiVnfJson = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiGenericVnfWithVservers.json")));
final String aaiVserverJson = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiVserverQueryResponse.json")));
AAIResultWrapper aaiResultWrapper = new AAIResultWrapper(aaiVnfJson);
ObjectMapper mapper = new ObjectMapper();
Vserver vserver = mapper.readValue(aaiVserverJson, Vserver.class);
doReturn(aaiResultWrapper).when(aaiVnfResources).queryVnfWrapperById(genericVnf);
doReturn(Optional.of(vserver)).when(aaiVnfResources).getVserver(ArgumentMatchers.any(AAIResourceUri.class));
appcOrchestratorPreProcessor.getVserversForAppc(execution, genericVnf);
ArrayList<String> vserverIdList = execution.getVariable("vserverIdList");
ArrayList<String> expectedVserverIdList = new ArrayList<String>();
expectedVserverIdList.add("1b3f44e5-d96d-4aac-bd9a-310e8cfb0af5");
expectedVserverIdList.add("14551849-1e70-45cd-bc5d-a256d49548a2");
expectedVserverIdList.add("48bd7f11-408f-417c-b834-b41c1b98f7d7");
ArrayList<String> vmIdList = execution.getVariable("vmIdList");
ArrayList<String> expectedVmIdList = new ArrayList<String>();
expectedVmIdList.add("http://VSERVER-link.com");
expectedVmIdList.add("http://VSERVER-link.com");
expectedVmIdList.add("http://VSERVER-link.com");
assertEquals(vserverIdList, expectedVserverIdList);
assertEquals(vmIdList, expectedVmIdList);
}
use of org.onap.aai.domain.yang.Vserver in project so by onap.
the class AppcRunTasksTest method getVserversForAppcTest.
@Test
public void getVserversForAppcTest() throws Exception {
GenericVnf genericVnf = getTestGenericVnf();
final String aaiVnfJson = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiGenericVnfWithVservers.json")));
final String aaiVserverJson = new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "aaiVserverQueryResponse.json")));
AAIResultWrapper aaiResultWrapper = new AAIResultWrapper(aaiVnfJson);
ObjectMapper mapper = new ObjectMapper();
Vserver vserver = mapper.readValue(aaiVserverJson, Vserver.class);
doReturn(aaiResultWrapper).when(aaiVnfResources).queryVnfWrapperById(genericVnf);
doReturn(Optional.of(vserver)).when(aaiVnfResources).getVserver(any(AAIResourceUri.class));
appcRunTasks.getVserversForAppc(execution, genericVnf);
String vserverIdList = execution.getVariable("vserverIdList");
String expectedVserverIdList = "{\"vserverIds\":\"[\\\"1b3f44e5-d96d-4aac-bd9a-310e8cfb0af5\\\",\\\"14551849-1e70-45cd-bc5d-a256d49548a2\\\",\\\"48bd7f11-408f-417c-b834-b41c1b98f7d7\\\"]\"}";
String vmIdList = execution.getVariable("vmIdList");
String expectedVmIdList = "{\"vmIds\":\"[\\\"http://VSERVER-link.com\\\",\\\"http://VSERVER-link.com\\\",\\\"http://VSERVER-link.com\\\"]\"}";
assertEquals(vserverIdList, expectedVserverIdList);
assertEquals(vmIdList, expectedVmIdList);
}
use of org.onap.aai.domain.yang.Vserver in project so by onap.
the class AuditTasksTest method before.
@Before
public void before() throws BBObjectNotFoundException, JsonProcessingException {
serviceInstance = setServiceInstance();
genericVnf = setGenericVnf();
vfModule = setVfModule();
buildRequestContext();
setCloudRegion();
setRequestContext();
when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(genericVnf);
when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.VF_MODULE_ID))).thenReturn(vfModule);
when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.SERVICE_INSTANCE_ID))).thenReturn(serviceInstance);
execution.setVariable("auditQuerySuccess", true);
AAIObjectAuditList auditList = new AAIObjectAuditList();
auditList.setHeatStackName("testHeatStackName");
AAIObjectAudit audit = new AAIObjectAudit();
Vserver vserver = new Vserver();
vserver.setVserverId("testVserverId");
audit.setAaiObject(vserver);
auditList.getAuditList().add(audit);
GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
String auditListString = objectMapper.getMapper().writeValueAsString(audit);
execution.setVariable("auditList", auditListString);
}
use of org.onap.aai.domain.yang.Vserver in project so by onap.
the class ExceptionBuilderTest method before.
@Before
public void before() throws BBObjectNotFoundException, JsonProcessingException {
setCloudRegion();
when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VF_MODULE_ID))).thenReturn(buildVfModule());
AAIObjectAuditList auditList = new AAIObjectAuditList();
auditList.setAuditType("create");
auditList.setHeatStackName("testStackName");
AAIObjectAudit vserver = new AAIObjectAudit();
vserver.setAaiObjectType(Types.VSERVER.typeName());
vserver.setDoesObjectExist(false);
Vserver vs = new Vserver();
vs.setVserverId("testVServerId");
Vserver vServerShallow = new Vserver();
BeanUtils.copyProperties(vs, vServerShallow, "LInterfaces");
vserver.setAaiObject(vServerShallow);
auditList.getAuditList().add(vserver);
execution.setVariable("auditInventoryResult", objectMapper.getMapper().writeValueAsString(auditList));
}
Aggregations