From 2029624f01d163a06bb6f8b6ddc87975571b088a Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Mon, 12 Mar 2018 19:37:34 +0100 Subject: [PATCH] Add csar Handler Add a csar handler to save the Csar downloaded from SDC Issue-ID: CLAMP-81 Change-Id: I59d33ea3754e8e6acbe107c32fdcf83c1f236171 Signed-off-by: Determe, Sebastien (sd378r) --- pom.xml | 18 +++- .../sdc/controller/CsarHandlerException.java | 55 +++++++++++ .../clds/sdc/controller/installer/CsarHandler.java | 110 +++++++++++++++++++++ src/main/resources/application.properties | 1 + .../sdc/controller/installer/CsarHandlerTest.java | 104 +++++++++++++++++++ src/test/resources/application.properties | 1 + .../example/sdc/service-Simsfoimap0112.csar | Bin 0 -> 51391 bytes 7 files changed, 288 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java create mode 100644 src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java create mode 100644 src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java create mode 100644 src/test/resources/example/sdc/service-Simsfoimap0112.csar diff --git a/pom.xml b/pom.xml index 2f1a7d248..69755e47d 100644 --- a/pom.xml +++ b/pom.xml @@ -485,8 +485,15 @@ org.openecomp.sdc.sdc-distribution-client sdc-distribution-client - 1.2.3 + 1.2.2 + + + org.openecomp.sdc.sdc-tosca + sdc-tosca + 1.2.2 + + @@ -497,6 +504,7 @@ src/test/resources **/*.jks + **/*.csar true @@ -508,6 +516,14 @@ false https + + src/test/resources/example/sdc + + **.csar + + false + example/sdc + diff --git a/src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java new file mode 100644 index 000000000..16fd77984 --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/exception/sdc/controller/CsarHandlerException.java @@ -0,0 +1,55 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. 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. + * 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. + * ============LICENSE_END============================================ + * =================================================================== + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.clamp.clds.exception.sdc.controller; + +/** + * Exception during Csar operations. + */ +public class CsarHandlerException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -7628640776124409155L; + + /** + * @param message + * The message to dump + * @param cause + * The Throwable cause object + */ + public CsarHandlerException(final String message) { + super(message); + } + + /** + * @param message + * The message to dump + * @param cause + * The Throwable cause object + */ + public CsarHandlerException(final String message, final Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java new file mode 100644 index 000000000..56c8530cc --- /dev/null +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -0,0 +1,110 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. 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. + * 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. + * ============LICENSE_END============================================ + * =================================================================== + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.clamp.clds.sdc.controller.installer; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; + +import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.sdc.controller.SdcSingleController; +import org.openecomp.sdc.api.notification.IArtifactInfo; +import org.openecomp.sdc.api.notification.INotificationData; +import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; +import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; +import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory; + +/** + * CsarDescriptor that will be used to deploy in CLAMP. + */ +public class CsarHandler { + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcSingleController.class); + private IArtifactInfo artifactElement; + private String filePath; + private String controllerName; + private SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance(); + private ISdcCsarHelper sdcCsarHelper; + public static final String CSAR_TYPE = "TOSCA_CSAR"; + private String csarPath; + + public CsarHandler(INotificationData iNotif, String controller, String sdcCsarPath) throws CsarHandlerException { + this.csarPath = sdcCsarPath; + this.controllerName = controller; + this.artifactElement = searchForUniqueCsar(iNotif); + this.filePath = buildFilePathForCsar(artifactElement); + } + + private String buildFilePathForCsar(IArtifactInfo artifactElement) { + return csarPath + "/" + controllerName + "/" + artifactElement.getArtifactName(); + } + + private IArtifactInfo searchForUniqueCsar(INotificationData iNotif) throws CsarHandlerException { + List serviceArtifacts = iNotif.getServiceArtifacts(); + for (IArtifactInfo artifact : serviceArtifacts) { + if (artifact.getArtifactType().equals(CSAR_TYPE)) { + return artifact; + } + } + throw new CsarHandlerException("Unable to find a CSAR in the Sdc Notification"); + } + + public void save(IDistributionClientDownloadResult resultArtifact) + throws SdcArtifactInstallerException, SdcToscaParserException { + try { + logger.info("Writing CSAR file : " + artifactElement.getArtifactURL() + " UUID " + + artifactElement.getArtifactUUID() + ")"); + Path path = Paths.get(filePath); + Files.createDirectories(path.getParent()); + Files.createFile(path); + try (FileOutputStream outFile = new FileOutputStream(filePath)) { + outFile.write(resultArtifact.getArtifactPayload(), 0, resultArtifact.getArtifactPayload().length); + } + sdcCsarHelper = factory.getSdcCsarHelper(filePath); + } catch (IOException e) { + throw new SdcArtifactInstallerException( + "Exception caught when trying to write the CSAR on the file system to " + filePath, e); + } + } + + public IArtifactInfo getArtifactElement() { + return artifactElement; + } + + public String getFilePath() { + return filePath; + } + + public ISdcCsarHelper getSdcCsarHelper() { + return sdcCsarHelper; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3d56725d6..f626e1af1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -177,6 +177,7 @@ clamp.config.sdc.locationArtifactType=DCAE_INVENTORY_JSON clamp.config.sdc.InstanceID=X-ECOMP-InstanceID clamp.config.sdc.header.requestId = X-ECOMP-RequestID # +clamp.config.sdc.csarFolder = /tmp/sdc-controllers # clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json clamp.config.ui.alarm.default=classpath:/clds/templates/ui-alarm-default.json diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java new file mode 100644 index 000000000..4c3ab86b7 --- /dev/null +++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. 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. + * 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. + * ============LICENSE_END============================================ + * =================================================================== + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ + +package org.onap.clamp.clds.sdc.controller.installer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.att.aft.dme2.internal.apache.commons.io.IOUtils; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; + +import org.junit.AfterClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.onap.clamp.clds.exception.sdc.controller.CsarHandlerException; +import org.onap.clamp.clds.exception.sdc.controller.SdcArtifactInstallerException; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.openecomp.sdc.api.notification.IArtifactInfo; +import org.openecomp.sdc.api.notification.INotificationData; +import org.openecomp.sdc.api.results.IDistributionClientDownloadResult; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; + +public class CsarHandlerTest { + + private static final String sdcFolder = "/tmp/csar-handler-tests"; + private static final String csarArtifactName = "testArtifact.csar"; + + @AfterClass + public static void removeAllFiles() throws IOException { + // Do some cleanup + Path path = Paths.get(sdcFolder + "/test-controller/" + csarArtifactName); + Files.deleteIfExists(path); + } + + @Test + public void testConstructor() throws CsarHandlerException { + IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class); + Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); + Mockito.when(serviceArtifact.getArtifactName()).thenReturn(csarArtifactName); + List servicesList = new ArrayList<>(); + servicesList.add(serviceArtifact); + INotificationData iNotifData = Mockito.mock(INotificationData.class); + Mockito.when(iNotifData.getServiceArtifacts()).thenReturn(servicesList); + CsarHandler csar = new CsarHandler(iNotifData, "test-controller", sdcFolder); + assertEquals(sdcFolder + "/test-controller" + "/" + csarArtifactName, csar.getFilePath()); + } + + @Test(expected = CsarHandlerException.class) + public void testFailingConstructor() throws CsarHandlerException { + INotificationData iNotifData = Mockito.mock(INotificationData.class); + Mockito.when(iNotifData.getServiceArtifacts()).thenReturn(new ArrayList<>()); + new CsarHandler(iNotifData, "test-controller", "/tmp/csar-handler-tests"); + fail("Exception should have been raised"); + } + + @Test + public void testSave() + throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException { + IArtifactInfo serviceArtifact = Mockito.mock(IArtifactInfo.class); + Mockito.when(serviceArtifact.getArtifactType()).thenReturn(CsarHandler.CSAR_TYPE); + Mockito.when(serviceArtifact.getArtifactName()).thenReturn(csarArtifactName); + List servicesList = new ArrayList<>(); + servicesList.add(serviceArtifact); + INotificationData iNotifData = Mockito.mock(INotificationData.class); + Mockito.when(iNotifData.getServiceArtifacts()).thenReturn(servicesList); + CsarHandler csar = new CsarHandler(iNotifData, "test-controller", "/tmp/csar-handler-tests"); + IDistributionClientDownloadResult resultArtifact = Mockito.mock(IDistributionClientDownloadResult.class); + Mockito.when(resultArtifact.getArtifactPayload()).thenReturn( + IOUtils.toByteArray(ResourceFileUtil.getResourceAsStream("example/sdc/service-Simsfoimap0112.csar"))); + csar.save(resultArtifact); + assertTrue((new File(sdcFolder + "/test-controller/" + csarArtifactName)).exists()); + assertEquals(csarArtifactName, csar.getArtifactElement().getArtifactName()); + assertNotNull(csar.getSdcCsarHelper()); + } +} diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index adcd4d98b..413cfe7a1 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -177,6 +177,7 @@ clamp.config.sdc.locationArtifactType=DCAE_INVENTORY_JSON clamp.config.sdc.InstanceID=X-ECOMP-InstanceID clamp.config.sdc.header.requestId = X-ECOMP-RequestID # +clamp.config.sdc.csarFolder = /tmp/sdc-tests # clamp.config.ui.location.default=classpath:/clds/templates/ui-location-default.json clamp.config.ui.alarm.default=classpath:/clds/templates/ui-alarm-default.json diff --git a/src/test/resources/example/sdc/service-Simsfoimap0112.csar b/src/test/resources/example/sdc/service-Simsfoimap0112.csar new file mode 100644 index 0000000000000000000000000000000000000000..160c8f2ccda6c6b56eb209ed446291e0ce61edf6 GIT binary patch literal 51391 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 CSgc_H literal 0 HcmV?d00001 -- 2.16.6