}
@Test
- void testDeployRappInstanceFailure() throws Exception {
+ void testDeployRappInstanceFailureWithNoInstanceId() throws JsonProcessingException {
UUID compositionId = UUID.randomUUID();
UUID rappId = UUID.randomUUID();
- UUID instanceId = UUID.randomUUID();
Rapp rapp = Rapp.builder().name(rappId.toString()).packageName(validRappFile).compositionId(compositionId)
.packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
+ RappInstance rappInstance = rappResourceBuilder.getRappInstance();
+ rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
InstantiationResponse instantiationResponse = new InstantiationResponse();
- instantiationResponse.setInstanceId(instanceId);
+ mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCES, compositionId)))
+ .andExpect(method(HttpMethod.POST)).andRespond(
+ withStatus(HttpStatus.ACCEPTED).contentType(MediaType.APPLICATION_JSON)
+ .body(objectMapper.writeValueAsString(instantiationResponse)));
+
+ boolean rappDeployStateActual = acmDeployer.deployRappInstance(rapp, rappInstance);
+ mockServer.verify();
+ assertFalse(rappDeployStateActual);
+ }
+
+ @Test
+ void testDeployRappInstanceFailure() {
+ UUID compositionId = UUID.randomUUID();
+ UUID rappId = UUID.randomUUID();
+ Rapp rapp = Rapp.builder().name(rappId.toString()).packageName(validRappFile).compositionId(compositionId)
+ .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED).build();
+ RappInstance rappInstance = rappResourceBuilder.getRappInstance();
+ rappInstanceStateMachine.onboardRappInstance(rappInstance.getRappInstanceId());
mockServer.expect(ExpectedCount.once(), requestTo(String.format(URI_ACM_INSTANCES, compositionId)))
.andExpect(method(HttpMethod.POST)).andRespond(withStatus(HttpStatus.BAD_GATEWAY));
- boolean rappDeployStateActual = acmDeployer.deployRappInstance(rapp, rappResourceBuilder.getRappInstance());
+ boolean rappDeployStateActual = acmDeployer.deployRappInstance(rapp, rappInstance);
mockServer.verify();
assertFalse(rappDeployStateActual);
}
assertEquals(RappState.COMMISSIONED, rapp.getState());
}
+ @Test
+ void testPrimeRappFailureWithoutCompositionId() throws JsonProcessingException {
+ UUID compositionId = UUID.randomUUID();
+ RappResources rappResources = rappResourceBuilder.getResources();
+ Rapp rapp = Rapp.builder().rappId(UUID.randomUUID()).name("").packageName(validRappFile)
+ .packageLocation(validCsarFileLocation).state(RappState.COMMISSIONED)
+ .compositionId(compositionId).rappResources(rappResources).build();
+
+ CommissioningResponse commissioningResponseExpected = new CommissioningResponse();
+ mockServer.expect(ExpectedCount.once(), requestTo(URI_ACM_COMPOSITIONS)).andExpect(method(HttpMethod.POST))
+ .andRespond(withStatus(HttpStatus.OK).contentType(MediaType.APPLICATION_JSON)
+ .body(objectMapper.writeValueAsString(commissioningResponseExpected)));
+ boolean primeRapp = acmDeployer.primeRapp(rapp);
+ mockServer.verify();
+ assertFalse(primeRapp);
+ }
+
@Test
void testDeprimeRapp() throws JsonProcessingException {
UUID compositionId = UUID.randomUUID();
public ResponseEntity<String> deployRappInstance(Rapp rapp, RappInstance rappInstance) {
if (rappInstance.getState().equals(RappInstanceState.UNDEPLOYED)) {
+ rappInstance.setReason(null);
rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.DEPLOYING);
if (acmDeployer.deployRappInstance(rapp, rappInstance) && smeDeployer.deployRappInstance(rapp, rappInstance)
&& dmeDeployer.deployRappInstance(rapp, rappInstance)) {
public ResponseEntity<String> undeployRappInstance(Rapp rapp, RappInstance rappInstance) {
if (rappInstance.getState().equals(RappInstanceState.DEPLOYED)) {
+ rappInstance.setReason(null);
rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.UNDEPLOYING);
if (acmDeployer.undeployRappInstance(rapp, rappInstance) && smeDeployer.undeployRappInstance(rapp,
rappInstance) && dmeDeployer.undeployRappInstance(rapp, rappInstance)) {
if (deployState) {
rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEDEPLOYED);
} else {
+ rappInstance.setReason("Unable to deploy SME");
rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEDEPLOYFAILED);
}
return deployState;
} catch (JsonProcessingException e) {
logger.warn("Failed to deploy SME functions for Rapp {}", rapp.getName(), e);
}
+ rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEDEPLOYFAILED);
+ rappInstance.setReason("Unable to deploy SME");
return false;
}
} catch (Exception e) {
logger.warn("Failed to Undeploy SME functions for Rapp {}", rapp.getName(), e);
}
+ rappInstanceStateMachine.sendRappInstanceEvent(rappInstance, RappEvent.SMEUNDEPLOYFAILED);
+ rappInstance.setReason("Unable to undeploy SME");
return false;
}