@PostMapping("{rapp_id}")
public ResponseEntity<Rapp> createRapp(@PathVariable("rapp_id") String rappId,
@Valid @RequestPart("file") MultipartFile csarFilePart) throws IOException {
- if (rappValidationHandler.isValidRappPackage(csarFilePart)) {
- File csarFile = new File(
- rappCsarConfigurationHandler.getRappPackageLocation(rappManagerConfiguration.getCsarLocation(),
- rappId, csarFilePart.getOriginalFilename()).toUri());
- csarFile.getParentFile().mkdirs();
- Files.copy(csarFilePart.getInputStream(), csarFile.getAbsoluteFile().toPath(),
- StandardCopyOption.REPLACE_EXISTING);
- Rapp rapp = Rapp.builder().name(rappId).packageLocation(rappManagerConfiguration.getCsarLocation())
- .packageName(csarFile.getName()).state(RappState.COMMISSIONED).build();
- rapp.setRappResources(rappCsarConfigurationHandler.getRappResource(rapp));
- rapp.setAsdMetadata(rappCsarConfigurationHandler.getAsdMetadata(rapp));
- rappCacheService.putRapp(rapp);
- return ResponseEntity.accepted().build();
- } else {
- if (rappId == null) {
- logger.info("Invalid Rapp package with null rAppId");
- } else {
- logger.info("Invalid Rapp package for {}", rappId);
- }
- throw new RappHandlerException(HttpStatus.BAD_REQUEST, "Invalid rApp package.");
- }
+ rappValidationHandler.isValidRappPackage(csarFilePart);
+ File csarFile = new File(
+ rappCsarConfigurationHandler.getRappPackageLocation(rappManagerConfiguration.getCsarLocation(), rappId,
+ csarFilePart.getOriginalFilename()).toUri());
+ csarFile.getParentFile().mkdirs();
+ Files.copy(csarFilePart.getInputStream(), csarFile.getAbsoluteFile().toPath(),
+ StandardCopyOption.REPLACE_EXISTING);
+ Rapp rapp = Rapp.builder().name(rappId).packageLocation(rappManagerConfiguration.getCsarLocation())
+ .packageName(csarFile.getName()).state(RappState.COMMISSIONED).build();
+ rapp.setRappResources(rappCsarConfigurationHandler.getRappResource(rapp));
+ rapp.setAsdMetadata(rappCsarConfigurationHandler.getAsdMetadata(rapp));
+ rappCacheService.putRapp(rapp);
+ return ResponseEntity.accepted().build();
}
@PutMapping("{rapp_id}")
/*
* ============LICENSE_START======================================================================
- * Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+ * Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved.
* ===============================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
private final List<RappValidator> rappValidators;
- public boolean isValidRappPackage(MultipartFile multipartFile) {
+ public void isValidRappPackage(MultipartFile multipartFile) {
List<RappValidator> validatorList =
rappValidators.stream().sorted(Comparator.comparing(RappValidator::getOrder)).toList();
validatorList.forEach(rappValidator -> rappValidator.validate(multipartFile, null));
- return true;
}
}
package org.oransc.rappmanager.models.csar.validator;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock;
MultipartFile multipartFile =
new MockMultipartFile(rappCsarPath, rappCsarPath, ContentType.MULTIPART_FORM_DATA.getMimeType(),
new FileInputStream(rappCsarPath));
- assertEquals(Boolean.TRUE, rappValidationHandler.isValidRappPackage(multipartFile));
+ assertDoesNotThrow(() -> rappValidationHandler.isValidRappPackage(multipartFile));
}
@ParameterizedTest