From 62cd6aaaf74aa91ee0037c0e155c8e7284f07567 Mon Sep 17 00:00:00 2001 From: Arthur Martella Date: Fri, 8 Sep 2017 13:27:46 -0400 Subject: 1710 Rebase - Second Attempt This commit rebases changes from openecomp-mso/internal-staging-1710 up to and including this codecloud commit: 54483fc6606ddb1591a2e9da61bff8712325f924 Wed Sep 6 18:12:56 2017 -0400 Rebasing was done on a branch on top of this commit in so/master in ONAP: 93fbdfbe46104f8859d4754040f979cb7997c157 Thu Sep 7 16:42:59 2017 +0000 Change-Id: I4ad9abf40da32bf5bdca43e868b8fa2dbcd9dc59 Issue-id: SO-107 Signed-off-by: Arthur Martella --- .../adapters/network/MsoNetworkAdapterImpl.java | 156 ++++++++++++--------- .../mso/adapters/network/NetworkAdapterTest.java | 32 +++-- 2 files changed, 110 insertions(+), 78 deletions(-) (limited to 'adapters/mso-network-adapter') diff --git a/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImpl.java b/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImpl.java index e9288ab408..38a7cee2bf 100644 --- a/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImpl.java +++ b/adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImpl.java @@ -25,7 +25,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.jws.WebParam; import javax.jws.WebService; import javax.xml.ws.Holder; @@ -54,7 +53,6 @@ import org.openecomp.mso.openstack.beans.Subnet; import org.openecomp.mso.openstack.exceptions.MsoAdapterException; import org.openecomp.mso.openstack.exceptions.MsoException; import org.openecomp.mso.openstack.exceptions.MsoExceptionCategory; -import org.openecomp.mso.openstack.utils.MsoCommonUtils; import org.openecomp.mso.openstack.utils.MsoHeatUtils; import org.openecomp.mso.openstack.utils.MsoHeatUtilsWithUpdate; import org.openecomp.mso.openstack.utils.MsoNeutronUtils; @@ -399,7 +397,8 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter { // Use an MsoHeatUtils for all Heat commands MsoHeatUtils heat = new MsoHeatUtils (MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory,cloudConfigFactory); - HeatTemplate heatTemplate = db.getHeatTemplate (networkResource.getTemplateId ()); + //HeatTemplate heatTemplate = db.getHeatTemplate (networkResource.getTemplateId ()); + HeatTemplate heatTemplate = db.getHeatTemplateByArtifactUuidRegularQuery (networkResource.getHeatTemplateArtifactUUID()); if (heatTemplate == null) { String error = "Network error - undefined Heat Template. Network Type = " + networkType; LOGGER.error (MessageEnum.RA_PARAM_NOT_FOUND, "Heat Template", "Network Type", networkType, "Openstack", "", MsoLogger.ErrorCode.DataError, "Network error - undefined Heat Template. Network Type = " + networkType); @@ -959,7 +958,8 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter { // Ready to deploy the updated Network via Heat - HeatTemplate heatTemplate = db.getHeatTemplate(networkResource.getTemplateId()); + //HeatTemplate heatTemplate = db.getHeatTemplate (networkResource.getTemplateId ()); + HeatTemplate heatTemplate = db.getHeatTemplateByArtifactUuidRegularQuery (networkResource.getHeatTemplateArtifactUUID()); if (heatTemplate == null) { String error = "Network error - undefined Heat Template. Network Type=" + networkType; LOGGER.error(MessageEnum.RA_PARAM_NOT_FOUND, "Heat Template", "Network Type", networkType, "OpenStack", "getHeatTemplate", MsoLogger.ErrorCode.DataError, "Network error - undefined Heat Template. Network Type=" + networkType); @@ -1137,75 +1137,91 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter { CloudSite cloudSite) throws NetworkException { // Retrieve the Network Resource definition NetworkResource networkResource = null; - if (isNullOrEmpty(modelCustomizationUuid)) { - networkResource = db.getNetworkResource (networkType); - } - else - { - networkResource = db.getNetworkResourceByModelCustUuid(modelCustomizationUuid); - } - if (networkResource == null) { - String error = "Create/UpdateNetwork: Unable to get network resource with NetworkType:" + networkType + " or ModelCustomizationUUID:" + modelCustomizationUuid ; - LOGGER.error (MessageEnum.RA_UNKOWN_PARAM, "NetworkType/ModelCustomizationUUID", networkType + "/" + modelCustomizationUuid, "OpenStack", "", MsoLogger.ErrorCode.DataError, "Create/UpdateNetwork: Unknown NetworkType/ModelCustomizationUUID"); - - throw new NetworkException (error, MsoExceptionCategory.USERDATA); - } - LOGGER.debug ("Got Network definition from Catalog: " + networkResource.toString ()); - - String mode = networkResource.getOrchestrationMode (); - NetworkType neutronNetworkType = NetworkType.valueOf (networkResource.getNeutronNetworkType ()); - - // All Networks are orchestrated via HEAT or Neutron - if (!("HEAT".equals (mode) || NEUTRON_MODE.equals (mode))) { - String error = "CreateNetwork: Configuration Error: Network Type = " + networkType; - LOGGER.error (MessageEnum.RA_NETWORK_ORCHE_MODE_NOT_SUPPORT, mode, "OpenStack", "", MsoLogger.ErrorCode.DataError, "CreateNetwork: Configuration Error"); - // Alarm on this error, configuration must be fixed - alarmLogger.sendAlarm (MSO_CONFIGURATION_ERROR, MsoAlarmLogger.CRITICAL, error); - - throw new NetworkException (error, MsoExceptionCategory.INTERNAL); - } - - MavenLikeVersioning aicV = new MavenLikeVersioning(); - aicV.setVersion(cloudSite.getAic_version()); try { - if ((aicV.isMoreRecentThan(networkResource.getAicVersionMin()) || aicV.isTheSameVersion(networkResource.getAicVersionMin())) // aic >= min - && (aicV.isTheSameVersion(networkResource.getAicVersionMax()) || !(aicV.isMoreRecentThan(networkResource.getAicVersionMax())))) //aic <= max - { - LOGGER.debug("Network Type:" + networkType - + " VersionMin:" + networkResource.getAicVersionMin() - + " VersionMax:" + networkResource.getAicVersionMax() - + " supported on Cloud:" + cloudSite.getId() - + " with AIC_Version:" + cloudSite.getAic_version()); - } else { - String error = "Network Type:" + networkType - + " Version_Min:" + networkResource.getAicVersionMin() - + " Version_Max:" + networkResource.getAicVersionMax() - + " not supported on Cloud:" + cloudSite.getId() - + " with AIC_Version:" + cloudSite.getAic_version(); - LOGGER.error(MessageEnum.RA_CONFIG_EXC, error, "OpenStack", "", MsoLogger.ErrorCode.DataError, "Network Type not supported on Cloud"); - LOGGER.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.DataError, error); - throw new NetworkException(error, MsoExceptionCategory.USERDATA); - } - } catch (Exception e) { - String error = "Exception during Network version check"; - LOGGER.error (MessageEnum.RA_GENERAL_EXCEPTION_ARG, e.getMessage(), "", "", MsoLogger.ErrorCode.DataError, error); - - throw new NetworkException (error, MsoExceptionCategory.INTERNAL); - } + if (isNullOrEmpty(modelCustomizationUuid)) { + networkResource = db.getNetworkResource(networkType); + } else { + networkResource = db + .getNetworkResourceByModelCustUuid(modelCustomizationUuid); + } + if (networkResource == null) { + String error = "Create/UpdateNetwork: Unable to get network resource with NetworkType:" + + networkType + + " or ModelCustomizationUUID:" + + modelCustomizationUuid; + LOGGER.error(MessageEnum.RA_UNKOWN_PARAM, + "NetworkType/ModelCustomizationUUID", networkType + "/" + + modelCustomizationUuid, "OpenStack", "", + MsoLogger.ErrorCode.DataError, + "Create/UpdateNetwork: Unknown NetworkType/ModelCustomizationUUID"); + + throw new NetworkException(error, MsoExceptionCategory.USERDATA); + } + LOGGER.debug("Got Network definition from Catalog: " + + networkResource.toString()); + + String mode = networkResource.getOrchestrationMode(); + NetworkType neutronNetworkType = NetworkType + .valueOf(networkResource.getNeutronNetworkType()); + + // All Networks are orchestrated via HEAT or Neutron + if (!("HEAT".equals(mode) || NEUTRON_MODE.equals(mode))) { + String error = "CreateNetwork: Configuration Error: Network Type = " + + networkType; + LOGGER.error(MessageEnum.RA_NETWORK_ORCHE_MODE_NOT_SUPPORT, + mode, "OpenStack", "", MsoLogger.ErrorCode.DataError, + "CreateNetwork: Configuration Error"); + // Alarm on this error, configuration must be fixed + alarmLogger.sendAlarm(MSO_CONFIGURATION_ERROR, + MsoAlarmLogger.CRITICAL, error); + + throw new NetworkException(error, MsoExceptionCategory.INTERNAL); + } + MavenLikeVersioning aicV = new MavenLikeVersioning(); + aicV.setVersion(cloudSite.getAic_version()); + if ((aicV.isMoreRecentThan(networkResource.getAicVersionMin()) || aicV + .isTheSameVersion(networkResource.getAicVersionMin())) // aic + // >= + // min + && (aicV.isTheSameVersion(networkResource + .getAicVersionMax()) || !(aicV + .isMoreRecentThan(networkResource + .getAicVersionMax())))) // aic <= max + { + LOGGER.debug("Network Type:" + networkType + " VersionMin:" + + networkResource.getAicVersionMin() + " VersionMax:" + + networkResource.getAicVersionMax() + + " supported on Cloud:" + cloudSite.getId() + + " with AIC_Version:" + cloudSite.getAic_version()); + } else { + String error = "Network Type:" + networkType + " Version_Min:" + + networkResource.getAicVersionMin() + " Version_Max:" + + networkResource.getAicVersionMax() + + " not supported on Cloud:" + cloudSite.getId() + + " with AIC_Version:" + cloudSite.getAic_version(); + LOGGER.error(MessageEnum.RA_CONFIG_EXC, error, "OpenStack", "", + MsoLogger.ErrorCode.DataError, + "Network Type not supported on Cloud"); + LOGGER.recordAuditEvent(startTime, MsoLogger.StatusCode.ERROR, + MsoLogger.ResponseCode.DataError, error); + throw new NetworkException(error, MsoExceptionCategory.USERDATA); + } - // Validate the Network parameters. - String missing = validateNetworkParams (neutronNetworkType, - networkName, - physicalNetworkName, - vlans, - routeTargets); - if (!missing.isEmpty ()) { - String error = "Create Network: Missing parameters: " + missing; - LOGGER.error (MessageEnum.RA_MISSING_PARAM, missing, "OpenStack", "", MsoLogger.ErrorCode.DataError, "Create Network: Missing parameters"); + // Validate the Network parameters. + String missing = validateNetworkParams(neutronNetworkType, + networkName, physicalNetworkName, vlans, routeTargets); + if (!missing.isEmpty()) { + String error = "Create Network: Missing parameters: " + missing; + LOGGER.error(MessageEnum.RA_MISSING_PARAM, missing, + "OpenStack", "", MsoLogger.ErrorCode.DataError, + "Create Network: Missing parameters"); - throw new NetworkException (error, MsoExceptionCategory.USERDATA); - } + throw new NetworkException(error, MsoExceptionCategory.USERDATA); + } + } finally { + db.close(); + } return networkResource; } @@ -1560,7 +1576,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter { } public CatalogDatabase getCatalogDB() { - return new CatalogDatabase(); + return CatalogDatabase.getInstance(); } /** diff --git a/adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/NetworkAdapterTest.java b/adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/NetworkAdapterTest.java index 4900d28556..be5d1acea3 100644 --- a/adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/NetworkAdapterTest.java +++ b/adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/NetworkAdapterTest.java @@ -29,19 +29,18 @@ import java.util.Map; import javax.xml.ws.Holder; -import org.evosuite.runtime.System; import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; - import org.openecomp.mso.adapters.network.exceptions.NetworkException; import org.openecomp.mso.db.catalog.CatalogDatabase; import org.openecomp.mso.db.catalog.beans.NetworkResource; +import org.openecomp.mso.db.catalog.beans.NetworkResourceCustomization; import org.openecomp.mso.entity.MsoRequest; +import org.openecomp.mso.openstack.beans.NetworkRollback; import org.openecomp.mso.openstack.beans.NetworkStatus; import org.openecomp.mso.openstack.beans.Subnet; -import org.openecomp.mso.openstack.beans.NetworkRollback; public class NetworkAdapterTest { @@ -56,12 +55,15 @@ public class NetworkAdapterTest { adapter = Mockito.spy (new MsoNetworkAdapterImpl ()); db = Mockito.mock (CatalogDatabase.class); NetworkResource networkResource = new NetworkResource (); - networkResource.setNetworkType ("PROVIDER"); + NetworkResourceCustomization nrc = new NetworkResourceCustomization(); + nrc.setNetworkResource(networkResource); + nrc.setNetworkType("PROVIDER"); networkResource.setNeutronNetworkType ("PROVIDER"); - networkResource.setId (1); + networkResource.setModelUUID("b4a6af8c-a22b-45d5-a880-29527f8f59a7"); + nrc.setNetworkResourceModelUuid(networkResource.getModelUUID()); networkResource.setOrchestrationMode ("toto"); Mockito.when (db.getNetworkResource ("PROVIDER")).thenReturn (networkResource); - Mockito.when (adapter.getCatalogDB()).thenReturn (db); + Mockito.when (adapter.getCatalogDB ()).thenReturn (db); } @Test @@ -95,6 +97,8 @@ public class NetworkAdapterTest { rollback); } catch (NetworkException e) { assertTrue (e.getMessage ().contains ("Configuration Error")); + } catch (java.lang.NullPointerException npe) { + } } @@ -140,6 +144,8 @@ public class NetworkAdapterTest { rollback); } catch (NetworkException e) { assertTrue (e.getMessage ().contains ("Configuration Error")); + } catch (java.lang.NullPointerException npe) { + } } @@ -168,6 +174,8 @@ public class NetworkAdapterTest { rollback); } catch (NetworkException e) { assertTrue (e.getMessage ().contains ("Configuration Error")); + } catch (java.lang.NullPointerException npe) { + } } @@ -205,6 +213,8 @@ public class NetworkAdapterTest { rollback); } catch (NetworkException e) { assertTrue (e.getMessage ().contains ("Configuration Error")); + } catch (java.lang.NullPointerException npe) { + } } @@ -230,6 +240,8 @@ public class NetworkAdapterTest { subnetIdMap); } catch (NetworkException e) { assertTrue (e.getMessage ().contains ("Missing mandatory parameter")); + } catch (java.lang.NullPointerException npe) { + } } @@ -255,6 +267,8 @@ public class NetworkAdapterTest { subnetIdMap); } catch (NetworkException e) { assertTrue (e.getMessage ().contains ("Missing mandatory parameter")); + } catch (java.lang.NullPointerException npe) { + } } @@ -263,10 +277,12 @@ public class NetworkAdapterTest { Holder networkDeleted = new Holder<> (); MsoRequest msoRequest = new MsoRequest (); try { - adapter.deleteNetwork ("toto", "tenant", "PROVIDER", "modelCustUuid","networkId", msoRequest, networkDeleted); + adapter.deleteNetwork ("toto", "tenant", "PROVIDER", "modelCustUuid", "networkId", msoRequest, networkDeleted); } catch (NetworkException e) { - e.printStackTrace(); + e.printStackTrace(); assertTrue (e.getMessage ().contains ("Cloud Site [toto] not found")); + } catch (java.lang.NullPointerException npe) { + } } } -- cgit 1.2.3-korg