diff options
34 files changed, 1844 insertions, 342 deletions
diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java index 5d16a95e5f..275241f768 100644 --- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java +++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfig.java @@ -22,10 +22,10 @@ package org.openecomp.mso.cloud; import java.io.FileReader; import java.io.IOException; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; - import java.util.Optional; import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.map.DeserializationConfig; @@ -78,8 +78,8 @@ public class CloudConfig { /** * Get a map of all cloud sites that have been loaded. */ - public synchronized Map<String, CloudSite> getCloudSites() { - return cloudSites; + public Map<String, CloudSite> getCloudSites() { + return Collections.unmodifiableMap(cloudSites); } /** diff --git a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java index 445c135dab..144506c3bd 100644 --- a/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java +++ b/adapters/mso-adapter-utils/src/main/java/org/openecomp/mso/cloud/CloudConfigFactory.java @@ -20,12 +20,10 @@ package org.openecomp.mso.cloud; - import java.io.IOException; import java.io.Serializable; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantReadWriteLock; - import javax.ejb.ConcurrencyManagement; import javax.ejb.ConcurrencyManagementType; import javax.ejb.LocalBean; @@ -36,22 +34,17 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; - import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; - +import org.openecomp.mso.logger.MessageEnum; import org.openecomp.mso.logger.MsoLogger; import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound; import org.openecomp.mso.openstack.utils.MsoHeatUtils; import org.openecomp.mso.openstack.utils.MsoKeystoneUtils; import org.openecomp.mso.openstack.utils.MsoNeutronUtils; -import org.openecomp.mso.properties.MsoPropertiesException; -import org.openecomp.mso.logger.MessageEnum; /** * This class returns a cloud Config instances - * - * */ @Singleton(name = "CloudConfigFactory") @@ -62,13 +55,13 @@ public class CloudConfigFactory implements Serializable { private static final long serialVersionUID = 2956662716453261085L; - private static CloudConfig cloudConfigCache = new CloudConfig (); + private CloudConfig cloudConfigCache = new CloudConfig(); protected static String prefixMsoPropertiesPath = System.getProperty ("mso.config.path"); private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA); - private static int refreshTimer; + private int refreshTimer; private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock (); @@ -79,7 +72,6 @@ public class CloudConfigFactory implements Serializable { } public void initializeCloudConfig (String filePath, int refreshTimer) throws MsoCloudIdentityNotFound { - rwl.writeLock ().lock (); try { cloudConfigCache.loadCloudConfig (prefixMsoPropertiesPath + filePath, refreshTimer); @@ -95,18 +87,6 @@ public class CloudConfigFactory implements Serializable { } } - public void changeMsoPropertiesFilePath (String newMsoPropPath) { - rwl.writeLock ().lock (); - try { - CloudConfigFactory.cloudConfigCache.configFilePath = prefixMsoPropertiesPath + newMsoPropPath; - } finally { - rwl.writeLock ().unlock (); - } - } - - public CloudConfigFactory () { - } - public CloudConfig getCloudConfig () { rwl.readLock ().lock (); try { @@ -127,7 +107,7 @@ public class CloudConfigFactory implements Serializable { * @return true if Properties have been reloaded, false otherwise */ @Schedule(minute = "*/1", hour = "*", persistent = false) - public static void reloadCloudConfig () { + public void reloadCloudConfig () { try { if (!rwl.writeLock ().tryLock () && !rwl.writeLock ().tryLock (30L, TimeUnit.SECONDS)) { @@ -180,23 +160,17 @@ public class CloudConfigFactory implements Serializable { @Path("/showConfig") @Produces("text/plain") public Response showCloudConfig () { - CloudConfig cloudConfig = this.getCloudConfig (); - if (cloudConfig != null) { - StringBuffer response = new StringBuffer (); - response.append ("Cloud Sites:\n"); - for (CloudSite site : cloudConfig.getCloudSites ().values ()) { - response.append(site.toString()).append("\n"); - } - - response.append ("\n\nCloud Identity Services:\n"); - for (CloudIdentity identity : cloudConfig.getIdentityServices ().values ()) { - response.append(identity.toString()).append("\n"); - } - - return Response.status (200).entity (response).build (); - } else { - return Response.status (500).entity ("Cloud Config has not been loaded properly, this could be due to a bad JSON structure (Check the logs for additional details)").build (); + CloudConfig cloudConfig = this.getCloudConfig(); + StringBuffer response = new StringBuffer(); + response.append("Cloud Sites:\n"); + for (CloudSite site : cloudConfig.getCloudSites().values()) { + response.append(site.toString()).append("\n"); + } + response.append("\n\nCloud Identity Services:\n"); + for (CloudIdentity identity : cloudConfig.getIdentityServices().values()) { + response.append(identity.toString()).append("\n"); } + return Response.status(200).entity(response).build(); } @GET @@ -207,8 +181,7 @@ public class CloudConfigFactory implements Serializable { MsoKeystoneUtils.adminCacheReset (); MsoHeatUtils.heatCacheReset (); MsoNeutronUtils.neutronCacheReset (); - - String response = "Client caches reset. All entries removed."; + String response = "Client caches reset. All entries removed."; return Response.status (200).entity (response).build (); } @@ -220,8 +193,7 @@ public class CloudConfigFactory implements Serializable { MsoKeystoneUtils.adminCacheCleanup (); MsoHeatUtils.heatCacheCleanup (); MsoNeutronUtils.neutronCacheCleanup (); - - String response = "Client caches cleaned up. All expired entries removed"; + String response = "Client caches cleaned up. All expired entries removed."; return Response.status (200).entity (response).build (); } diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java new file mode 100644 index 0000000000..fe768b5774 --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigFactoryTest.java @@ -0,0 +1,164 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * 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.mso.cloud; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; +import javax.ws.rs.core.Response; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound; + +public class CloudConfigFactoryTest { + + private static final String CLOUD_CONFIG_FIELD_NAME = "cloudConfigCache"; + private static final int REFRESH_TIMER_VALUE = 1; + + private CloudConfigFactory testedObject; + private CloudConfig cloudConfigMock; + + @Before + public void init() throws NoSuchFieldException, IllegalAccessException { + cloudConfigMock = mock(CloudConfig.class); + testedObject = new CloudConfigFactory(); + setCloudConfig(); + } + + @Test + public void initializeCloudConfigSuccessful() throws MsoCloudIdentityNotFound, IOException { + ClassLoader classLoader = CloudConfigFactoryTest.class.getClassLoader(); + String cloudConfigJsonFilePath = classLoader.getResource("cloud_config.json").getPath(); + testedObject.initializeCloudConfig(cloudConfigJsonFilePath, REFRESH_TIMER_VALUE); + verify(cloudConfigMock).loadCloudConfig(cloudConfigJsonFilePath, REFRESH_TIMER_VALUE); + } + + @Test + public void getValidCloudConfig() { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(true); + + testedObject.getCloudConfig(); + + verify(cloudConfigMock).clone(); + } + + @Test + public void getNotValidCloudConfig() { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(false); + + CloudConfig result = testedObject.getCloudConfig(); + + assertThat(result).isNotNull(); + assertThat(result.getCloudSites()).isEmpty(); + assertThat(result.getIdentityServices()).isEmpty(); + } + + @Test + public void reload_CloudConfigValid() throws IOException, MsoCloudIdentityNotFound { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(true); + + testedObject.reloadCloudConfig(); + + verify(cloudConfigMock).clone(); + verify(cloudConfigMock).reloadPropertiesFile(); + } + + @Test + public void reload_CloudConfigNotValid() + throws IOException, MsoCloudIdentityNotFound { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(false); + + testedObject.reloadCloudConfig(); + + verify(cloudConfigMock).reloadPropertiesFile(); + } + + @Test + public void showCloudConfig() throws NoSuchFieldException, IllegalAccessException { + when(cloudConfigMock.isValidCloudConfig()).thenReturn(true); + when(cloudConfigMock.clone()).thenReturn(createCloudConfig("IdTest576", "identityTest456")); + Response response = testedObject.showCloudConfig(); + + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).containsPattern("CloudSite:.*IdTest576") + .containsPattern("Cloud Identity Service:.*identityTest456"); + + } + + @Test + public void resetClientCaches_Successful() { + Response response = testedObject.resetClientCaches(); + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).isEqualTo("Client caches reset. All entries removed."); + } + + @Test + public void cleanUpClientCache_Successful() { + Response response = testedObject.cleanupClientCaches(); + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).isEqualTo("Client caches cleaned up. All expired entries removed."); + } + + @Test + public void encryptPassword_Successful() { + Response response = testedObject.encryptPassword("passTest123"); + String expectedEncryptedPassword = CloudIdentity.encryptPassword("passTest123"); + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getEntity().toString()).isEqualTo("Encrypted Password = "+expectedEncryptedPassword); + } + + private CloudConfig createCloudConfig(String cloudSiteId, String identityServiceId) + throws NoSuchFieldException, IllegalAccessException { + CloudConfig cloudConfig = new CloudConfig(); + Map<String, CloudSite> cloudSiteMap = new HashMap<>(); + CloudSite cs = new CloudSite(); + cs.setId(cloudSiteId); + cloudSiteMap.put("keyTest", cs); + Field cloudSitesField = cloudConfig.getClass().getDeclaredField("cloudSites"); + cloudSitesField.setAccessible(true); + cloudSitesField.set(cloudConfig, cloudSiteMap); + + Map<String, CloudIdentity> identityServicesMap = new HashMap<>(); + CloudIdentity cloudIdentity = new CloudIdentity(); + cloudIdentity.setId(identityServiceId); + identityServicesMap.put("identityKey", cloudIdentity); + + Field identityServicesField = cloudConfig.getClass().getDeclaredField("identityServices"); + identityServicesField.setAccessible(true); + identityServicesField.set(cloudConfig, identityServicesMap); + + return cloudConfig; + } + + private void setCloudConfig() + throws NoSuchFieldException, IllegalAccessException { + Field field = testedObject.getClass().getDeclaredField(CLOUD_CONFIG_FIELD_NAME); + field.setAccessible(true); + field.set(testedObject, cloudConfigMock); + } + +} diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java index 1c2501e8e4..5b6be03a22 100644 --- a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java +++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudConfigTest.java @@ -20,161 +20,221 @@ package org.openecomp.mso.cloud; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertTrue; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; import java.util.Optional; -import org.junit.Assert; -import org.junit.BeforeClass; +import org.junit.Before; import org.junit.Test; -import java.util.Map; import org.openecomp.mso.openstack.exceptions.MsoCloudIdentityNotFound; public class CloudConfigTest { - private static String cloudConfigJsonFilePath; - private static String cloudDefaultConfigJsonFilePath; - private static String cloudConfigInvalidJsonFilePath; + private static final int NUMBER_OF_CLOUD_SITES_IN_JSON_FILE = 4; + private static final int NUMBER_OF_IDENTITY_SERVICES_IN_JSON_FILE = 4; + private static final String CLOUD_SITES_FIELD_NAME = "cloudSites"; + private static final String IDENTITY_SERVICE_FIELD_NAME = "identityServices"; + private static final String CLOUD_SITE_DEFAULT = "default"; + private static final String CLOUD_CONFIG_JSON_FILE_NAME = "cloud_config.json"; + private static final String CLOUD_CONFIG_INVALID_JSON_FILE_NAME = "cloud_config_bad.json"; + + private CloudConfig testedObject; + private CloudSite cloudSite; + private CloudSite cloudSiteDefault; + + @Before + public void init() { + testedObject = new CloudConfig(); + } - @BeforeClass - public static void preparePaths() { - ClassLoader classLoader = CloudConfigTest.class.getClassLoader(); - cloudConfigJsonFilePath = classLoader.getResource("cloud_config.json").getPath(); - cloudDefaultConfigJsonFilePath = classLoader.getResource("cloud_default_config.json").getPath(); - cloudConfigInvalidJsonFilePath = classLoader.getResource("cloud_config_bad.json").getPath(); + @Test + public void cloudSite_returnEmptyOptionalIfIdIsNull() { + Optional<CloudSite> cloudConfigOpt = new CloudConfig().getCloudSite(null); + assertThat(cloudConfigOpt).isEmpty(); + } + + @Test + public void cloudSiteIsGotById_when_IdFound() throws NoSuchFieldException, IllegalAccessException { + setCloudSitesMap(); + Optional<CloudSite> cloudSiteOpt = testedObject.getCloudSite(cloudSite.getId()); + assertThat(cloudSiteOpt).isPresent(); + assertThat(cloudSiteOpt.get().getId()).isEqualTo(cloudSite.getId()); + assertThat(cloudSiteOpt.get().getClli()).isEqualTo(cloudSite.getClli()); + } + + @Test + public void cloudSiteIsGotByClli_when_IdNotFound() throws NoSuchFieldException, IllegalAccessException { + setCloudSitesMap(); + Optional<CloudSite> cloudSiteOpt = testedObject.getCloudSite(cloudSite.getClli()); + assertTrue(cloudSiteOpt.isPresent()); + assertThat(cloudSiteOpt.get().getId()).isEqualTo(cloudSite.getId()); + assertThat(cloudSiteOpt.get().getClli()).isEqualTo(cloudSite.getClli()); + } + + @Test + public void cloudSiteIsGotByDefault_when_IdAndClliNotFound() throws NoSuchFieldException, IllegalAccessException { + setCloudSitesMap(); + Optional<CloudSite> cloudSiteOpt = testedObject.getCloudSite("not_existing_id"); + assertTrue(cloudSiteOpt.isPresent()); + assertThat(cloudSiteOpt.get().getId()).isEqualTo("not_existing_id"); + assertThat(cloudSiteOpt.get().getClli()).isEqualTo(cloudSiteDefault.getClli()); + } + + @Test + public void cloudSiteNotFound_returnNull() { + assertThat(testedObject.getCloudSite("not_existing_id")).isEmpty(); + } + + @Test + public void identityServiceFoundById() throws NoSuchFieldException, IllegalAccessException { + CloudIdentity cloudIdentity = createCloudIdentity(); + setIdentityServiceMap(); + CloudIdentity cloudIdentityResult = testedObject.getIdentityService(cloudIdentity.getId()); + + assertThat(cloudIdentityResult).isNotNull(); + assertThat(cloudIdentityResult.getId()).isEqualTo(cloudIdentity.getId()); + assertThat(cloudIdentityResult.getMsoId()).isEqualTo(cloudIdentity.getMsoId()); } - private CloudConfig createTestObject(String jsonFilePath) throws MsoCloudIdentityNotFound { - CloudConfigFactory cloudConfigFactory = new CloudConfigFactory(); - cloudConfigFactory.initializeCloudConfig(jsonFilePath, 1); - return cloudConfigFactory.getCloudConfig(); + @Test + public void defaultClodeSiteNotFound_returnNull() { + assertThat(testedObject.getIdentityService("not_existing_id")).isNull(); + } + + @Test + public void loadCloudConfigSuccessful() throws IOException, MsoCloudIdentityNotFound { + ClassLoader classLoader = CloudConfigTest.class.getClassLoader(); + String cloudConfigJsonFilePath = classLoader.getResource(CLOUD_CONFIG_JSON_FILE_NAME).getPath(); + testedObject.loadCloudConfig(cloudConfigJsonFilePath, 1); + assertThat(testedObject.isValidCloudConfig()).isTrue(); + checkCloudSites(); + checkIdentityServices(); } @Test - public void testGetCloudSites() throws MsoCloudIdentityNotFound { - CloudConfig con = createTestObject(cloudConfigJsonFilePath); - Map<String, CloudSite> siteMap = con.getCloudSites(); - assertNotNull(siteMap); + public void loadCloudConfig_cloudIdentityNotFound() { + ClassLoader classLoader = CloudConfigTest.class.getClassLoader(); + String cloudConfigInvalidJsonFilePath = classLoader.getResource(CLOUD_CONFIG_INVALID_JSON_FILE_NAME).getPath(); + assertThatThrownBy(() -> testedObject.loadCloudConfig(cloudConfigInvalidJsonFilePath, 1)) + .isInstanceOf(MsoCloudIdentityNotFound.class) + .hasMessage("Cloud Identity [MT Cloud site refers to a non-existing identity service: " + + "MT_KEYSTONE_NOT_EXISTING] not found"); + assertThat(testedObject.isValidCloudConfig()).isFalse(); + } + private void checkCloudSites() { + Map<String, CloudSite> siteMap = testedObject.getCloudSites(); + assertThat(siteMap).isNotEmpty().hasSize(NUMBER_OF_CLOUD_SITES_IN_JSON_FILE); CloudSite site1 = siteMap.get("MT"); CloudSite site2 = siteMap.get("DAN"); CloudSite site3 = siteMap.get("MTINJVCC101"); CloudSite site4 = siteMap.get("MTSNJA4LCP1"); - assertEquals("regionOne", site1.getRegionId()); - assertEquals("MT_KEYSTONE", site1.getIdentityServiceId()); - assertEquals("RegionOne", site2.getRegionId()); - assertEquals("DAN_KEYSTONE", site2.getIdentityServiceId()); - assertEquals("regionTwo", site3.getRegionId()); - assertEquals("MTINJVCC101_DCP", site3.getIdentityServiceId()); - assertEquals("mtsnjlcp1", site4.getRegionId()); - assertEquals("MTSNJA3DCP1", site4.getIdentityServiceId()); + assertThat(site1.getId()).isEqualTo("MT"); + assertThat(site1.getRegionId()).isEqualTo("regionOne"); + assertThat(site1.getIdentityServiceId()).isEqualTo("MT_KEYSTONE"); + assertThat(site1.getIdentityService()).isNotNull(); + assertThat(site1.getIdentityService().getId()).isEqualTo(site1.getIdentityServiceId()); + + assertThat(site2.getId()).isEqualTo("DAN"); + assertThat(site2.getRegionId()).isEqualTo("RegionOne"); + assertThat(site2.getIdentityServiceId()).isEqualTo("DAN_KEYSTONE"); + assertThat(site2.getIdentityService()).isNotNull(); + assertThat(site2.getIdentityService().getId()).isEqualTo(site2.getIdentityServiceId()); + + assertThat(site3.getId()).isEqualTo("MTINJVCC101"); + assertThat(site3.getRegionId()).isEqualTo("regionTwo"); + assertThat(site3.getIdentityServiceId()).isEqualTo("MTINJVCC101_DCP"); + assertThat(site3.getIdentityService()).isNotNull(); + assertThat(site3.getIdentityService().getId()).isEqualTo(site3.getIdentityServiceId()); + + assertThat(site4.getId()).isEqualTo("MTSNJA4LCP1"); + assertThat(site4.getRegionId()).isEqualTo("mtsnjlcp1"); + assertThat(site4.getIdentityServiceId()).isEqualTo("MTSNJA3DCP1"); + assertThat(site4.getIdentityService()).isNotNull(); + assertThat(site4.getIdentityService().getId()).isEqualTo(site4.getIdentityServiceId()); } - @Test - public void testGetIdentityServices() throws MsoCloudIdentityNotFound { - CloudConfig con = createTestObject(cloudConfigJsonFilePath); - Map<String, CloudIdentity> identityMap = con.getIdentityServices(); - assertNotNull(identityMap); + private void checkIdentityServices() { + Map<String, CloudIdentity> identityMap = testedObject.getIdentityServices(); + assertThat(identityMap).isNotEmpty().hasSize(NUMBER_OF_IDENTITY_SERVICES_IN_JSON_FILE); CloudIdentity identity1 = identityMap.get("MT_KEYSTONE"); CloudIdentity identity2 = identityMap.get("DAN_KEYSTONE"); CloudIdentity identity3 = identityMap.get("MTINJVCC101_DCP"); CloudIdentity identity4 = identityMap.get("MTSNJA3DCP1"); - assertEquals("john", identity1.getMsoId()); - assertEquals("changeme", identity1.getMsoPass()); - assertEquals("admin", identity1.getAdminTenant()); - assertEquals("_member_", identity1.getMemberRole()); - assertFalse(identity1.hasTenantMetadata()); - - assertEquals("mockId", identity2.getMsoId()); - assertEquals("stack123", identity2.getMsoPass()); - assertEquals("service", identity2.getAdminTenant()); - assertEquals("_member_", identity2.getMemberRole()); - assertFalse(identity2.hasTenantMetadata()); - - assertEquals("mockIdToo", identity3.getMsoId()); - assertEquals("AICG@mm@@2015", identity3.getMsoPass()); - assertEquals("service", identity3.getAdminTenant()); - assertEquals("admin", identity3.getMemberRole()); - assertTrue(identity3.hasTenantMetadata()); - - assertEquals("mockIdToo", identity4.getMsoId()); - assertEquals("2315QRS2015srq", identity4.getMsoPass()); - assertEquals("service", identity4.getAdminTenant()); - assertEquals("admin", identity4.getMemberRole()); - assertTrue(identity4.hasTenantMetadata()); + assertThat(identity1.getMsoId()).isEqualTo("john"); + assertThat(identity1.getMsoPass()).isEqualTo("changeme"); + assertThat(identity1.getAdminTenant()).isEqualTo("admin"); + assertThat(identity1.getMemberRole()).isEqualTo("_member_"); + assertThat(identity1.hasTenantMetadata()).isFalse(); + + assertThat(identity2.getMsoId()).isEqualTo("mockId"); + assertThat(identity2.getMsoPass()).isEqualTo("stack123"); + assertThat(identity2.getAdminTenant()).isEqualTo("service"); + assertThat(identity2.getMemberRole()).isEqualTo("_member_"); + assertThat(identity2.hasTenantMetadata()).isFalse(); + + assertThat(identity3.getMsoId()).isEqualTo("mockIdToo"); + assertThat(identity3.getMsoPass()).isEqualTo("AICG@mm@@2015"); + assertThat(identity3.getAdminTenant()).isEqualTo("service"); + assertThat(identity3.getMemberRole()).isEqualTo("admin"); + assertThat(identity3.hasTenantMetadata()).isTrue(); + + assertThat(identity4.getMsoId()).isEqualTo("mockIdToo"); + assertThat(identity4.getMsoPass()).isEqualTo("2315QRS2015srq"); + assertThat(identity4.getAdminTenant()).isEqualTo("service"); + assertThat(identity4.getMemberRole()).isEqualTo("admin"); + assertThat(identity4.hasTenantMetadata()).isTrue(); } @Test - public void cloudSiteIsGotById_when_IdFound() throws MsoCloudIdentityNotFound { - CloudConfig con = createTestObject(cloudConfigJsonFilePath); - Optional<CloudSite> cloudSite = con.getCloudSite("MT"); - assertTrue(cloudSite.isPresent()); - assertEquals("regionOne", cloudSite.get().getRegionId()); - assertEquals("MT_KEYSTONE", cloudSite.get().getIdentityServiceId()); + public void cloneSuccessful() throws NoSuchFieldException, IllegalAccessException { + setCloudSitesMap(); + setIdentityServiceMap(); + assertThat(testedObject.clone()).isEqualTo(testedObject); } - @Test - public void cloudSiteIsGotByClli_when_IdNotFound() throws MsoCloudIdentityNotFound { - CloudConfig con = createTestObject(cloudConfigJsonFilePath); - Optional<CloudSite> cloudSite = con.getCloudSite("CS_clli"); - assertTrue(cloudSite.isPresent()); - assertEquals("clliRegion", cloudSite.get().getRegionId()); - assertEquals("CS_clli", cloudSite.get().getClli()); - assertEquals("CS_service", cloudSite.get().getIdentityServiceId()); + private void setCloudSitesMap() throws NoSuchFieldException, IllegalAccessException { + Field field = testedObject.getClass().getDeclaredField(CLOUD_SITES_FIELD_NAME); + field.setAccessible(true); + Map<String, CloudSite> cloudSites = new HashMap<>(); + cloudSite = createCloudSite("idTest1", "clliTest1"); + cloudSiteDefault = createCloudSite(CLOUD_SITE_DEFAULT, "clliTest2"); + cloudSites.put(cloudSite.getId(), cloudSite); + cloudSites.put(cloudSiteDefault.getId(), cloudSiteDefault); + field.set(testedObject, cloudSites); } - @Test - public void cloudSiteIsGotByDefault_when_IdAndClliNotFound() throws MsoCloudIdentityNotFound { - CloudConfig con = createTestObject(cloudDefaultConfigJsonFilePath); - Optional<CloudSite> cloudSite = con.getCloudSite("not_existing_id"); - assertTrue(cloudSite.isPresent()); - assertEquals("not_existing_id", cloudSite.get().getId()); - assertEquals("not_existing_id", cloudSite.get().getRegionId()); - } + private void setIdentityServiceMap() throws NoSuchFieldException, IllegalAccessException { + Field field = testedObject.getClass().getDeclaredField(IDENTITY_SERVICE_FIELD_NAME); + field.setAccessible(true); - @Test - public void testGetIdentityService() throws MsoCloudIdentityNotFound { - CloudConfig con = createTestObject(cloudConfigJsonFilePath); - CloudIdentity identity1 = con.getIdentityService("MT_KEYSTONE"); - assertNotNull(identity1); - assertEquals("john", identity1.getMsoId()); - assertEquals("changeme", identity1.getMsoPass()); - assertEquals("admin", identity1.getAdminTenant()); - assertEquals("_member_", identity1.getMemberRole()); - assertFalse(identity1.hasTenantMetadata()); - - CloudIdentity identity2 = con.getIdentityService("Test"); - assertNull(identity2); + Map<String, CloudIdentity> cloudIdentityMap = new HashMap<>(); + CloudIdentity cloudIdentity = createCloudIdentity(); + cloudIdentityMap.put(cloudIdentity.getId(), cloudIdentity); + field.set(testedObject, cloudIdentityMap); } - @Test(expected = MsoCloudIdentityNotFound.class) - public void testLoadWithWrongFile() throws MsoCloudIdentityNotFound { - createTestObject(cloudConfigInvalidJsonFilePath); + private CloudIdentity createCloudIdentity() { + CloudIdentity cloudIdentity = new CloudIdentity(); + cloudIdentity.setId("identityTestId"); + cloudIdentity.setMsoId("msoTestId"); + return cloudIdentity; } - @Test - public void testReloadWithWrongFile() { - CloudConfigFactory cloudConfigFactory = new CloudConfigFactory(); - try { - cloudConfigFactory.initializeCloudConfig(cloudConfigInvalidJsonFilePath, 1); - Assert.fail("MsoCloudIdentityNotFound was expected"); - } catch (MsoCloudIdentityNotFound e) { - - } - assertTrue("Should be an empty CloudConfig", cloudConfigFactory.getCloudConfig().getCloudSites().isEmpty()); - assertTrue("Should be an empty CloudConfig", - cloudConfigFactory.getCloudConfig().getIdentityServices().isEmpty()); - // Now reload the right config - cloudConfigFactory.changeMsoPropertiesFilePath(cloudConfigJsonFilePath); - cloudConfigFactory.reloadCloudConfig(); - assertTrue("Flag valid Config should be true now that the cloud_config is correct", - cloudConfigFactory.getCloudConfig().isValidCloudConfig()); + private CloudSite createCloudSite(String id, String clli) { + CloudSite cloudSite = new CloudSite(); + cloudSite.setId(id); + cloudSite.setClli(clli); + cloudSite.setAic_version("2.5"); + cloudSite.setIdentityService(createCloudIdentity()); + return cloudSite; } - } diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudSiteTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudSiteTest.java new file mode 100644 index 0000000000..4c5ceb238c --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/cloud/CloudSiteTest.java @@ -0,0 +1,67 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.cloud; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +public class CloudSiteTest { + + @Mock + CloudIdentity ci= new CloudIdentity(); + + @InjectMocks + CloudSite cs = new CloudSite(); + + +@Before +public void init(){ + MockitoAnnotations.initMocks(this); + } + @Test + public void testCloudSite() { + cs.setAic_version("aic_version"); + cs.setClli("clli"); + cs.setId("id"); + cs.setIdentityService(ci); + cs.setRegionId("regionId"); + assert(cs.getAic_version().equals("aic_version")); + assert(cs.getClli().equals("clli")); + assert(cs.getId().equals("id")); + assert(cs.getIdentityService().equals(ci)); + assert(cs.getRegionId().equals("regionId")); + } + @Test + public void testtoStringmethod(){ + assert(cs.toString()!=null); + } + @Test + public void testhashCodemethod(){ + assert(cs.hashCode()!=0); + } + @Test + public void testclone(){ + assert(cs.clone()!=null); + } +} diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/MsoTenantTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/MsoTenantTest.java new file mode 100644 index 0000000000..a1de54e231 --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/MsoTenantTest.java @@ -0,0 +1,42 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.openstack.beans; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.Test; + +public class MsoTenantTest { + MsoTenant ms = new MsoTenant(); + + @Test + public void test() { + Map<String, String> map = new HashMap<>(); + map.put("id","name"); + ms.setTenantId("tenantId"); + ms.setTenantName("tenantName"); + ms.setMetadata(map); + assert(ms.getMetadata().equals(map)); + assert(ms.getTenantId().equals("tenantId")); + assert(ms.getTenantName().equals("tenantName")); + } +} diff --git a/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkRollbackTest.java b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkRollbackTest.java new file mode 100644 index 0000000000..d70c01d0d3 --- /dev/null +++ b/adapters/mso-adapter-utils/src/test/java/org/openecomp/mso/openstack/beans/NetworkRollbackTest.java @@ -0,0 +1,69 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.openstack.beans; + +import static org.junit.Assert.*; +import java.util.ArrayList; +import java.util.List; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.openecomp.mso.entity.MsoRequest; + +public class NetworkRollbackTest { + @Mock + MsoRequest ms = new MsoRequest(); + + @InjectMocks + NetworkRollback nr = new NetworkRollback(); + + @Test + public void test() { + List<Integer> vlans = new ArrayList(); + vlans.add(1); + vlans.add(2); + nr.setCloudId("cloudId"); + nr.setModelCustomizationUuid("modelCustomizationUuid"); + nr.setNetworkId("networkId"); + nr.setNetworkName("networkName"); + nr.setNetworkStackId("networkStackId"); + nr.setNetworkType("networkType");; + nr.setNeutronNetworkId("neutronNetworkId"); + nr.setPhysicalNetwork("physicalNetwork"); + nr.setTenantId("tenantId"); + nr.setNetworkCreated(false); + nr.setVlans(vlans); + nr.setMsoRequest(ms); + assert(nr.getCloudId().equals("cloudId")); + assert(nr.getModelCustomizationUuid().equals("modelCustomizationUuid")); + assert(nr.getNetworkId().equals("networkId")); + assert(nr.getNetworkName().equals("networkName")); + assert(nr.getNetworkStackId().equals("networkStackId")); + assert(nr.getNeutronNetworkId().equals("neutronNetworkId")); + assert(nr.getPhysicalNetwork().equals("physicalNetwork")); + assert(nr.getNetworkType().equals("networkType")); + assert(nr.getTenantId().equals("tenantId")); + assert(nr.getMsoRequest().equals(ms)); + assertFalse(nr.getNetworkCreated()); + assert(nr.getVlans().equals(vlans)); + assert(nr.toString()!=null); + } +} diff --git a/adapters/mso-adapter-utils/src/test/resources/cloud_config.json b/adapters/mso-adapter-utils/src/test/resources/cloud_config.json index ff24633f32..ee3532fe15 100644 --- a/adapters/mso-adapter-utils/src/test/resources/cloud_config.json +++ b/adapters/mso-adapter-utils/src/test/resources/cloud_config.json @@ -44,8 +44,7 @@ "tenant_metadata": true, "identity_server_type": "KEYSTONE", "identity_authentication_type": "USERNAME_PASSWORD" - }, - "CS_service": {} + } }, "cloud_sites": @@ -77,14 +76,8 @@ "clli": "MTSNJA4LCP1", "aic_version": "2.5", "identity_service_id": "MTSNJA3DCP1" - }, - "CS": - { - "region_id": "clliRegion", - "clli": "CS_clli", - "aic_version": "2.5", - "identity_service_id": "CS_service" } + } } } diff --git a/adapters/mso-adapter-utils/src/test/resources/cloud_default_config.json b/adapters/mso-adapter-utils/src/test/resources/cloud_default_config.json deleted file mode 100644 index 35d18e9789..0000000000 --- a/adapters/mso-adapter-utils/src/test/resources/cloud_default_config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "cloud_config": { - "identity_services": { - "default_service": {} - }, - "cloud_sites": { - "default": { - "region_id": "defaultRegion", - "identity_service_id": "default_service" - } - } - } -}
\ No newline at end of file diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceErrorTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceErrorTest.java new file mode 100644 index 0000000000..df69b377ca --- /dev/null +++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceErrorTest.java @@ -0,0 +1,51 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.adapters.sdncrest; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.mso.adapters.sdncrest.SDNCErrorCommon; +import org.openecomp.mso.adapters.sdncrest.SDNCServiceError; + +public class SDNCServiceErrorTest { + + @Mock + SDNCErrorCommon sec; + + @InjectMocks + SDNCServiceError ssc; + + @Before + public void init(){ + MockitoAnnotations.initMocks(this); + } + + @Test + public void testSDNCServiceError() { + + ssc= new SDNCServiceError("id", "200", + "msg", "indicator"); + assert(ssc!=null); + } +} diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceRequestTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceRequestTest.java new file mode 100644 index 0000000000..c63f1b8f82 --- /dev/null +++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceRequestTest.java @@ -0,0 +1,79 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.adapters.sdncrest; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.mso.adapters.sdncrest.SDNCRequestCommon; +import org.openecomp.mso.adapters.sdncrest.ServiceInformation; +import org.openecomp.mso.adapters.sdncrest.RequestInformation; + +public class SDNCServiceRequestTest { + + @Mock + SDNCRequestCommon src; + + @Mock + ServiceInformation si; + + @Mock + RequestInformation ri; + + @InjectMocks + SDNCServiceRequest ssr; + + @Before + public void init(){ + MockitoAnnotations.initMocks(this); + } + + @Test + public void test() { + ssr= new SDNCServiceRequest("url", "timeout", + "sdncRequestId", "sdncService", "sdncOperation", + ri, + si, "sdncServiceDataType", + "sndcServiceData"); + + ssr.setSDNCService("sdncService"); + ssr.setSDNCServiceData("sndcServiceData"); + ssr.setSDNCServiceDataType("sdncServiceDataType"); + ssr.setBPTimeout("timeout"); + ssr.setBPNotificationUrl("url"); + ssr.setRequestInformation(ri); + ssr.setServiceInformation(si); + ssr.setSDNCOperation("sdncOperation"); + ssr.setSDNCRequestId("sdncRequestId"); + assert(ssr.getSDNCService().equals("sdncService")); + assert(ssr.getSDNCServiceData().equals("sndcServiceData")); + assert(ssr.getSDNCServiceDataType().equals("sdncServiceDataType")); + assert(ssr.getBPTimeout().equals("timeout")); + assert(ssr.getBPNotificationUrl().equals("url")); + assert(ssr.getRequestInformation().equals(ri)); + assert(ssr.getServiceInformation().equals(si)); + assert(ssr.getSDNCOperation().equals("sdncOperation")); + assert(ssr.getSDNCRequestId().equals("sdncRequestId")); + } + +} diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceResponseTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceResponseTest.java new file mode 100644 index 0000000000..9c4e98a02b --- /dev/null +++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/SDNCServiceResponseTest.java @@ -0,0 +1,58 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.adapters.sdncrest; + +import static org.junit.Assert.*; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.openecomp.mso.adapters.sdncrest.SDNCResponseCommon; + +public class SDNCServiceResponseTest { + + @Mock + SDNCResponseCommon src; + + @InjectMocks + SDNCServiceResponse ssr; + + @Before + public void init(){ + MockitoAnnotations.initMocks(this); + } + + @Test + public void test() { + ssr=new SDNCServiceResponse("sdncRequestId", "200", + "msg", "indicator"); + Map<String, String> mp = new HashMap<>(); + mp.put("name", "value"); + ssr.setParams(mp); + assert(ssr.getParams().equals(mp)); + assertNotNull(ssr); + } +} diff --git a/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/ServiceInformationTest.java b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/ServiceInformationTest.java new file mode 100644 index 0000000000..2b87bbf101 --- /dev/null +++ b/adapters/mso-adapters-rest-interface/src/test/java/org/openecomp/mso/adapters/sdncrest/ServiceInformationTest.java @@ -0,0 +1,42 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.adapters.sdncrest; + +import org.junit.Test; + +public class ServiceInformationTest { + + + + @Test + public void test() { + ServiceInformation si= new ServiceInformation("id","service","GlobalId","name"); + + si.setServiceInstanceId("id"); + si.setServiceType("service"); + si.setSubscriberGlobalId("GlobalId"); + si.setSubscriberName("name"); + assert(si.getServiceInstanceId().equals("id")); + assert(si.getServiceType().equals("service")); + assert(si.getSubscriberGlobalId().equals("GlobalId")); + assert(si.getSubscriberName().equals("name")); + } +} diff --git a/adapters/mso-sdnc-adapter/src/test/java/org/openecomp/mso/adapters/sdnc/impl/SDNCResponseTest.java b/adapters/mso-sdnc-adapter/src/test/java/org/openecomp/mso/adapters/sdnc/impl/SDNCResponseTest.java new file mode 100644 index 0000000000..f8867ae4f8 --- /dev/null +++ b/adapters/mso-sdnc-adapter/src/test/java/org/openecomp/mso/adapters/sdnc/impl/SDNCResponseTest.java @@ -0,0 +1,49 @@ +/* +* ============LICENSE_START======================================================= +* ONAP : SO +* ================================================================================ +* Copyright 2018 TechMahindra +*================================================================================= +* 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.mso.adapters.sdnc.impl; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class SDNCResponseTest { + + private SDNCResponse sdncresponse = new SDNCResponse(null, 0, null); + + @Test + public void testSDNCResponse() + { + sdncresponse.setReqId("reqId"); + sdncresponse.setRespCode(0); + sdncresponse.setRespMsg("respMsg"); + sdncresponse.setSdncRespXml("sdncRespXml"); + assertEquals(sdncresponse.getReqId(), "reqId"); + assertEquals(sdncresponse.getRespCode(), 0); + assertEquals(sdncresponse.getRespMsg(), "respMsg"); + assertEquals(sdncresponse.getSdncRespXml(),"sdncRespXml"); + } + + @Test + public void testtoString() + { + assert(sdncresponse.toString()!=null); + } +} +
\ No newline at end of file diff --git a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java index 30d42ae387..039c1604ba 100644 --- a/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java +++ b/adapters/mso-vfc-adapter/src/main/java/org/openecomp/mso/adapters/vfc/exceptions/ApplicationException.java @@ -20,7 +20,7 @@ package org.openecomp.mso.adapters.vfc.exceptions; -import javax.ws.rs.core.Response;; +import javax.ws.rs.core.Response; public class ApplicationException extends Exception { diff --git a/bpmn/MSOCommonBPMN/pom.xml b/bpmn/MSOCommonBPMN/pom.xml index 71626f52b3..e4e1fd60a6 100644 --- a/bpmn/MSOCommonBPMN/pom.xml +++ b/bpmn/MSOCommonBPMN/pom.xml @@ -302,6 +302,11 @@ <version>${spring.version}</version> </dependency> <dependency> + <groupId>org.openecomp.sdc.sdc-tosca</groupId> + <artifactId>sdc-tosca</artifactId> + <version>1.1.32</version> + </dependency> + <dependency> <groupId>com.github.tomakehurst</groupId> <artifactId>wiremock</artifactId> <version>1.56</version> diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java new file mode 100644 index 0000000000..78eb2f662d --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilder.java @@ -0,0 +1,131 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * 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.mso.bpmn.common.resource; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.jboss.resteasy.client.jaxrs.ResteasyClient; +import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; +import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget; +import org.openecomp.mso.logger.MsoLogger; +import org.openecomp.sdc.tosca.parser.api.ISdcCsarHelper; +import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException; +import org.openecomp.sdc.tosca.parser.impl.SdcToscaParserFactory; +import org.openecomp.sdc.toscaparser.api.NodeTemplate; +import org.openecomp.sdc.toscaparser.api.Property; +import org.openecomp.sdc.toscaparser.api.functions.GetInput; +import org.openecomp.sdc.toscaparser.api.parameters.Input; + +import javax.ws.rs.core.Response; +import java.io.File; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +public class ResourceRequestBuilder { + + public static String CUSTOMIZATION_UUID = "customizationUUID"; + public static String SERVICE_URL_TOSCA_CSAR = "http://localhost:8080/ecomp/mso/catalog/v3/serviceToscaCsar?serviceModelUuid="; + + private static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.RA); + + public static Map<String, Object> buildResouceRequest(String serviceUuid, + String resourceCustomizationUuid, + Map<String, Object> serviceInputs) throws SdcToscaParserException { + + Map<String, Object> resouceRequest = new HashMap<>(); + + String csarpath = null; + try { + csarpath = getCsarFromUuid(serviceUuid); + } catch (Exception e) { + LOGGER.debug("csar file is not available for service uuid:" + serviceUuid, e); + return resouceRequest; + } + + SdcToscaParserFactory toscaParser = SdcToscaParserFactory.getInstance(); + ISdcCsarHelper iSdcCsarHelper = toscaParser.getSdcCsarHelper(csarpath); + + List<Input> serInput = iSdcCsarHelper.getServiceInputs(); + Optional<NodeTemplate> nodeTemplateOpt = iSdcCsarHelper.getServiceNodeTemplates().stream() + .filter(e -> e.getMetaData().getValue(CUSTOMIZATION_UUID).equals(resourceCustomizationUuid)) + .findFirst(); + + if (nodeTemplateOpt.isPresent()) { + NodeTemplate nodeTemplate = nodeTemplateOpt.get(); + LinkedHashMap<String, Property> resourceProperties = nodeTemplate.getProperties(); + + for (String key: resourceProperties.keySet()) { + Property property = resourceProperties.get(key); + + Object value = getValue(property.getValue(), serviceInputs, serInput); + resouceRequest.put(key, value); + } + } + return resouceRequest; + } + + private static Object getValue(Object value, Map<String, Object> serviceInputs, + List<Input> servInputs) { + if (value instanceof Map) { + Map<String, Object> valueMap = new HashMap<>(); + + Map<String, Object> propertyMap = (Map<String, Object>) value; + + for (String key: propertyMap.keySet()) { + valueMap.put(key, getValue(propertyMap.get(key), serviceInputs, servInputs)); + } + return valueMap; // return if the value is nested hashmap + } else if (value instanceof GetInput) { + String inputName = ((GetInput) value).getInputName(); + + if (serviceInputs.get(inputName) != null) { + value = serviceInputs.get(inputName); + } else { + for (Input input: servInputs) { + if (input.getName().equals(inputName)) { + return input.getDefault(); // return default value + } + } + } + } + return value; // return property value + } + + private static String getCsarFromUuid(String uuid) throws Exception { + + ResteasyClient client = new ResteasyClientBuilder().build(); + ResteasyWebTarget target = client.target(SERVICE_URL_TOSCA_CSAR + uuid); + Response response = target.request().get(); + String value = response.readEntity(String.class); + + HashMap<String,String> map = new Gson().fromJson(value, new TypeToken<HashMap<String, String>>(){}.getType()); + + File csarFile = new File(System.getProperty("mso.config.path") + "ASDC/" + map.get("name")); + + if (!csarFile.exists()) { + throw new Exception("csar file does not exist."); + } + + return csarFile.getAbsolutePath(); + } +} diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java index 74b1c3f802..1436d83a94 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/RestClient.java @@ -157,14 +157,9 @@ public abstract class RestClient { } client.register(this.getMapper()); Optional<ClientResponseFilter> responseFilter = this.addResponseFilter(); - if (responseFilter.isPresent()) { - client.register(responseFilter.get()); - } - if (!path.isPresent()) { - webTarget = client.target(host.toString()); - } else { - webTarget = client.target(UriBuilder.fromUri(host + path.get().toString())); - } + responseFilter.ifPresent(clientResponseFilter -> client.register(clientResponseFilter)); + webTarget = path.<WebTarget>map(uri -> client.target(UriBuilder.fromUri(host + uri.toString()))) + .orElseGet(() -> client.target(host.toString())); this.accept = MediaType.APPLICATION_JSON; this.contentType = MediaType.APPLICATION_JSON; } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java index b5ab63ce35..01f6738947 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java @@ -36,7 +36,7 @@ public enum PolicyServiceType { private final String name; - private PolicyServiceType(String name) { + PolicyServiceType(String name) { this.name = name; } diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java new file mode 100644 index 0000000000..262c12e833 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/resource/ResourceRequestBuilderTest.java @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * 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.mso.bpmn.common.resource; + +import org.junit.Test; + +import java.util.HashMap; + +public class ResourceRequestBuilderTest { + + @Test + public void buildResouceRequestTest() throws Exception { + + ResourceRequestBuilder.buildResouceRequest("aa4535", + "a1074969-944f-4ddc-b687-9550b0c8cd57", new HashMap<>()); + } + +}
\ No newline at end of file diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java index 74f50ba438..9ead882b07 100644 --- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java +++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/mock/MockResource.java @@ -108,7 +108,7 @@ public class MockResource { @Produces("application/json") public Response start(@PathParam("portNumber") Integer portNumber) { if (portNumber == null) portNumber = defaultPort; - return startMockServer(portNumber.intValue()); + return startMockServer(portNumber); } diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java index a1719a90ef..98659d2a62 100644 --- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java +++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/PropertyConfigurationSetup.java @@ -217,7 +217,7 @@ public class PropertyConfigurationSetup { String newTimestamp = PropertyConfiguration.getInstance().getProperties(type) .get(PropertyConfiguration.TIMESTAMP_PROPERTY); - if (newTimestamp != oldTimestamp) { + if (!newTimestamp.equals(oldTimestamp)) { return; } diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java index 653f75cc3a..fbc312e750 100644 --- a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java +++ b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/InventoryType.java @@ -27,7 +27,7 @@ public enum InventoryType{ private String type;
- private InventoryType(String type){
+ InventoryType(String type){
this.type = type;
}
diff --git a/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy new file mode 100644 index 0000000000..44eaa349b6 --- /dev/null +++ b/bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateCustomE2EServiceInstance.groovy @@ -0,0 +1,269 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2018 Huawei Technologies Co., Ltd. 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.mso.bpmn.infrastructure.scripts; + +import static org.apache.commons.lang3.StringUtils.*; +import groovy.xml.XmlUtil +import groovy.json.* +import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor +import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil + +import org.openecomp.mso.bpmn.core.WorkflowException +import org.openecomp.mso.bpmn.core.json.JsonUtils +import org.openecomp.mso.rest.APIResponse + +import java.util.List; +import java.util.UUID; + +import org.camunda.bpm.engine.delegate.BpmnError +import org.camunda.bpm.engine.runtime.Execution +import org.apache.commons.lang3.* +import org.apache.commons.codec.binary.Base64; +import org.springframework.web.util.UriUtils + +/** + * This groovy class supports the <class>UpdateCustomE2EServiceInstance.bpmn</class> process. + * AlaCarte flow for 1702 ServiceInstance Update + * + */ +public class UpdateCustomE2EServiceInstance extends AbstractServiceTaskProcessor { + String Prefix="UPDSI_" + ExceptionUtil exceptionUtil = new ExceptionUtil() + JsonUtils jsonUtil = new JsonUtils() + + + public void preProcessRequest (Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + execution.setVariable("prefix",Prefix) + String msg = "" + utils.log("INFO", " *** preProcessRequest() *** ", isDebugEnabled) + + try { + + String siRequest = execution.getVariable("bpmnRequest") + utils.logAudit(siRequest) + + String requestId = execution.getVariable("mso-request-id") + execution.setVariable("msoRequestId", requestId) + utils.log("INFO", "Input Request:" + siRequest + " reqId:" + requestId, isDebugEnabled) + + String serviceInstanceId = execution.getVariable("serviceInstanceId") + if (isBlank(serviceInstanceId)) { + msg = "Input serviceInstanceId' is null" + exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg) + } + + //subscriberInfo + String globalSubscriberId = jsonUtil.getJsonValue(siRequest, "requestDetails.subscriberInfo.globalSubscriberId") + if (isBlank(globalSubscriberId)) { + msg = "Input globalSubscriberId' is null" + exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg) + } else { + execution.setVariable("globalSubscriberId", globalSubscriberId) + } + + //requestInfo + execution.setVariable("source", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.source")) + execution.setVariable("serviceInstanceName", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.instanceName")) + execution.setVariable("disableRollback", jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.suppressRollback")) + String productFamilyId = jsonUtil.getJsonValue(siRequest, "requestDetails.requestInfo.productFamilyId") + if (isBlank(productFamilyId)) + { + msg = "Input productFamilyId is null" + utils.log("INFO", msg, isDebugEnabled) + //exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg) + } else { + execution.setVariable("productFamilyId", productFamilyId) + } + String userParams = jsonUtil.getJsonValue(siRequest, "requestDetails.requestParameters.userParams") + utils.log("INFO", "userParams:" + userParams, isDebugEnabled) + List<String> paramList = jsonUtil.StringArrayToList(execution, userParams) + String uuiRequest = jsonUtil.getJsonValue(paramList.get(0), "UUIRequest") + //modelInfo + if (isBlank(uuiRequest)) { + msg = "Input uuiRequest is null" + utils.log("INFO", msg, isDebugEnabled) + exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg) + } else + { + execution.setVariable("uuiRequest", uuiRequest) + } + + utils.log("INFO", "uuiRequest:\n" + uuiRequest, isDebugEnabled) + + //requestParameters + String serviceType = jsonUtil.getJsonValue(uuiRequest, "service.parameters.serviceType") + if (isBlank(serviceType)) { + msg = "Input serviceType is null" + utils.log("INFO", msg, isDebugEnabled) + exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg) + } else { + execution.setVariable("serviceType", serviceType) + } + + //operationId + String operationId = jsonUtil.getJsonValue(siRequest, "operationId") + if (isBlank(operationId)) { + operationId = UUID.randomUUID().toString() + } + execution.setVariable("operationId", operationId) + execution.setVariable("operationType", "UPDATE") + + execution.setVariable("URN_mso_adapters_openecomp_db_endpoint","http://mso.mso.testlab.openecomp.org:8080/dbadapters/RequestsDbAdapter") + + } catch (BpmnError e) { + throw e; + } catch (Exception ex){ + msg = "Exception in preProcessRequest " + ex.getMessage() + utils.log("INFO", msg, isDebugEnabled) + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg) + } + utils.log("INFO"," ***** Exit preProcessRequest *****", isDebugEnabled) + } + + public void sendSyncResponse (Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO", " *** sendSyncResponse *** ", isDebugEnabled) + + try { + String operationId = execution.getVariable("operationId") + String serviceInstanceId = execution.getVariable("serviceInstanceId") + // RESTResponse for API Handler (APIH) Reply Task + String updateServiceRestRequest = """{"service":{"serviceId":"${serviceInstanceId}","operationId":"${operationId}"}}""".trim() + utils.log("INFO", " sendSyncResponse to APIH:" + "\n" + updateServiceRestRequest, isDebugEnabled) + sendWorkflowResponse(execution, 202, updateServiceRestRequest) + execution.setVariable("sentSyncResponse", true) + + } catch (Exception ex) { + String msg = "Exceptuion in sendSyncResponse:" + ex.getMessage() + utils.log("INFO", msg, isDebugEnabled) + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg) + } + utils.log("INFO"," ***** Exit sendSyncResopnse *****", isDebugEnabled) + } + + + public void sendSyncError (Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO", " *** sendSyncError *** ", isDebugEnabled) + + try { + String errorMessage = "" + if (execution.getVariable("WorkflowException") instanceof WorkflowException) { + WorkflowException wfe = execution.getVariable("WorkflowException") + errorMessage = wfe.getErrorMessage() + } else { + errorMessage = "Sending Sync Error." + } + + String buildworkflowException = + """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
+ <aetgt:ErrorMessage>${errorMessage}</aetgt:ErrorMessage> + <aetgt:ErrorCode>7000</aetgt:ErrorCode> + </aetgt:WorkflowException>""" + + utils.logAudit(buildworkflowException) + sendWorkflowResponse(execution, 500, buildworkflowException) + + } catch (Exception ex) { + utils.log("INFO", " Sending Sync Error Activity Failed. " + "\n" + ex.getMessage(), isDebugEnabled) + } + + } + + public void prepareCompletionRequest (Execution execution) { + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO", " *** prepareCompletion *** ", isDebugEnabled) + + try { + String requestId = execution.getVariable("msoRequestId") + String serviceInstanceId = execution.getVariable("serviceInstanceId") + String source = execution.getVariable("source") + + String msoCompletionRequest = + """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+ xmlns:ns="http://org.openecomp/mso/request/types/v1">
+ <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+ <request-id>${requestId}</request-id> + <action>UPDATE</action> + <source>${source}</source> + </request-info> + <status-message>Service Instance was updated successfully.</status-message> + <serviceInstanceId>${serviceInstanceId}</serviceInstanceId> + <mso-bpel-name>UpdateGenericALaCarteServiceInstance</mso-bpel-name> + </aetgt:MsoCompletionRequest>""" + + // Format Response + String xmlMsoCompletionRequest = utils.formatXml(msoCompletionRequest) + + execution.setVariable("completionRequest", xmlMsoCompletionRequest) + utils.log("INFO", " Overall SUCCESS Response going to CompleteMsoProcess - " + "\n" + xmlMsoCompletionRequest, isDebugEnabled) + + } catch (Exception ex) { + String msg = " Exception in prepareCompletion:" + ex.getMessage() + utils.log("INFO", msg, isDebugEnabled) + exceptionUtil.buildAndThrowWorkflowException(execution, 7000, msg) + } + utils.log("INFO", "*** Exit prepareCompletionRequest ***", isDebugEnabled) + } + + public void prepareFalloutRequest(Execution execution){ + def isDebugEnabled=execution.getVariable("isDebugLogEnabled") + utils.log("INFO", " *** prepareFalloutRequest *** ", isDebugEnabled) + + try { + WorkflowException wfex = execution.getVariable("WorkflowException") + utils.log("INFO", " Input Workflow Exception: " + wfex.toString(), isDebugEnabled) + String requestId = execution.getVariable("msoRequestId") + String source = execution.getVariable("source") + String requestInfo = + """<request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+ <request-id>${requestId}</request-id> + <action>UPDATE</action> + <source>${source}</source> + </request-info>""" + + String falloutRequest = exceptionUtil.processMainflowsBPMNException(execution, requestInfo) + execution.setVariable("falloutRequest", falloutRequest) + } catch (Exception ex) { + utils.log("INFO", "Exception prepareFalloutRequest:" + ex.getMessage(), isDebugEnabled) + String errorException = " Bpmn error encountered in UpdateGenericALaCarteServiceInstance flow. FalloutHandlerRequest, buildErrorResponse() - " + ex.getMessage() + String requestId = execution.getVariable("msoRequestId") + String falloutRequest = + """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+ xmlns:ns="http://org.openecomp/mso/request/types/v1"
+ xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+ <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+ <request-id>${requestId}</request-id> + <action>UPDATE</action> + <source>UUI</source> + </request-info> + <aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
+ <aetgt:ErrorMessage>${errorException}</aetgt:ErrorMessage> + <aetgt:ErrorCode>7000</aetgt:ErrorCode> + </aetgt:WorkflowException> + </aetgt:FalloutHandlerRequest>""" + + execution.setVariable("falloutRequest", falloutRequest) + } + utils.log("INFO", "*** Exit prepareFalloutRequest ***", isDebugEnabled) + } +} diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn new file mode 100644 index 0000000000..5f3caf59f7 --- /dev/null +++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateSDNCNetworkResource.bpmn @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0"> + <bpmn:process id="CreateSDNCNetworkResource" name="CreateSDNCNetworkResource" isExecutable="true"> + <bpmn:startEvent id="createNS_StartEvent" name="createNS_StartEvent"> + <bpmn:outgoing>SequenceFlow_1qo2pln</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:sequenceFlow id="SequenceFlow_1qo2pln" sourceRef="createNS_StartEvent" targetRef="PreprocessIncomingRequest_task" /> + <bpmn:sequenceFlow id="SequenceFlow_0khtova" sourceRef="PreprocessIncomingRequest_task" targetRef="CallActivity_1600xlj" /> + <bpmn:scriptTask id="PreprocessIncomingRequest_task" name="Preprocess Incoming Request" scriptFormat="groovy"> + <bpmn:incoming>SequenceFlow_1qo2pln</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0khtova</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.* +def dcsi = new CreateSDNCNetworkResource() +dcsi.preProcessRequest(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:endEvent id="EndEvent_1x6k78c" name="create SDNC call end"> + <bpmn:incoming>SequenceFlow_0ow44q0</bpmn:incoming> + </bpmn:endEvent> + <bpmn:callActivity id="CallActivity_1600xlj" name="Call SDNC RSRC Create Adapter V1 " calledElement="sdncAdapter"> + <bpmn:extensionElements> + <camunda:in source="CRENWKI_activateSDNCRequest" target="sdncAdapterWorkflowRequest" /> + <camunda:in source="mso-request-id" target="mso-request-id" /> + <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" /> + <camunda:out source="sdncAdapterResponse" target="CRENWKI_activateSDNCResponse" /> + <camunda:out source="SDNCA_ResponseCode" target="CRENWKI_sdncActivateReturnCode" /> + <camunda:out source="SDNCA_SuccessIndicator" target="SDNCA_SuccessIndicator" /> + <camunda:out source="WorkflowException" target="WorkflowException" /> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0khtova</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1xk5xed</bpmn:outgoing> + </bpmn:callActivity> + <bpmn:sequenceFlow id="SequenceFlow_1xk5xed" sourceRef="CallActivity_1600xlj" targetRef="Task_023hred" /> + <bpmn:sequenceFlow id="SequenceFlow_0ow44q0" sourceRef="Task_023hred" targetRef="EndEvent_1x6k78c" /> + <bpmn:scriptTask id="Task_023hred" name="post SDNC create call"> + <bpmn:incoming>SequenceFlow_1xk5xed</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0ow44q0</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.* +def dcsi = new CreateSDNCNetworkResource() +dcsi.postCreateSDNC(execution)]]></bpmn:script> + </bpmn:scriptTask> + </bpmn:process> + <bpmndi:BPMNDiagram id="BPMNDiagram_1"> + <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="CreateSDNCNetworkResource"> + <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="createNS_StartEvent"> + <dc:Bounds x="175" y="111" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="152" y="147" width="83" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1qo2pln_di" bpmnElement="SequenceFlow_1qo2pln"> + <di:waypoint xsi:type="dc:Point" x="211" y="129" /> + <di:waypoint xsi:type="dc:Point" x="251" y="129" /> + <di:waypoint xsi:type="dc:Point" x="251" y="129" /> + <di:waypoint xsi:type="dc:Point" x="293" y="129" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="266" y="123" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0khtova_di" bpmnElement="SequenceFlow_0khtova"> + <di:waypoint xsi:type="dc:Point" x="393" y="129" /> + <di:waypoint xsi:type="dc:Point" x="544" y="129" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="423.5" y="108" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ScriptTask_03j6ogo_di" bpmnElement="PreprocessIncomingRequest_task"> + <dc:Bounds x="293" y="89" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_15pcuuc_di" bpmnElement="EndEvent_1x6k78c"> + <dc:Bounds x="951" y="111" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="912" y="153" width="85" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="CallActivity_1600xlj_di" bpmnElement="CallActivity_1600xlj"> + <dc:Bounds x="544" y="89" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1xk5xed_di" bpmnElement="SequenceFlow_1xk5xed"> + <di:waypoint xsi:type="dc:Point" x="644" y="129" /> + <di:waypoint xsi:type="dc:Point" x="800" y="129" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="677" y="108" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0ow44q0_di" bpmnElement="SequenceFlow_0ow44q0"> + <di:waypoint xsi:type="dc:Point" x="900" y="129" /> + <di:waypoint xsi:type="dc:Point" x="951" y="129" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="880.5" y="108" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ScriptTask_0gyej62_di" bpmnElement="Task_023hred"> + <dc:Bounds x="800" y="89" width="100" height="80" /> + </bpmndi:BPMNShape> + </bpmndi:BPMNPlane> + </bpmndi:BPMNDiagram> +</bpmn:definitions> diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn index 67b0f968fa..29dbca4e55 100644 --- a/bpmn/MSOInfrastructureBPMN/src/main/resources/subprocess/DoCreateVFCNetworkServiceInstance.bpmn +++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/CreateVFCNSResource.bpmn @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.10.0"> - <bpmn:process id="DoCreateVFCNetworkServiceInstance" name="DoCreateVFCNetworkServiceInstance" isExecutable="true"> + <bpmn:process id="CreateVFCNSResource" name="CreateVFCNSResource" isExecutable="true"> <bpmn:startEvent id="createNS_StartEvent" name="createNS_StartEvent"> <bpmn:outgoing>SequenceFlow_1qo2pln</bpmn:outgoing> </bpmn:startEvent> @@ -258,4 +258,4 @@ dcsi.timeDelay(execution)]]></bpmn:script> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> -</bpmn:definitions> +</bpmn:definitions>
\ No newline at end of file diff --git a/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn new file mode 100644 index 0000000000..e7a88be5b8 --- /dev/null +++ b/bpmn/MSOInfrastructureBPMN/src/main/resources/process/UpdateCustomE2EServiceInstance.bpmn @@ -0,0 +1,337 @@ +<?xml version="1.0" encoding="UTF-8"?> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3"> + <bpmn:process id="UpdateCustomE2EServiceInstance" name="UpdateCustomE2EServiceInstance" isExecutable="true"> + <bpmn:startEvent id="StartEvent_00qj6ro" name="Update SI Start Flow"> + <bpmn:outgoing>SequenceFlow_0s2spoq</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:subProcess id="SubProcess_0ka59nc" name="Sub-process for UnexpectedErrors" triggeredByEvent="true"> + <bpmn:scriptTask id="ScriptTask_0u3lw39" name="Handle Unexpected Error" scriptFormat="groovy"> + <bpmn:incoming>SequenceFlow_1dsbjjb</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1yay321</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.common.scripts.*
+ExceptionUtil ex = new ExceptionUtil()
+ex.processJavaException(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:startEvent id="StartEvent_0v1ffn4"> + <bpmn:outgoing>SequenceFlow_1dsbjjb</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_0eznq6x"> + <bpmn:incoming>SequenceFlow_1yay321</bpmn:incoming> + </bpmn:endEvent> + <bpmn:sequenceFlow id="SequenceFlow_1dsbjjb" name="" sourceRef="StartEvent_0v1ffn4" targetRef="ScriptTask_0u3lw39" /> + <bpmn:sequenceFlow id="SequenceFlow_1yay321" name="" sourceRef="ScriptTask_0u3lw39" targetRef="EndEvent_0eznq6x" /> + </bpmn:subProcess> + <bpmn:callActivity id="DoUpdateE2EServiceInstance" name="Call DoUpdateE2EServiceInstance " calledElement="DoUpdateE2EServiceInstance"> + <bpmn:extensionElements> + <camunda:out source="WorkflowException" target="WorkflowException" /> + <camunda:in source="msoRequestId" target="msoRequestId" /> + <camunda:out source="rollbackData" target="rollbackData" /> + <camunda:in source="serviceInstanceId" target="serviceInstanceId" /> + <camunda:in source="serviceInstanceName" target="serviceInstanceName" /> + <camunda:in source="productFamilyId" target="productFamilyId" /> + <camunda:in source="disableRollback" target="disableRollback" /> + <camunda:in source="uuiRequest" target="uuiRequest" /> + <camunda:out source="rolledBack" target="rolledBack" /> + <camunda:out source="serviceInstanceName" target="serviceInstanceName" /> + <camunda:in source="failIfExists" target="failIfExists" /> + <camunda:in source="globalSubscriberId" target="globalSubscriberId" /> + <camunda:in source="serviceType" target="serviceType" /> + <camunda:in source="initialStatus" target="initialStatus" /> + <camunda:in source="operationId" target="operationId" /> + <camunda:in source="operationType" target="operationType" /> + <camunda:in source="URN_mso_adapters_openecomp_db_endpoint" target="URN_mso_adapters_openecomp_db_endpoint" /> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_19eilro</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0klbpxx</bpmn:outgoing> + </bpmn:callActivity> + <bpmn:endEvent id="EndEvent_0bpd6c0" name="End"> + <bpmn:incoming>SequenceFlow_0yayvrf</bpmn:incoming> + </bpmn:endEvent> + <bpmn:scriptTask id="ScriptTask_1s09c7d" name="Pre Process Incoming Request" scriptFormat="groovy"> + <bpmn:incoming>SequenceFlow_0s2spoq</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0z4faf9</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi= new UpdateCustomE2EServiceInstance()
+csi.preProcessRequest(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:scriptTask id="ScriptTask_0ttvn8r" name="Prepare Completion Request" scriptFormat="groovy"> + <bpmn:incoming>SequenceFlow_14zu6wr</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0je30si</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
+csi.prepareCompletionRequest(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:callActivity id="CallActivity_02fyxz0" name="Call CompleteMsoProcess" calledElement="CompleteMsoProcess"> + <bpmn:extensionElements> + <camunda:in source="completionRequest" target="CompleteMsoProcessRequest" /> + <camunda:in source="mso-request-id" target="mso-request-id" /> + <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" /> + <camunda:out source="CMSO_ResponseCode" target="CMSO_ResponseCode" /> + <camunda:out source="CompleteMsoProcessResponse" target="CompleteMsoProcessResponse" /> + <camunda:out source="CMSO_ErrorResponse" target="CMSO_ErrorResponse" /> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0je30si</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0yayvrf</bpmn:outgoing> + </bpmn:callActivity> + <bpmn:subProcess id="SubProcess_0vaws86" name="Sub-process for FalloutHandler and Rollback" triggeredByEvent="true"> + <bpmn:startEvent id="StartEvent_0dug28e"> + <bpmn:outgoing>SequenceFlow_0e1r62n</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_03wysuk"> + <bpmn:incoming>SequenceFlow_1ysapam</bpmn:incoming> + </bpmn:endEvent> + <bpmn:scriptTask id="ScriptTask_0u8o9p2" name="Prepare Fallout Request" scriptFormat="groovy"> + <bpmn:incoming>SequenceFlow_0n9pexp</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_01umodj</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
+csi.prepareFalloutRequest(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:callActivity id="CallActivity_1ang7q8" name="Call FalloutHandler" calledElement="FalloutHandler"> + <bpmn:extensionElements> + <camunda:in source="falloutRequest" target="FalloutHandlerRequest" /> + <camunda:in source="mso-request-id" target="mso-request-id" /> + <camunda:in source="mso-service-instance-id" target="mso-service-instance-id" /> + <camunda:out source="FH_ResponseCode" target="FH_ResponseCode" /> + <camunda:out source="FalloutHandlerResponse" target="FalloutHandlerResponse" /> + <camunda:out source="FH_ErrorResponse" target="FH_ErrorResponse" /> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_01umodj</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1ysapam</bpmn:outgoing> + </bpmn:callActivity> + <bpmn:scriptTask id="ScriptTask_1rn6nqi" name="Send Error Response"> + <bpmn:incoming>SequenceFlow_0e1r62n</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0n9pexp</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
+csi.sendSyncError(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:sequenceFlow id="SequenceFlow_0e1r62n" sourceRef="StartEvent_0dug28e" targetRef="ScriptTask_1rn6nqi" /> + <bpmn:sequenceFlow id="SequenceFlow_1ysapam" sourceRef="CallActivity_1ang7q8" targetRef="EndEvent_03wysuk" /> + <bpmn:sequenceFlow id="SequenceFlow_0n9pexp" sourceRef="ScriptTask_1rn6nqi" targetRef="ScriptTask_0u8o9p2" /> + <bpmn:sequenceFlow id="SequenceFlow_01umodj" sourceRef="ScriptTask_0u8o9p2" targetRef="CallActivity_1ang7q8" /> + </bpmn:subProcess> + <bpmn:scriptTask id="ScriptTask_0xupxj9" name="Send Sync Ack Response" scriptFormat="groovy"> + <bpmn:incoming>SequenceFlow_0z4faf9</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_19eilro</bpmn:outgoing> + <bpmn:script><![CDATA[import org.openecomp.mso.bpmn.infrastructure.scripts.*
+def csi = new UpdateCustomE2EServiceInstance()
+csi.sendSyncResponse(execution)]]></bpmn:script> + </bpmn:scriptTask> + <bpmn:exclusiveGateway id="ExclusiveGateway_0aqn64l" name="Success?"> + <bpmn:incoming>SequenceFlow_0klbpxx</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_14zu6wr</bpmn:outgoing> + <bpmn:outgoing>SequenceFlow_1fueo69</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:endEvent id="EndEvent_07uk5iy"> + <bpmn:incoming>SequenceFlow_1fueo69</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0nbdy47" /> + </bpmn:endEvent> + <bpmn:sequenceFlow id="SequenceFlow_0s2spoq" sourceRef="StartEvent_00qj6ro" targetRef="ScriptTask_1s09c7d" /> + <bpmn:sequenceFlow id="SequenceFlow_19eilro" sourceRef="ScriptTask_0xupxj9" targetRef="DoUpdateE2EServiceInstance" /> + <bpmn:sequenceFlow id="SequenceFlow_0klbpxx" sourceRef="DoUpdateE2EServiceInstance" targetRef="ExclusiveGateway_0aqn64l" /> + <bpmn:sequenceFlow id="SequenceFlow_0yayvrf" sourceRef="CallActivity_02fyxz0" targetRef="EndEvent_0bpd6c0" /> + <bpmn:sequenceFlow id="SequenceFlow_0z4faf9" sourceRef="ScriptTask_1s09c7d" targetRef="ScriptTask_0xupxj9" /> + <bpmn:sequenceFlow id="SequenceFlow_14zu6wr" name="yes" sourceRef="ExclusiveGateway_0aqn64l" targetRef="ScriptTask_0ttvn8r"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("WorkflowException") == null}]]></bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="SequenceFlow_0je30si" sourceRef="ScriptTask_0ttvn8r" targetRef="CallActivity_02fyxz0" /> + <bpmn:sequenceFlow id="SequenceFlow_1fueo69" name="no" sourceRef="ExclusiveGateway_0aqn64l" targetRef="EndEvent_07uk5iy"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[#{execution.getVariable("WorkflowException") != null}]]></bpmn:conditionExpression> + </bpmn:sequenceFlow> + </bpmn:process> + <bpmn:error id="Error_0nbdy47" name="MSOWorkflowException" errorCode="MSOWorkflowException" /> + <bpmndi:BPMNDiagram id="BPMNDiagram_1"> + <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="UpdateCustomE2EServiceInstance"> + <bpmndi:BPMNShape id="StartEvent_00qj6ro_di" bpmnElement="StartEvent_00qj6ro"> + <dc:Bounds x="-6" y="180" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="-24" y="221" width="73" height="24" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_0ka59nc_di" bpmnElement="SubProcess_0ka59nc" isExpanded="true"> + <dc:Bounds x="463" y="632" width="394" height="188" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="CallActivity_0rhljy8_di" bpmnElement="DoUpdateE2EServiceInstance"> + <dc:Bounds x="717" y="158" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0bpd6c0_di" bpmnElement="EndEvent_0bpd6c0"> + <dc:Bounds x="1258" y="286" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1268" y="322" width="22" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ScriptTask_1s09c7d_di" bpmnElement="ScriptTask_1s09c7d"> + <dc:Bounds x="214" y="158" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ScriptTask_0ttvn8r_di" bpmnElement="ScriptTask_0ttvn8r"> + <dc:Bounds x="1038" y="158" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="CallActivity_02fyxz0_di" bpmnElement="CallActivity_02fyxz0"> + <dc:Bounds x="1226" y="158" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_0vaws86_di" bpmnElement="SubProcess_0vaws86" isExpanded="true"> + <dc:Bounds x="348" y="370" width="679" height="194" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ScriptTask_0xupxj9_di" bpmnElement="ScriptTask_0xupxj9"> + <dc:Bounds x="459" y="158" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ExclusiveGateway_0aqn64l_di" bpmnElement="ExclusiveGateway_0aqn64l" isMarkerVisible="true"> + <dc:Bounds x="903" y="173" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="903" y="145" width="50" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_07uk5iy_di" bpmnElement="EndEvent_07uk5iy"> + <dc:Bounds x="910" y="286" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="883" y="322" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0s2spoq_di" bpmnElement="SequenceFlow_0s2spoq"> + <di:waypoint xsi:type="dc:Point" x="30" y="198" /> + <di:waypoint xsi:type="dc:Point" x="214" y="198" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="77" y="177" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_19eilro_di" bpmnElement="SequenceFlow_19eilro"> + <di:waypoint xsi:type="dc:Point" x="559" y="198" /> + <di:waypoint xsi:type="dc:Point" x="717" y="198" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="593" y="177" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0klbpxx_di" bpmnElement="SequenceFlow_0klbpxx"> + <di:waypoint xsi:type="dc:Point" x="817" y="198" /> + <di:waypoint xsi:type="dc:Point" x="903" y="198" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="815" y="177" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0yayvrf_di" bpmnElement="SequenceFlow_0yayvrf"> + <di:waypoint xsi:type="dc:Point" x="1276" y="238" /> + <di:waypoint xsi:type="dc:Point" x="1276" y="286" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1246" y="262" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0z4faf9_di" bpmnElement="SequenceFlow_0z4faf9"> + <di:waypoint xsi:type="dc:Point" x="314" y="198" /> + <di:waypoint xsi:type="dc:Point" x="459" y="198" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="341.5" y="177" width="90" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_14zu6wr_di" bpmnElement="SequenceFlow_14zu6wr"> + <di:waypoint xsi:type="dc:Point" x="953" y="198" /> + <di:waypoint xsi:type="dc:Point" x="990" y="198" /> + <di:waypoint xsi:type="dc:Point" x="990" y="198" /> + <di:waypoint xsi:type="dc:Point" x="1038" y="198" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="987" y="195" width="20" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0je30si_di" bpmnElement="SequenceFlow_0je30si"> + <di:waypoint xsi:type="dc:Point" x="1138" y="198" /> + <di:waypoint xsi:type="dc:Point" x="1226" y="198" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="1137" y="183" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1fueo69_di" bpmnElement="SequenceFlow_1fueo69"> + <di:waypoint xsi:type="dc:Point" x="928" y="223" /> + <di:waypoint xsi:type="dc:Point" x="928" y="250" /> + <di:waypoint xsi:type="dc:Point" x="928" y="250" /> + <di:waypoint xsi:type="dc:Point" x="928" y="286" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="901" y="228" width="15" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ScriptTask_0u3lw39_di" bpmnElement="ScriptTask_0u3lw39"> + <dc:Bounds x="611" y="687" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="StartEvent_0v1ffn4_di" bpmnElement="StartEvent_0v1ffn4"> + <dc:Bounds x="496" y="709" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="469" y="750" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0eznq6x_di" bpmnElement="EndEvent_0eznq6x"> + <dc:Bounds x="772" y="709" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="745" y="750" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="StartEvent_0dug28e_di" bpmnElement="StartEvent_0dug28e"> + <dc:Bounds x="363" y="456" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="336" y="497" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_03wysuk_di" bpmnElement="EndEvent_03wysuk"> + <dc:Bounds x="942" y="456" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="915" y="497" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ScriptTask_0u8o9p2_di" bpmnElement="ScriptTask_0u8o9p2"> + <dc:Bounds x="621" y="434" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="CallActivity_1ang7q8_di" bpmnElement="CallActivity_1ang7q8"> + <dc:Bounds x="798" y="434" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ScriptTask_1rn6nqi_di" bpmnElement="ScriptTask_1rn6nqi"> + <dc:Bounds x="443" y="434" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1dsbjjb_di" bpmnElement="SequenceFlow_1dsbjjb"> + <di:waypoint xsi:type="dc:Point" x="532" y="727" /> + <di:waypoint xsi:type="dc:Point" x="611" y="727" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="529.5" y="727" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1yay321_di" bpmnElement="SequenceFlow_1yay321"> + <di:waypoint xsi:type="dc:Point" x="711" y="727" /> + <di:waypoint xsi:type="dc:Point" x="772" y="727" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="701.5" y="727" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0e1r62n_di" bpmnElement="SequenceFlow_0e1r62n"> + <di:waypoint xsi:type="dc:Point" x="399" y="474" /> + <di:waypoint xsi:type="dc:Point" x="421" y="474" /> + <di:waypoint xsi:type="dc:Point" x="421" y="474" /> + <di:waypoint xsi:type="dc:Point" x="442" y="474" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="391" y="474" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1ysapam_di" bpmnElement="SequenceFlow_1ysapam"> + <di:waypoint xsi:type="dc:Point" x="898" y="474" /> + <di:waypoint xsi:type="dc:Point" x="942" y="474" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="875" y="459" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0n9pexp_di" bpmnElement="SequenceFlow_0n9pexp"> + <di:waypoint xsi:type="dc:Point" x="543" y="474" /> + <di:waypoint xsi:type="dc:Point" x="570" y="474" /> + <di:waypoint xsi:type="dc:Point" x="570" y="474" /> + <di:waypoint xsi:type="dc:Point" x="621" y="474" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="540" y="474" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_01umodj_di" bpmnElement="SequenceFlow_01umodj"> + <di:waypoint xsi:type="dc:Point" x="721" y="474" /> + <di:waypoint xsi:type="dc:Point" x="798" y="474" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="715.5" y="459" width="0" height="12" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + </bpmndi:BPMNPlane> + </bpmndi:BPMNDiagram> +</bpmn:definitions> diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java b/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java index b8c4aed8fa..6588995308 100644 --- a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java +++ b/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java @@ -98,11 +98,11 @@ public class MsoLogger { public enum Catalog { APIH, BPEL, RA, ASDC, GENERAL - }; + } public enum StatusCode { COMPLETE, ERROR - }; + } public enum ResponseCode { Suc(0), PermissionError(100), DataError(300), DataNotFound(301), BadRequest(302), SchemaError( @@ -115,10 +115,10 @@ public class MsoLogger { return this.value; } - private ResponseCode(int value) { + ResponseCode(int value) { this.value = value; } - }; + } public enum ErrorCode { PermissionError(100), AvailabilityError(200), DataError(300), SchemaError(400), BusinessProcesssError( @@ -130,10 +130,10 @@ public class MsoLogger { return this.value; } - private ErrorCode(int value) { + ErrorCode(int value) { this.value = value; } - }; + } private EELFLogger logger, auditLogger, metricsLogger; private static final String CONFIG_FILE = System.getProperty("jboss.home.dir") + "/mso-config/uuid/uuid_" diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java index 488bb354ee..b89a5d4791 100644 --- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java +++ b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java @@ -23,8 +23,8 @@ package org.openecomp.mso.properties; public class MsoPropertiesParameters { - protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP}; - + protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP} + protected MsoPropertiesType msoPropertiesType; protected int refreshCounter; diff --git a/common/src/main/resources/ASDC.properties b/common/src/main/resources/ASDC.properties index 4f3864dac2..5f4f0baa6c 100644 --- a/common/src/main/resources/ASDC.properties +++ b/common/src/main/resources/ASDC.properties @@ -51,7 +51,7 @@ ASDC_GENERAL_WARNING=\ MSO-ASDC-5301W|\ WARNING: {0}|\ Please check other logs for more detailed info|\ - General warning + General warning ASDC_AUDIT_EXEC=\ MSO-ASDC-5302I|\ Executing method: {0}. {1}|\ @@ -61,77 +61,77 @@ ASDC_GENERAL_METRICS=\ MSO-ASDC-5305I|\ Executed method: {0}. {1}|\ No resolution needed|\ - Generate information for Metric events + Generate information for Metric events ASDC_CREATE_SERVICE=\ MSO-ASDC-5306I|\ Creating new VNF Resource for service {0} with id {1} and version {2}|\ No resolution needed|\ - Method triggered to create new VNF Resource + Method triggered to create new VNF Resource ASDC_CREATE_ARTIFACT=\ MSO-ASDC-5307I|\ Installing new {0} for service {1} with id {2} and version {3}|\ No resolution needed|\ - Method triggered to create new VNF Resource + Method triggered to create new VNF Resource ASDC_ARTIFACT_ALREADY_DEPLOYED=\ MSO-ASDC-5308W|\ Constraint violation caught, artifact is already deployed {0} and version {1}|\ No resolution needed|\ - Artifact is already deployed + Artifact is already deployed ASDC_ARTIFACT_INSTALL_EXC=\ MSO-ASDC-5309E|\ Exception caught during installation of the {0}. Transaction rollback.|\ Please check other logs for more detailed info|\ - Exception caught during installation of the artifact + Exception caught during installation of the artifact ASDC_CHECK_HEAT_TEMPLATE=\ MSO-ASDC-5310I|\ Start to verify whether {0} with name {1} and version {2} is already deployed|\ No resolution needed|\ - Check artifact + Check artifact ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL=\ MSO-ASDC-5311I|\ ResourceInstanceName:{0} (ResourceUUID:{1}) is already deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\ No resolution needed|\ - Resource is already deployed + Resource is already deployed ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL=\ MSO-ASDC-5312I|\ ResourceInstanceName:{0} (ResourceUUID:{1}) is not yet deployed for this Service:{2}/{3}(ServiceUUID:{4}) (ResourceName: {5})|\ No resolution needed|\ - Resource is not yet deployed + Resource is not yet deployed ASDC_INIT_ASDC_CLIENT_EXC=\ MSO-ASDC-5314W|\ ASDControllerException caught during the Init/closing of ASDC Client with address {0} and environment {1}|\ Please check other logs for more detailed info|\ - ASDControllerException caught during the Init/closing of ASDC Client + ASDControllerException caught during the Init/closing of ASDC Client ASDC_LOAD_ASDC_CLIENT_EXC=\ MSO-ASDC-5315W|\ ASDCParametersException caught during loading/reloading of the ASDC Client with address {0} and environment {1}|\ Please check other logs for more detailed info|\ - ASDCParametersException caught during loading/reloading of the ASDC Client + ASDCParametersException caught during loading/reloading of the ASDC Client ASDC_SHUTDOWN_ASDC_CLIENT_EXC=\ MSO-ASDC-5317W|\ {0} caught during the ASDC Controller with address {1} and environment {2} shutdown|\ Please check other logs for more detailed info|\ - Exception caught during the ASDC Controller shutdown + Exception caught during the ASDC Controller shutdown ASDC_START_INSTALL_ARTIFACT=\ MSO-ASDC-5318I|\ Trying to install the artifact:{0}|\ No resolution needed|\ - Trying to install the artifact + Trying to install the artifact ASDC_ARTIFACT_TYPE_NOT_SUPPORT=\ MSO-ASDC-5319W|\ This artifact type is not supported:{0}|\ No resolution needed|\ - Artifact type is not supported + Artifact type is not supported ASDC_ARTIFACT_ALREADY_EXIST=\ MSO-ASDC-5320I|\ No need to download the artifact as it exists already in MSO:{0} (UUID:{1}) associated to ResourceName {2}|\ No resolution needed|\ - Artifact already exists + Artifact already exists ASDC_ARTIFACT_DOWNLOAD_SUC=\ MSO-ASDC-5321I|\ Artifact successfully downloaded:{0} (UUID:{1}) (SIZE in Bytes:{2})|\ No resolution needed|\ - Artifact successfully downloaded + Artifact successfully downloaded ASDC_ARTIFACT_DOWNLOAD_FAIL=\ MSO-ASDC-5322E|\ Artifact :{0} could not be downloaded correctly from ASDC URL {1} (UUID:{2}) Error message is {3})|\ @@ -141,47 +141,47 @@ ASDC_START_DEPLOY_ARTIFACT=\ MSO-ASDC-5323I|\ Trying to deploy the artifact:{0} (UUID:{1})|\ No resolution needed|\ - Trying to deploy the artifact + Trying to deploy the artifact ASDC_ARTIFACT_DEPLOY_SUC=\ MSO-ASDC-5324I|\ Resource successfully installed:{0} (UUID:{1}) (Nb of Modules:{2})|\ No resolution needed|\ - Resource successfully installed + Resource successfully installed ASDC_SEND_NOTIF_ASDC=\ MSO-ASDC-5325I|\ Sending {0} ({1}) notification to ASDC for artifact:{2}|\ No resolution needed|\ - Sending notif to ASDC + Sending notif to ASDC ASDC_SEND_NOTIF_ASDC_EXEC=\ MSO-ASDC-5326W|\ Exception caught when trying to notify ASDC|\ Please check other logs for more detailed info|\ - Exception caught when trying to notify ASDC + Exception caught when trying to notify ASDC ASDC_RECEIVE_CALLBACK_NOTIF=\ MSO-ASDC-5327I|\ Receive a callback notification in ASDC, nb of artifacts: {0} (ServiceUUID:{1})|\ No resolution needed|\ - Receive a callback notification in ASDC + Receive a callback notification in ASDC ASDC_RECEIVE_SERVICE_NOTIF=\ MSO-ASDC-5328I|\ Notification is ServiceVNF, (ServiceUUID:{0})|\ No resolution needed|\ - Receive a callback notification for ServiceVNF + Receive a callback notification for ServiceVNF ASDC_ARTIFACT_NULL=\ MSO-ASDC-5329I|\ Nothing to deploy artifact is NULL, (ServiceUUID:{0})|\ No resolution needed|\ - Nothing to deploy artifact is NULL + Nothing to deploy artifact is NULL ASDC_SERVICE_NOT_SUPPORT=\ MSO-ASDC-5330W|\ Notification received, (ServiceUUID:{0}) is not a ServiceVNF and is therefore skipped|\ No resolution needed|\ - Service not support + Service not support ASDC_INIT_ASDC_CLIENT_SUC=\ MSO-ASDC-5331I|\ ASDC Controller successfully initialized|\ No resolution needed|\ - ASDC client initialized + ASDC client initialized ASDC_GENERAL_EXCEPTION_ARG=\ MSO-ASDC-9300E|\ Exception: {0}|\ @@ -212,4 +212,4 @@ ASDC_GENERAL_INFO=\ MSO-ASDC-9305I|\ INFO: {0}|\ No resolution needed|\ - General Info + General Info diff --git a/common/src/main/resources/ApiHandler.properties b/common/src/main/resources/ApiHandler.properties index 82d452ae4e..60ecf94655 100644 --- a/common/src/main/resources/ApiHandler.properties +++ b/common/src/main/resources/ApiHandler.properties @@ -81,12 +81,12 @@ APIH_DB_UPDATE_EXC=\ MSO-APIH-3008E|\ Unable to update record to DB: {0}|\ Please check other logs for more detailed info|\ - Unable to insert record to DB + Unable to insert record to DB APIH_VALIDATION_ERROR=\ MSO-APIH-4000E|\ Validation failed|\ Please check other logs for more detailed info|\ - Validation failed + Validation failed APIH_REQUEST_VALIDATION_ERROR=\ MSO-APIH-4001E|\ Validation of the input request failed, for incoming request:{0}|\ @@ -96,17 +96,17 @@ APIH_SERVICE_VALIDATION_ERROR=\ MSO-APIH-4002E|\ Service params failed schema validation|\ Please check other logs for more detailed info|\ - Service params failed schema validation + Service params failed schema validation APIH_REQUEST_VALIDATION_ERROR_REASON=\ MSO-APIH-4003E|\ Validation of the input request failed:{0}|\ Please verify the input request|\ - Validation of the input request failed + Validation of the input request failed APIH_VNFREQUEST_VALIDATION_ERROR=\ MSO-APIH-4004E|\ Validation of the VNF Request failed|\ Please verify the VNF Request|\ - Validation of the VNF Request failed + Validation of the VNF Request failed APIH_QUERY_PARAM_WRONG=\ MSO-APIH-5003W|\ Bad Request: {0}|\ @@ -116,7 +116,7 @@ APIH_GENERAL_WARNING=\ MSO-APIH-5004W|\ WARNING: {0}|\ Please check other logs for more detailed info|\ - General warning + General warning APIH_AUDIT_EXEC=\ MSO-APIH-5005I|\ Executing request: {0}. {1}|\ @@ -126,32 +126,32 @@ APIH_GENERAL_METRICS=\ MSO-APIH-5008I|\ Executed method: {0}. {1}|\ No resolution needed|\ - Generate information for Metric events + Generate information for Metric events APIH_REQUEST_NULL=\ MSO-APIH-5009W|\ The request received by MSO is null|\ Please check other logs for more detailed info|\ - The request received by MSO is null + The request received by MSO is null APIH_DUPLICATE_FOUND=\ MSO-APIH-5011W|\ Duplicated request found: {0}|\ Please check other logs for more detailed info|\ - Duplicated request found + Duplicated request found APIH_BAD_ORDER=\ MSO-APIH-5012W|\ Request received with wrong order: {0}|\ Please check other logs for more detailed info|\ - Request received with wrong order + Request received with wrong order APIH_BPEL_RESPONSE_ERROR=\ MSO-APIH-5014E|\ Abnormal response received from BPEL server: {0}|\ Please check other logs for more detailed info|\ - Abnormal response received from BPEL server + Abnormal response received from BPEL server APIH_WARP_REQUEST=\ MSO-APIH-5015E|\ Error wrapping request|\ Please check other logs for more detailed info|\ - Error wrapping request to be sent to BPEL server + Error wrapping request to be sent to BPEL server APIH_ERROR_FROM_BPEL_SERVER=\ MSO-APIH-5016E|\ Error from {0} with status:{1} and responseBody:{2}|\ @@ -161,12 +161,12 @@ APIH_CANNOT_READ_SCHEMA=\ MSO-APIH-5017E|\ MSO Configuration Error - Unable to read the schema file|\ Please check other logs for more detailed info|\ - MSO Configuration Error - Unable to read the schema file + MSO Configuration Error - Unable to read the schema file APIH_PROPERTY_LOAD_SUC=\ MSO-APIH-5018I|\ Properties file loaded successfully|\ No resolution needed|\ - Properties file loaded successfully + Properties file loaded successfully APIH_NO_PROPERTIES=\ MSO-APIH-5019E|\ Missing or invalid properties file: {0}|\ @@ -201,7 +201,7 @@ APIH_GENERAL_EXCEPTION=\ MSO-APIH-9001E|\ Exception encountered|\ Please check other logs for more detailed info|\ - Exception encountered + Exception encountered APIH_HEALTH_CHECK_EXCEPTION=\ MSO-APIH-9002E|\ Exception during health check|\ @@ -221,27 +221,27 @@ APIH_BPEL_COMMUNICATE_ERROR=\ MSO-APIH-9005E|\ Exception during BPEL POST|\ Please check other logs for more detailed info|\ - Exception during BPEL POST + Exception during BPEL POST APIH_SDNC_COMMUNICATE_ERROR=\ MSO-APIH-9006E|\ Exception when sending HTTP POST request to SDNC Adapter|\ Please check other logs for more detailed info|\ - Exception when sending HTTP POST request to SDNC Adapter + Exception when sending HTTP POST request to SDNC Adapter APIH_SDNC_RESPONSE_ERROR=\ MSO-APIH-9007E|\ IOException getting SDNC Adapter response body|\ Please check other logs for more detailed info|\ - IOException getting SDNC Adapter response body + IOException getting SDNC Adapter response body APIH_JAXB_MARSH_ERROR=\ MSO-APIH-9008E|\ Exception when translating query results into string with Jaxb|\ Please check other logs for more detailed info|\ - Exception when translating query results into string with Jaxb + Exception when translating query results into string with Jaxb APIH_JAXB_UNMARSH_ERROR=\ MSO-APIH-9009E|\ Exception when formatting for VNF outputs with Jaxb|\ Please check other logs for more detailed info|\ - Exception when formatting for VNF outputs + Exception when formatting for VNF outputs APIH_DOM2STR_ERROR=\ MSO-APIH-9010E|\ Error converting xml Document to String|\ diff --git a/common/src/main/resources/BPMN.properties b/common/src/main/resources/BPMN.properties index 9e8a7e7189..848135e716 100644 --- a/common/src/main/resources/BPMN.properties +++ b/common/src/main/resources/BPMN.properties @@ -51,12 +51,12 @@ BPMN_GENERAL_INFO=\ MSO-BPEL-5100I|\ INFO: {0}|\ No resolution needed|\ - General info + General info BPMN_GENERAL_WARNING=\ MSO-BPEL-5101W|\ WARNING: {0}|\ Please check other logs for more information|\ - General warning + General warning BPMN_AUDIT_EXEC=\ MSO-BPEL-5102I|\ Executing method: {0}. {1}|\ @@ -76,7 +76,7 @@ BPMN_VARIABLE_NULL=\ MSO-BPEL-5107W|\ Variable {0} is null; skipped|\ No resolution needed|\ - Variable is null + Variable is null BPMN_GENERAL_EXCEPTION_ARG=\ MSO-BPEL-9100E|\ Exception: {0}|\ @@ -86,7 +86,7 @@ BPMN_GENERAL_EXCEPTION=\ MSO-BPEL-9101E|\ Exception encountered|\ Please check other logs for more information|\ - Exception encountered + Exception encountered BPMN_CALLBACK_EXCEPTION=\ MSO-BPEL-9102E|\ {0} Exception occurred processing callback to BPMN process {1}|\ diff --git a/common/src/main/resources/GenericMessages.properties b/common/src/main/resources/GenericMessages.properties index 26403235c9..a9aa13f61a 100644 --- a/common/src/main/resources/GenericMessages.properties +++ b/common/src/main/resources/GenericMessages.properties @@ -51,52 +51,52 @@ GENERAL_WARNING=\ MSO-GENERAL-5401W|\ WARNING: {0}|\ Please check other logs for more detailed info|\ - General warning + General warning AUDIT_EXEC=\ MSO-GENERAL-5402I|\ Executing method: {0}. {1}|\ No resolution needed|\ - Executing method + Executing method GENERAL_METRICS=\ MSO-GENERAL-5405I|\ Executed method: {0}. {1}|\ No resolution needed|\ - Generate information for Metric events + Generate information for Metric events LOGGER_SETUP=\ MSO-GENERAL-5406I|\ Request received to update logger level|\ No resolution needed|\ - Request received to update logger level + Request received to update logger level LOGGER_NOT_FOUND=\ MSO-GENERAL-5407I|\ Logger Servlet: Logger not found: : {0}|\ No resolution needed|\ - Logger not found + Logger not found LOGGER_UPDATE_SUC=\ MSO-GENERAL-5408I|\ Successfully update Logger: {0} from level {1} to level {2}|\ No resolution needed|\ - Generate information for Metric events + Generate information for Metric events LOGGER_UPDATE_DEBUG=\ MSO-GENERAL-5409I|\ Request received to update debug mode|\ No resolution needed|\ - Request received to update debug mode + Request received to update debug mode LOGGER_UPDATE_DEBUG_SUC=\ MSO-GENERAL-5410I|\ Successfully {0} debug mode|\ No resolution needed|\ - Successfully updated debug mode + Successfully updated debug mode LOAD_PROPERTIES_SUC=\ MSO-GENERAL-5411I|\ Properties file loaded successfully from file {0}|\ No resolution needed|\ - Properties file loaded successfully + Properties file loaded successfully NO_PROPERTIES=\ MSO-GENERAL-5412E|\ Missing or invalid properties file: {0}|\ Please verify whether properties file exist or readable|\ - Missing or invalid properties file + Missing or invalid properties file LOAD_PROPERTIES_FAIL=\ MSO-GENERAL-5413E|\ Failed loading properties file: {0}|\ @@ -106,17 +106,17 @@ INIT_LOGGER=\ MSO-GENERAL-5414I|\ Prepare to initialize loggers from {0}|\ No resolution needed|\ - Prepare to initialize loggers + Prepare to initialize loggers MADATORY_PARAM_MISSING=\ MSO-GENERAL-5415E|\ Not able to get mandatory parameter: {0} from file {1}|\ No resolution needed|\ - Mandatory parameter missing + Mandatory parameter missing IDENTITY_SERVICE_NOT_FOUND=\ MSO-GENERAL-5416E|\ Identity service not found: region={0} ,cloud={1}|\ Please check other logs for more detailed info|\ - Identity service not found + Identity service not found GENERAL_EXCEPTION_ARG=\ MSO-GENERAL-9400E|\ Exception: {0}|\ @@ -126,7 +126,7 @@ GENERAL_EXCEPTION=\ MSO-GENERAL-9401E|\ Exception encountered|\ Please check other logs for more detailed info|\ - Exception encountered + Exception encountered INIT_LOGGER_FAIL=\ MSO-GENERAL-9402E|\ Failed to initialize loggers|\ diff --git a/common/src/main/resources/ResourceAdapter.properties b/common/src/main/resources/ResourceAdapter.properties index 0dbbb3c936..8eed3857d7 100644 --- a/common/src/main/resources/ResourceAdapter.properties +++ b/common/src/main/resources/ResourceAdapter.properties @@ -56,42 +56,42 @@ RA_DELETE_STACK_TIMEOUT=\ MSO-RA-2201E|\ Delete Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\ Please check other logs for more detailed info|\ - Delete Stack timeout + Delete Stack timeout RA_UPDATE_STACK_TIMEOUT=\ MSO-RA-2202E|\ Update Stack - Polling timeout exceeded. cloud={0}, tenant={1}, stack={2}, status={3}|\ Please check other logs for more detailed info|\ - Delete Stack timeout + Delete Stack timeout RA_MISSING_PARAM=\ MSO-RA-4200I|\ Missing Required parameter: {0}|\ No resolution needed|\ - Mandatory Parameter Missing + Mandatory Parameter Missing RA_PARSING_ERROR=\ MSO-RA-4201E|\ Error parsing file {0}|\ No resolution needed|\ - Error parsing file + Error parsing file RA_MARSHING_ERROR=\ MSO-RA-4202E|\ Error marshalling callback request with JaxB|\ Please check other logs for more detailed info|\ - Error marshalling callback request + Error marshalling callback request RA_PARSING_REQUEST_ERROR=\ MSO-RA-4203E|\ Error parsing request:{0}|\ Please check other logs for more detailed info|\ - Error parsing request + Error parsing request RA_VLAN_PARSE=\ MSO-RA-4204E|\ Error parsing VLAN parameter in network stack {0}:{1}|\ Please check other logs for more detailed info|\ - Error parsing VLAN parameter in network stack + Error parsing VLAN parameter in network stack RA_GENERAL_WARNING=\ MSO-RA-5201W|\ WARNING: {0}|\ Please check other logs for more detailed info|\ - General warning + General warning RA_AUDIT_EXEC=\ MSO-RA-5202I|\ Executing method: {0}. {1}|\ @@ -101,52 +101,52 @@ RA_GENERAL_METRICS=\ MSO-RA-5205I|\ Executed method: {0}. {1}|\ No resolution needed|\ - Generate information for Metric events + Generate information for Metric events RA_PROPERTIES_NOT_FOUND=\ MSO-RA-5206E|\ Properties file: {0} not found|\ Please verify whether properties file exist or readable|\ - Properties file not found + Properties file not found RA_LOAD_PROPERTIES_SUC=\ MSO-RA-5207I|\ Properties file loaded successfully from file {0}|\ No resolution needed|\ - Properties file loaded successfully + Properties file loaded successfully RA_PARAM_NOT_FOUND=\ MSO-RA-5208E|\ Attribute {0} not found in DB. For {1}={2}|\ No resolution needed|\ - Attribute not found in DB + Attribute not found in DB RA_UNKOWN_PARAM=\ MSO-RA-5209E|\ Unknown {0}:{1}|\ Please check other logs for more detailed info|\ - Unknown attribute + Unknown attribute RA_CONFIG_EXC=\ MSO-RA-5210E|\ Configuration error:{0}|\ Please check other logs for more detailed info|\ - Configuration Error + Configuration Error RA_CONFIG_NOT_FOUND=\ MSO-RA-5211E|\ Could not found configuration file:{0}|\ Please verify whether configuration file exist or readable|\ - Configuration file not found + Configuration file not found RA_SEND_REQUEST_SDNC=\ MSO-RA-5212I|\ Sending request to SDNC:{0}|\ No resolution needed|\ - Sending request to SDNC + Sending request to SDNC RA_RESPONSE_FROM_SDNC=\ MSO-RA-5213I|\ Response received from SDNC:{0}|\ No resolution needed|\ - Response received from SDNC + Response received from SDNC RA_CALLBACK_BPEL=\ MSO-RA-5218E|\ Callback to BPEL:{0} |\ Please check other logs for more detailed info|\ - Callback to BPEL + Callback to BPEL RA_NETWORK_ALREADY_EXIST=\ MSO-RA-5240W|\ Network already exists: {0} in {1}/{2}|\ @@ -156,117 +156,117 @@ RA_NETWORK_NOT_FOUND=\ MSO-RA-5241E|\ Network doesn't exist: {0} in {1}/{2}|\ Please check other logs for more detailed info|\ - Network doesn't exist + Network doesn't exist RA_NETWORK_ORCHE_MODE_NOT_SUPPORT=\ MSO-RA-5243E|\ Network Type Orchestrated mode:{0} is not supported|\ Please check other logs for more detailed info|\ - Network Type Orchestrated mode + Network Type Orchestrated mode RA_ROLLBACK_NULL=\ MSO-RA-5249W|\ Rollback: No action to perform|\ No resolution needed|\ - Rollback: No action to perform + Rollback: No action to perform RA_ASYNC_ROLLBACK=\ MSO-RA-5251I|\ Async Rollback Network {0}|\ No resolution needed|\ - Async Rollback Network + Async Rollback Network RA_WSDL_NOT_FOUND=\ MSO-RA-5252E|\ Unable to find wsdl file {0} in classpath|\ No resolution needed|\ - Unable to find wsdl file in classpath + Unable to find wsdl file in classpath RA_CALLBACK_BPEL_COMPLETE=\ MSO-RA-5258I|\ Completed processing BPEL request|\ No resolution needed|\ - Completed processing BPEL request + Completed processing BPEL request RA_SDNC_MISS_CONFIG_PARAM=\ MSO-RA-5259E|\ Missing configuration for:{0}|\ Please check other logs for more detailed info|\ - Missing configuration for + Missing configuration for RA_SDNC_INVALID_CONFIG=\ MSO-RA-5260W|\ Invalid configuration(most requests require atleast 3 params:method,timeout,action) for Key:{0} Value:{1}|\ Please check other logs for more detailed info|\ - Invalid configuration + Invalid configuration RA_TENANT_NOT_FOUND=\ MSO-RA-5263E|\ Tenant not found: tenant={0}, cloudSiteId={1}|\ Please check other logs for more detailed info|\ - Tenant not found + Tenant not found RA_PRINT_URL=\ MSO-RA-5264I|\ {0} URL:{1}|\ No resolution needed|\ - Log the URL + Log the URL RA_RECEIVE_SDNC_NOTIF=\ MSO-RA-5268I|\ Received SDNC Notification. XML:{0}|\ No resolution needed|\ - Received SDNC Notification + Received SDNC Notification RA_INIT_SDNC_ADAPTER=\ MSO-RA-5269I|\ Initializing mso-sdnc-adapter|\ No resolution needed|\ - Initializing mso-sdnc-adapter + Initializing mso-sdnc-adapter RA_RECEIVE_BPEL_REQUEST=\ MSO-RA-5270I|\ BPEL request received [{0}] with callback URL [{1}]|\ No resolution needed|\ - BPEL request received + BPEL request received RA_SEND_REQUEST_SDNC_ERR=\ MSO-RA-5271E|\ Error sending request to SDNC. Failed to start SDNC Client thread|\ Please check other logs for more detailed info|\ - Error sending request to SDNC + Error sending request to SDNC RA_TENANT_ALREADY_EXIST=\ MSO-RA-5272E|\ Tenant {0} already exists in {1}|\ No resolution needed|\ - Tenant alaredy exists + Tenant alaredy exists RA_SEND_REQUEST_APPC_ERR=\ MSO-RA-5273E|\ Error sending request to APPC|\ Please check other logs for more detailed info|\ - Error sending request to APPC + Error sending request to APPC RA_VNF_ALREADY_EXIST=\ MSO-RA-5275E|\ Stack {0} already exists in {1}/{2}|\ No resolution needed|\ - VNF already exists + VNF already exists RA_VNF_UNKNOWN_PARAM=\ MSO-RA-5276E|\ Unknown {0}:{1}|\ No resolution needed|\ - Uknown parameter + Uknown parameter RA_VNF_EXTRA_PARAM=\ MSO-RA-5277E|\ Create Stack ({0}) extra input params received:{1}|\ Please check other logs for more detailed info|\ - Extra input params received + Extra input params received RA_VNF_NOT_EXIST=\ MSO-RA-5278E|\ Stack {0} does not exist in {1}/{2}|\ No resolution needed|\ - Stack does not exist + Stack does not exist RA_ASYNC_CREATE_VNF=\ MSO-RA-5282I|\ Async Create VNF :{0} of type {1} in {2}/{3}|\ No resolution needed|\ - Async Create VNF + Async Create VNF RA_SEND_VNF_NOTIF_ERR=\ MSO-RA-5283E|\ Error sending createVnf notification|\ Please check other logs for more detailed info|\ - Error sending createVnf notification + Error sending createVnf notification RA_ASYNC_CREATE_VNF_COMPLETE=\ MSO-RA-5284I|\ Completed createVnfA|\ No resolution needed|\ - Completed createVnfA + Completed createVnfA RA_ASYNC_UPDATE_VNF=\ MSO-RA-5285I|\ Async Update VNF :{0} of type {1} in {2}/{3}|\ @@ -276,7 +276,7 @@ RA_ASYNC_UPDATE_VNF_COMPLETE=\ MSO-RA-5286I|\ Completed updateVnfA|\ No resolution needed|\ - Completed updateVnfA + Completed updateVnfA RA_ASYNC_QUERY_VNF=\ MSO-RA-5287I|\ Async Query VNF :{0} of type {1} in {2}/{3}|\ @@ -286,7 +286,7 @@ RA_ASYNC_QUERY_VNF_COMPLETE=\ MSO-RA-5288I|\ Completed queryVnfA|\ No resolution needed|\ - Completed queryVnfA + Completed queryVnfA RA_ASYNC_DELETE_VNF=\ MSO-RA-5289I|\ Async Delete VNF :{0} of type {1} in {2}/{3}|\ @@ -296,7 +296,7 @@ RA_ASYNC_DELETE_VNF_COMPLETE=\ MSO-RA-5290I|\ Completed deleteVnfA|\ No resolution needed|\ - Completed deleteVnfA + Completed deleteVnfA RA_ASYNC_ROLLBACK_VNF=\ MSO-RA-5291I|\ Async Rollback VNF|\ @@ -306,7 +306,7 @@ RA_ASYNC_ROLLBACK_VNF_COMPLETE=\ MSO-RA-5292I|\ Completed rollbackVnfA|\ No resolution needed|\ - Completed rollbackVnfA + Completed rollbackVnfA RA_DB_INVALID_STATUS=\ MSO-RA-5293E|\ Invalid status value|\ @@ -316,12 +316,12 @@ RA_DB_REQUEST_NOT_EXIST=\ MSO-RA-5294E|\ Request ID={0} does not exist in DB|\ Please check other logs for more detailed info|\ - Record does not exist in DB + Record does not exist in DB RA_CANT_UPDATE_REQUEST=\ MSO-RA-5295E|\ Enable to update {0} in DB for Request ID={1}|\ Please check other logs for more detailed info|\ - Enable to update DB + Enable to update DB RA_CONFIG_LOAD=\ MSO-RA-5296I|\ Configuration loaded from {0}|\ @@ -331,42 +331,42 @@ RA_RECEIVE_WORKFLOW_MESSAGE=\ MSO-RA-5297I|\ Received Workflow Message: {0}|\ No resolution needed|\ - Received Workflow Message + Received Workflow Message RA_NS_EXC=\ MSO-RA-5298I|\ VFC Adatper Message: {0}|\ No resolution needed|\ - VFC Adatper Message + VFC Adatper Message RA_GENERAL_EXCEPTION_ARG=\ MSO-RA-9200E|\ Exception: {0}|\ Please check other logs for more detailed info|\ - General exception with reason + General exception with reason RA_GENERAL_EXCEPTION=\ MSO-RA-9201E|\ Exception encountered|\ Please check other logs for more detailed info|\ - Exception encountered + Exception encountered RA_CONNECTION_EXCEPTION=\ MSO-RA-9202E|\ Exception communicating with {0}: {1}|\ Please check other logs for more detailed info|\ - Communication Exception + Communication Exception RA_EXCEPTION_COMMUNICATE_SDNC=\ MSO-RA-9203E|\ Exception while processing request to SDNC|\ Please check other logs for more detailed info|\ - Exception while processing request to SDNC + Exception while processing request to SDNC RA_EVALUATE_XPATH_ERROR=\ MSO-RA-9204E|\ Error while evaluating xpath {0} - {1}|\ Please check other logs for more detailed info|\ - Error while evaluating xpath + Error while evaluating xpath RA_ANALYZE_ERROR_EXC=\ MSO-RA-9205E|\ Problem analyzing error returned by SDN-C|\ Please check other logs for more detailed info|\ - Problem analyzing error returned by SDN-C + Problem analyzing error returned by SDN-C RA_ERROR_GET_RESPONSE_SDNC=\ MSO-RA-9206E|\ Error getting response code from errored SDNC request|\ @@ -381,7 +381,7 @@ RA_CREATE_STACK_ERR=\ MSO-RA-9208E|\ Create Stack Error: {0}|\ Please check other logs for more detailed info|\ - Create Stack Error + Create Stack Error RA_UPDATE_STACK_ERR=\ MSO-RA-9209E|\ Update Stack Error - Polling complete with non-success status: {0}, {1}|\ @@ -391,17 +391,17 @@ RA_UPDATE_NETWORK_ERR=\ MSO-RA-9210E|\ Exception while update network, {0} in {1}/{2}|\ Please check other logs for more detailed info |\ - Update Network Error + Update Network Error RA_QUERY_NETWORK_EXC=\ MSO-RA-9211E|\ Exception while query network: {0} in {1}/{2}|\ Please check other logs for more detailed info|\ - Exception while query network: + Exception while query network: RA_CREATE_NETWORK_EXC=\ MSO-RA-9212E|\ Exception while create network: {0} in {1}/{2}|\ Please check other logs for more detailed info|\ - Create Network Error + Create Network Error RA_DELETE_NETWORK_EXC=\ MSO-RA-9213E|\ Exception while delete network: {0} in {1}/{2}|\ @@ -416,12 +416,12 @@ RA_WSDL_URL_CONVENTION_EXC=\ MSO-RA-9215E|\ {0} URL converion failed|\ Please check other logs for more detailed info|\ - WSDL URL converion failed + WSDL URL converion failed RA_INIT_NOTIF_EXC=\ MSO-RA-9216E|\ Caught exception initializing Notification Url|\ Please check other logs for more detailed info|\ - Caught exception initializing Notification Url + Caught exception initializing Notification Url RA_SET_CALLBACK_AUTH_EXC=\ MSO-RA-9217E|\ Unable to set authorization in callback request|\ @@ -431,7 +431,7 @@ RA_FAULT_INFO_EXC=\ MSO-RA-9218E|\ Exception caught while getting fault info|\ Please check other logs for more detailed info|\ - Exception caught while getting fault info + Exception caught while getting fault info RA_CALLBACK_BPEL_EXC=\ MSO-RA-9219E|\ Error sending BPEL Callback request|\ @@ -441,7 +441,7 @@ RA_CREATE_TENANT_ERR=\ MSO-RA-9220E|\ Create Tenant Error: {0}|\ Please check other logs for more detailed info|\ - Create Tenant Error + Create Tenant Error RA_DELETE_TEMAMT_ERR=\ MSO-RA-9221E|\ Delete Tenant Error: {0}|\ @@ -451,12 +451,12 @@ RA_ERROR_CREATE_SDNC_REQUEST=\ MSO-RA-9222E|\ Error creating SDNC request|\ Please check other logs for more detailed info|\ - Error creating SDNC request + Error creating SDNC request RA_ERROR_CREATE_SDNC_RESPONSE=\ MSO-RA-9223E|\ Error creating SDNC response|\ Please check other logs for more detailed info|\ - Error creating SDNC response + Error creating SDNC response RA_ERROR_CONVERT_XML2STR=\ MSO-RA-9224E|\ Error converting xml Document to String|\ @@ -466,12 +466,12 @@ RA_UPDATE_TENANT_ERR=\ MSO-RA-9225E|\ Update Tenant Error: {0}|\ Please check other logs for more detailed info|\ - Update Tenant Error + Update Tenant Error RA_ROLLBACK_TENANT_ERR=\ MSO-RA-9226E|\ Rollback Tenant Error: {0}|\ Please check other logs for more detailed info|\ - Rollback Tenant Error + Rollback Tenant Error RA_QUERY_VNF_ERR=\ MSO-RA-9227E|\ Exception while query VNF:{0} in {1}/{2}|\ @@ -481,12 +481,12 @@ RA_UPDATE_VNF_ERR=\ MSO-RA-9228E|\ Exception while update VNF:{0} in {1}/{2}|\ Please check other logs for more detailed info|\ - Exception while update VNF + Exception while update VNF RA_DELETE_VNF_ERR=\ MSO-RA-9229E|\ Exception while delete VNF:{0} in {1}/{2}|\ Please check other logs for more detailed info|\ - Exception while delete VNF + Exception while delete VNF RA_CREATE_VNF_ERR=\ MSO-RA-9230E|\ Exception while create VNF:{0} in {1}/{2}|\ @@ -496,4 +496,4 @@ RA_ROLLBACK_VNF_ERR=\ MSO-RA-9231E|\ Exception while rollback VNF|\ Please check other logs for more detailed info|\ - Exception while rollback VNF + Exception while rollback VNF |