From 9c53f8a0a41da36f8aff0235fe786c6b8b8e159b Mon Sep 17 00:00:00 2001 From: Ruth Devlaeminck Date: Wed, 21 Feb 2018 23:44:25 +0000 Subject: [PATCH] Change vim_images from a set to a list in order to maintain the order they were in in Metadata.yaml --- catalogue/build.gradle | 1 + .../mano/descriptor/VirtualDeploymentUnit.java | 10 +++++++--- .../openbaton/nfvo/core/api/VNFPackageManagement.java | 4 ++-- .../NetworkServiceRecordManagementClassSuiteTest.java | 4 ++-- .../VNFLifecycleOperationGrantingClassSuiteTest.java | 3 ++- .../TopologyTemplate/Nodes/VDU/VDUNodeTemplate.java | 10 +++++----- .../openbaton/vim_impl/vim/test/VimTestSuiteClass.java | 5 +++-- .../nfvo/vnfm_reg/tasks/GrantoperationTask.java | 7 +++---- 8 files changed, 25 insertions(+), 19 deletions(-) diff --git a/catalogue/build.gradle b/catalogue/build.gradle index 0ed8b9453..fba1e7786 100644 --- a/catalogue/build.gradle +++ b/catalogue/build.gradle @@ -32,6 +32,7 @@ dependencies { //compile 'org.springframework.boot:spring-boot-starter-data-jpa:'+ springBootVersion compile 'org.springframework.boot:spring-boot-starter-security:'+ springBootVersion compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.1-api', version: '1.0.2.Final' + compile group: 'org.hibernate', name: 'hibernate-core', version: '5.0.12.Final' compile 'com.fasterxml.jackson.core:jackson-annotations:2.8.6' //compile 'org.springframework.boot:spring-boot-starter-thymeleaf:'+ springBootVersion diff --git a/catalogue/src/main/java/org/openbaton/catalogue/mano/descriptor/VirtualDeploymentUnit.java b/catalogue/src/main/java/org/openbaton/catalogue/mano/descriptor/VirtualDeploymentUnit.java index e1fe74e20..459064484 100644 --- a/catalogue/src/main/java/org/openbaton/catalogue/mano/descriptor/VirtualDeploymentUnit.java +++ b/catalogue/src/main/java/org/openbaton/catalogue/mano/descriptor/VirtualDeploymentUnit.java @@ -17,6 +17,7 @@ package org.openbaton.catalogue.mano.descriptor; +import java.util.List; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.ElementCollection; @@ -25,6 +26,8 @@ import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.validation.constraints.Min; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; import org.openbaton.catalogue.mano.common.HighAvailability; import org.openbaton.catalogue.mano.common.LifecycleEvent; import org.openbaton.catalogue.mano.common.faultmanagement.FaultManagementPolicy; @@ -47,7 +50,8 @@ public class VirtualDeploymentUnit extends BaseEntity { * virtualisation containers as per (ETSI GS NFV-SWA 001 [i.8]). */ @ElementCollection(fetch = FetchType.EAGER) - private Set vm_image; + @Fetch(FetchMode.SELECT) + private List vm_image; /** Reference to the VDU (vnfd:vdu:id) used to instantiate this element. */ private String parent_vdu; /** @@ -129,11 +133,11 @@ public void setVnfc_instance(Set vnfc_instance) { this.vnfc_instance = vnfc_instance; } - public Set getVm_image() { + public List getVm_image() { return vm_image; } - public void setVm_image(Set vm_image) { + public void setVm_image(List vm_image) { this.vm_image = vm_image; } diff --git a/core/core-impl/src/main/java/org/openbaton/nfvo/core/api/VNFPackageManagement.java b/core/core-impl/src/main/java/org/openbaton/nfvo/core/api/VNFPackageManagement.java index b76e129b1..8e07f7578 100644 --- a/core/core-impl/src/main/java/org/openbaton/nfvo/core/api/VNFPackageManagement.java +++ b/core/core-impl/src/main/java/org/openbaton/nfvo/core/api/VNFPackageManagement.java @@ -610,7 +610,7 @@ public BaseNfvImage handleImage( image = vim.add(vimInstance, image, imageFile); } if (vdu.getVm_image() == null) { - vdu.setVm_image(new LinkedHashSet<>()); + vdu.setVm_image(new ArrayList<>()); } vdu.getVm_image().add(image.getExtId()); vimInstance = vimManagement.refresh(vimInstance, true).get(); @@ -629,7 +629,7 @@ public BaseNfvImage handleImage( .forEach( virtualDeploymentUnit -> { if (virtualDeploymentUnit.getVm_image() == null) { - virtualDeploymentUnit.setVm_image(new LinkedHashSet<>()); + virtualDeploymentUnit.setVm_image(new ArrayList<>()); } if (ids != null) virtualDeploymentUnit.getVm_image().addAll(ids); if (names != null) virtualDeploymentUnit.getVm_image().addAll(names); diff --git a/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/NetworkServiceRecordManagementClassSuiteTest.java b/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/NetworkServiceRecordManagementClassSuiteTest.java index 283a67956..966c300b1 100644 --- a/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/NetworkServiceRecordManagementClassSuiteTest.java +++ b/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/NetworkServiceRecordManagementClassSuiteTest.java @@ -494,7 +494,7 @@ private VirtualNetworkFunctionDescriptor createVirtualNetworkFunctionDescriptor( { VirtualDeploymentUnit vdu = new VirtualDeploymentUnit(); vdu.setVm_image( - new LinkedHashSet() { + new ArrayList() { { add("mocked_image"); } @@ -560,7 +560,7 @@ private NetworkServiceRecord createNetworkServiceRecord() { highAvailability.setResiliencyLevel(ResiliencyLevel.ACTIVE_STANDBY_STATELESS); vdu.setHigh_availability(highAvailability); vdu.setVm_image( - new LinkedHashSet() { + new ArrayList() { { add("mocked_image"); } diff --git a/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/VNFLifecycleOperationGrantingClassSuiteTest.java b/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/VNFLifecycleOperationGrantingClassSuiteTest.java index de66af664..3b649c47e 100644 --- a/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/VNFLifecycleOperationGrantingClassSuiteTest.java +++ b/core/core-impl/src/test/java/org/openbaton/nfvo/core/test/VNFLifecycleOperationGrantingClassSuiteTest.java @@ -24,6 +24,7 @@ import static org.openbaton.nfvo.core.test.TestUtils.createMinQuota; import static org.openbaton.nfvo.core.test.TestUtils.createVimInstance; +import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Map; @@ -127,7 +128,7 @@ private VirtualDeploymentUnit createVDU(int suffix, BaseVimInstance vimInstance) highAvailability.setResiliencyLevel(ResiliencyLevel.ACTIVE_STANDBY_STATELESS); vdu.setHigh_availability(highAvailability); vdu.setVm_image( - new HashSet() { + new ArrayList() { { add("mocked_image"); } diff --git a/tosca-parser/src/main/java/org/openbaton/tosca/templates/TopologyTemplate/Nodes/VDU/VDUNodeTemplate.java b/tosca-parser/src/main/java/org/openbaton/tosca/templates/TopologyTemplate/Nodes/VDU/VDUNodeTemplate.java index 79f275265..b0d3fa315 100755 --- a/tosca-parser/src/main/java/org/openbaton/tosca/templates/TopologyTemplate/Nodes/VDU/VDUNodeTemplate.java +++ b/tosca-parser/src/main/java/org/openbaton/tosca/templates/TopologyTemplate/Nodes/VDU/VDUNodeTemplate.java @@ -17,9 +17,9 @@ package org.openbaton.tosca.templates.TopologyTemplate.Nodes.VDU; -import java.util.LinkedHashSet; +import java.util.ArrayList; +import java.util.List; import java.util.Map; -import java.util.Set; import org.openbaton.tosca.templates.TopologyTemplate.Nodes.NodeTemplate; @SuppressWarnings({"unsafe", "unchecked"}) @@ -27,7 +27,7 @@ public class VDUNodeTemplate { private String type; private String name; - private Set artifacts = new LinkedHashSet<>(); + private List artifacts = new ArrayList<>(); private VDUProperties properties; public VDUNodeTemplate(NodeTemplate nodeTemplate, String name) { @@ -62,11 +62,11 @@ public void setType(String type) { this.type = type; } - public Set getArtifacts() { + public List getArtifacts() { return artifacts; } - public void setArtifacts(LinkedHashSet vduArtifact) { + public void setArtifacts(ArrayList vduArtifact) { this.artifacts = vduArtifact; } diff --git a/vim-impl/src/test/java/org/openbaton/vim_impl/vim/test/VimTestSuiteClass.java b/vim-impl/src/test/java/org/openbaton/vim_impl/vim/test/VimTestSuiteClass.java index 0c24299f5..d2c1edb3f 100644 --- a/vim-impl/src/test/java/org/openbaton/vim_impl/vim/test/VimTestSuiteClass.java +++ b/vim-impl/src/test/java/org/openbaton/vim_impl/vim/test/VimTestSuiteClass.java @@ -24,9 +24,10 @@ import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.when; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; -import java.util.LinkedHashSet; +import java.util.List; import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; @@ -225,7 +226,7 @@ private VirtualDeploymentUnit createVDU() { monitoring_parameter.add("parameter_3"); vdu.setMonitoring_parameter(monitoring_parameter); vdu.setComputation_requirement("m1.small"); - Set vm_images = new LinkedHashSet<>(); + List vm_images = new ArrayList<>(); vm_images.add("image_1234"); vdu.setVm_image(vm_images); vimInstance.setFlavours(new HashSet<>()); diff --git a/vnfm/vnfm-impl/src/main/java/org/openbaton/nfvo/vnfm_reg/tasks/GrantoperationTask.java b/vnfm/vnfm-impl/src/main/java/org/openbaton/nfvo/vnfm_reg/tasks/GrantoperationTask.java index 7cc97ef41..e226f684d 100644 --- a/vnfm/vnfm-impl/src/main/java/org/openbaton/nfvo/vnfm_reg/tasks/GrantoperationTask.java +++ b/vnfm/vnfm-impl/src/main/java/org/openbaton/nfvo/vnfm_reg/tasks/GrantoperationTask.java @@ -36,7 +36,6 @@ import org.openbaton.catalogue.nfvo.messages.OrVnfmGrantLifecycleOperationMessage; import org.openbaton.catalogue.nfvo.networks.BaseNetwork; import org.openbaton.catalogue.nfvo.viminstances.BaseVimInstance; -import org.openbaton.exceptions.AlreadyExistingException; import org.openbaton.exceptions.BadRequestException; import org.openbaton.exceptions.NotFoundException; import org.openbaton.exceptions.NsrNotFoundException; @@ -71,7 +70,7 @@ public class GrantoperationTask extends AbstractTask { @Value("${nfvo.quota.check:true}") private boolean checkQuota; - private final static Map lockMap = new HashMap<>(); + private static final Map lockMap = new HashMap<>(); @Value("${nfvo.networks.dedicated:false}") private boolean dedicatedNetworks; @@ -193,8 +192,8 @@ protected NFVMessage doWork() throws Exception { private void performChecks( BaseVimInstance vimInstance, VirtualDeploymentUnit virtualDeploymentUnit) - throws VimException, NotFoundException, BadRequestException, - IOException, InterruptedException, ExecutionException, PluginException { + throws VimException, NotFoundException, BadRequestException, IOException, + InterruptedException, ExecutionException, PluginException { Object lock; String key = String.format("%s%s", vimInstance.getName(), vimInstance.getProjectId()); synchronized (lockMap) {