X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fmodelloader%2Fentity%2Fmodel%2FModelArtifactHandler.java;h=157ac8dcacd2bf666b84ed4f97800a0ba0bec20c;hb=7b1f813441f94261f43ec4f5bb0944ad2570fbdf;hp=3a5b54350597228421f10315b7a257202e56cc6d;hpb=b4c00b3e8a634e65bd586af5c59a81659b7a51d1;p=aai%2Fmodel-loader.git 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..157ac8d 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,28 +1,27 @@ /** - * ============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 Amdocs + * =================================================================== * 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, * 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. + * ============LICENSE_END============================================ */ package org.onap.aai.modelloader.entity.model; +import java.util.List; + import org.onap.aai.modelloader.config.ModelLoaderConfig; import org.onap.aai.modelloader.entity.Artifact; import org.onap.aai.modelloader.entity.ArtifactHandler; @@ -31,56 +30,42 @@ 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); + public ModelArtifactHandler(ModelLoaderConfig config) { + super(config); } - catch (RuntimeException ex) { - logger.error(ModelLoaderMsgs.DISTRIBUTION_EVENT_ERROR, "Unable to resolve models: " + ex.getMessage()); - return false; - } - - // 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 (RuntimeException 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); + } + } }