X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fmodel-loader.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fmodel%2FModelArtifactHandler.java;h=626ca491276d70e31439eee426c76ccb25c9a981;hp=3a5b54350597228421f10315b7a257202e56cc6d;hb=6e4f04afea4c2d07fdd9c15eda38438c7baeb308;hpb=221c7774685f8073d176cef6c9d88623d445c183 diff --git a/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactHandler.java b/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactHandler.java index 3a5b543..626ca49 100644 --- a/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactHandler.java +++ b/src/main/java/org/onap/aai/modelloader/entity/model/ModelArtifactHandler.java @@ -1,16 +1,15 @@ /** - * ============LICENSE_START======================================================= + * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. - * Copyright © 2017 Amdocs - * All rights reserved. + * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2017-2018 European Software Marketing Ltd. * ================================================================================ * 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 + * 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, @@ -18,69 +17,54 @@ * 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.aai.modelloader.entity.model; +import java.util.List; +import org.onap.aai.cl.api.Logger; +import org.onap.aai.cl.eelf.LoggerFactory; import org.onap.aai.modelloader.config.ModelLoaderConfig; import org.onap.aai.modelloader.entity.Artifact; import org.onap.aai.modelloader.entity.ArtifactHandler; import org.onap.aai.modelloader.restclient.AaiRestClient; import org.onap.aai.modelloader.service.ModelLoaderMsgs; -import org.onap.aai.cl.api.Logger; -import org.onap.aai.cl.eelf.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; - public class ModelArtifactHandler extends ArtifactHandler { - private static Logger logger = LoggerFactory.getInstance().getLogger(ModelArtifactHandler.class.getName()); - - public ModelArtifactHandler(ModelLoaderConfig config) { - super(config); - } + private static Logger logger = LoggerFactory.getInstance().getLogger(ModelArtifactHandler.class.getName()); - @Override - public boolean pushArtifacts(List artifacts, String distributionID) { - ModelSorter modelSorter = new ModelSorter(); - List sortedModelArtifacts; - try { - sortedModelArtifacts = modelSorter.sort(artifacts); - } - catch (RuntimeException ex) { - logger.error(ModelLoaderMsgs.DISTRIBUTION_EVENT_ERROR, "Unable to resolve models: " + ex.getMessage()); - return false; + public ModelArtifactHandler(ModelLoaderConfig config) { + super(config); } - - // Push the ordered list of model artifacts to A&AI. If one fails, we need to roll back - // the changes. - List completedModels = new ArrayList<>(); - AaiRestClient aaiClient = new AaiRestClient(config); - for (Artifact art : sortedModelArtifacts) { - AbstractModelArtifact model = (AbstractModelArtifact)art; - if (model.push(aaiClient, config, distributionID, completedModels) != true) { - for (AbstractModelArtifact modelToDelete : completedModels) { - modelToDelete.rollbackModel(aaiClient, config, distributionID); + @Override + public boolean pushArtifacts(List artifacts, String distributionID, List completedArtifacts, + AaiRestClient aaiClient) { + ModelSorter modelSorter = new ModelSorter(); + List sortedModelArtifacts; + try { + sortedModelArtifacts = modelSorter.sort(artifacts); + } catch (BabelArtifactParsingException ex) { + logger.error(ModelLoaderMsgs.DISTRIBUTION_EVENT_ERROR, "Unable to resolve models: " + ex.getMessage()); + return false; } - return false; - } - } + // Push the ordered list of model artifacts to A&AI. If one fails, we need to roll back the changes. + for (Artifact art : sortedModelArtifacts) { + AbstractModelArtifact model = (AbstractModelArtifact) art; + if (!model.push(aaiClient, config, distributionID, completedArtifacts)) { + return false; + } + } - return true; - } + return true; + } - // This method is used for the test REST interface to load models without an ASDC - public void loadModelTest(byte[] payload) { - List modelArtifacts = new ArrayList(); - ModelArtifactParser parser = new ModelArtifactParser(); - modelArtifacts.addAll(parser.parse(payload, "Test-Artifact")); - ModelSorter modelSorter = new ModelSorter(); - List sortedModelArtifacts = modelSorter.sort(modelArtifacts); - pushArtifacts(sortedModelArtifacts, "Test-Distribution"); - } + @Override + public void rollback(List completedArtifacts, String distributionId, AaiRestClient aaiClient) { + for (Artifact artifactToDelete : completedArtifacts) { + AbstractModelArtifact model = (AbstractModelArtifact) artifactToDelete; + model.rollbackModel(aaiClient, config, distributionId); + } + } }