From 280f8015d06af1f41a3ef12e8300801c7a5e0d54 Mon Sep 17 00:00:00 2001 From: AviZi Date: Fri, 9 Jun 2017 02:39:56 +0300 Subject: [SDC-29] Amdocs OnBoard 1707 initial commit. Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370 Signed-off-by: AviZi --- .../openecomp-sdc-healing-core/pom.xml | 33 ++++++++ .../pom.xml.versionsBackup | 35 +++++++++ .../healing/impl/HealingManagerFactoryImpl.java | 35 +++++++++ .../sdc/healing/impl/HealingManagerImpl.java | 91 ++++++++++++++++++++++ .../sdc/healing/utils/HealingConfiguration.java | 27 +++++++ .../openecomp/sdc/healing/utils/HealingUtil.java | 27 +++++++ .../src/main/resources/healingConfiguration.json | 7 ++ 7 files changed, 255 insertions(+) create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerFactoryImpl.java create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingConfiguration.java create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingUtil.java create mode 100644 openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core') diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml new file mode 100644 index 0000000000..a01d79e937 --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + org.openecomp.sdc + openecomp-sdc-healing-core + + + org.openecomp.sdc + openecomp-healing-lib + 1.1.0-SNAPSHOT + + + + + org.openecomp.sdc + openecomp-sdc-healing-api + ${project.version} + + + org.openecomp.sdc + openecomp-sdc-validation-api + ${project.version} + + + org.openecomp.sdc + openecomp-sdc-vendor-software-product-api + ${project.version} + + + + diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup new file mode 100644 index 0000000000..c48c3259e1 --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup @@ -0,0 +1,35 @@ + + + 4.0.0 + + + org.openecomp.sdc + openecomp-sdc-healing-api + 1.0-SNAPSHOT + + + org.openecomp.sdc + openecomp-sdc-validation-api + 1.0-SNAPSHOT + + + org.openecomp.sdc + openecomp-sdc-vendor-software-product-api + 1.0-SNAPSHOT + + + + + org.openecomp.sdc + openecomp-healing-lib + 1.0-SNAPSHOT + + + org.openecomp.sdc + openecomp-sdc-healing-core + 1.0-SNAPSHOT + + + \ No newline at end of file diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerFactoryImpl.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerFactoryImpl.java new file mode 100644 index 0000000000..84aff4327d --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerFactoryImpl.java @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 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========================================================= + */ + +package org.openecomp.sdc.healing.impl; + +import org.openecomp.sdc.healing.api.HealingManager; +import org.openecomp.sdc.healing.factory.HealingManagerFactory; + +/** + * Created by Talio on 11/29/2016. + */ +public class HealingManagerFactoryImpl extends HealingManagerFactory { + + @Override + public HealingManager createInterface() { + return new HealingManagerImpl(); + } +} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java new file mode 100644 index 0000000000..0d4cb9c0ba --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/impl/HealingManagerImpl.java @@ -0,0 +1,91 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 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========================================================= + */ + +package org.openecomp.sdc.healing.impl; + +import org.openecomp.sdc.datatypes.error.ErrorLevel; +import org.openecomp.sdc.healing.interfaces.Healer; +import org.openecomp.core.utilities.file.FileUtils; +import org.openecomp.sdc.healing.types.HealCode; +import org.openecomp.core.utilities.json.JsonUtil; +import org.openecomp.sdc.healing.api.HealingManager; +import org.openecomp.sdc.common.errors.Messages; +import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage; +import org.openecomp.sdc.logging.types.LoggerConstants; +import org.openecomp.sdc.logging.types.LoggerErrorCode; +import org.openecomp.sdc.logging.types.LoggerErrorDescription; +import org.openecomp.sdc.logging.types.LoggerTragetServiceName; + +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.util.Map; + +/** + * Created by Talio on 11/29/2016. + */ +public class HealingManagerImpl implements HealingManager { + private static String HEALING_CONF_FILE = "healingConfiguration.json"; + private static Map healerCodeToImplClass = initHealers(); + + @Override + public Object heal(HealCode code, Map healParameters) { + String implClassName = healerCodeToImplClass.get(code.name()); + try { + Healer healerImpl = getHealerImplInstance(implClassName); + return healerImpl.heal(healParameters); + + } catch (Exception e) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SELF_HEALING, ErrorLevel.ERROR.name(), LoggerErrorCode + .DATA_ERROR.getErrorCode(), LoggerErrorDescription.CANT_HEAL); + throw new RuntimeException(String.format(Messages.CANT_LOAD_CLASS.getErrorMessage(), + implClassName, e.getMessage())); + } + } + + @Override + public void healAll(Map healParameters) { + for (String implClassName : healerCodeToImplClass.values()) { + try { + Healer healerImpl = getHealerImplInstance(implClassName); + healerImpl.heal(healParameters); + } catch (Exception e) { + MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB, + LoggerTragetServiceName.SELF_HEALING, ErrorLevel.ERROR.name(), LoggerErrorCode + .DATA_ERROR.getErrorCode(), LoggerErrorDescription.CANT_HEAL); + throw new RuntimeException(String.format(Messages.CANT_LOAD_CLASS.getErrorMessage(), + implClassName, e.getMessage())); + } + } + } + + private static Map initHealers() { + InputStream healingConfigurationJson = FileUtils.getFileInputStream(HEALING_CONF_FILE); + return JsonUtil.json2Object(healingConfigurationJson, Map.class); + } + + private Healer getHealerImplInstance(String implClassName) + throws ClassNotFoundException, NoSuchMethodException, InstantiationException, + IllegalAccessException, java.lang.reflect.InvocationTargetException { + Class clazz = Class.forName(implClassName); + Constructor constructor = clazz.getConstructor(); + return (Healer) constructor.newInstance(); + } +} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingConfiguration.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingConfiguration.java new file mode 100644 index 0000000000..7767277444 --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingConfiguration.java @@ -0,0 +1,27 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 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========================================================= + */ + +package org.openecomp.sdc.healing.utils; + +/** + * Created by Talio on 11/29/2016. + */ +public class HealingConfiguration { +} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingUtil.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingUtil.java new file mode 100644 index 0000000000..e955c83b79 --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/java/org/openecomp/sdc/healing/utils/HealingUtil.java @@ -0,0 +1,27 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 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========================================================= + */ + +package org.openecomp.sdc.healing.utils; + +/** + * Created by Talio on 11/29/2016. + */ +public class HealingUtil { +} diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json new file mode 100644 index 0000000000..23427ceb6a --- /dev/null +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/src/main/resources/healingConfiguration.json @@ -0,0 +1,7 @@ +{ + "FILE_DATA_STRUCTURE_HEALER" : "org.openecomp.sdc.healing.healers.FileDataStructureHealer", + "QUESTIONNAIRE_HEALER" : "org.openecomp.sdc.healing.healers.VspQuestionnaireHealer", + "COMPOSITION_DATA_HEALER" : "org.openecomp.sdc.healing.healers.CompositionDataHealer", + "SUB_ENTITIES_HEALER" : "org.openecomp.sdc.healing.healers.SubEntitiesQuestionnaireHealer", + "HEAT_TOSCA_TRANSLATION_HEALER" : "org.openecomp.sdc.healing.healers.HeatToToscaTranslationHealer" +} \ No newline at end of file -- cgit 1.2.3-korg