diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8ea78d6c6187dd518ec9fb389aae2a666ba82c86..bb7d754baa751630b25598e182a30f062e9b6ebd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,13 +15,21 @@ include: rules: - if: '$CI_COMMIT_REF_NAME == "develop"' + - project: osl/code/org.etsi.osl.main + ref: $CI_COMMIT_REF_NAME + file: + - ci-templates/default.yml + - ci-templates/build.yml + rules: + - if: '$CI_COMMIT_REF_PROTECTED && $CI_COMMIT_REF_NAME != "main" && $CI_COMMIT_REF_NAME != "develop"' + - project: osl/code/org.etsi.osl.main ref: develop file: - ci-templates/default.yml - ci-templates/build_unprotected.yml rules: - - if: '$CI_COMMIT_REF_NAME != "main" && $CI_COMMIT_REF_NAME != "develop"' + - if: '$CI_COMMIT_REF_NAME != "main" && $CI_COMMIT_REF_NAME != "develop" && !$CI_COMMIT_REF_PROTECTED' maven_build: extends: .maven_build diff --git a/Dockerfile b/Dockerfile index c5f39895bf71ba4fbc8c0b17d711383ccb024b30..e7a7b05cf8fe304860bd076a7163a384075171d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM ibm-semeru-runtimes:open-17.0.7_7-jdk # RUN mkdir /opt/shareclasses RUN mkdir -p /opt/openslice/lib/ -COPY target/org.etsi.osl.tmf.api-1.0.0-SNAPSHOT-exec.jar /opt/openslice/lib/ -CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.tmf.api-1.0.0-SNAPSHOT-exec.jar"] +COPY target/org.etsi.osl.tmf.api-1.0.0-exec.jar /opt/openslice/lib/ +CMD ["java", "-Xshareclasses:cacheDir=/opt/shareclasses", "-jar", "/opt/openslice/lib/org.etsi.osl.tmf.api-1.0.0-exec.jar"] EXPOSE 13082 \ No newline at end of file diff --git a/pom.xml b/pom.xml index e7b37d77751b66fb5c74a79f7727119a0eec82be..885c3062d39c252078cdaf8636c69305ec312f2a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.etsi.osl org.etsi.osl.main - 1.0.0-SNAPSHOT + 1.0.0 ../org.etsi.osl.main @@ -75,11 +75,6 @@ pom import - - org.json - json - 20210307 - @@ -266,6 +261,13 @@ org.springframework.boot spring-boot-starter-test test + + + com.vaadin.external.google + android-json + + + org.springframework.security diff --git a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java index 9fd5474732f67d7b8ff4724701b111ff376a59bb..f2a517266d56a3334fbf812e3806a5a4ede9b5ed 100644 --- a/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/scm633/reposervices/ServiceSpecificationRepoService.java @@ -622,7 +622,7 @@ public class ServiceSpecificationRepoService { * Also, * we will add by default all the characteristics of this rSpec to the related bundle parent service */ - //serviceSpec = copyCharacteristicsOfResourceSpecId( ar.getId(), serviceSpec); + serviceSpec = copyCharacteristicsOfResourceSpecId( ar.getId(), serviceSpec); } } @@ -699,24 +699,24 @@ public class ServiceSpecificationRepoService { return targetServiceSpec; } -// private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) { -// -// ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid ); -// -// if ( rSpec != null ) { -// for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) { -// ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar ); -// //serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() ); -// serviceSpecCharacteristicItem.setName( sourceChar.getName() ); -// -// if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) { -// targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem ); -// } -// } -// } -// -// return targetServiceSpec; -// } + private ServiceSpecification copyCharacteristicsOfResourceSpecId(String sourceResourceSpecid, ServiceSpecification targetServiceSpec) { + + ResourceSpecification rSpec = resourceSpecRepoService.findByUuid( sourceResourceSpecid ); + + if ( rSpec != null ) { + for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) { + ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar ); + //serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() ); + serviceSpecCharacteristicItem.setName( sourceChar.getName() ); + + if ( targetServiceSpec.findSpecCharacteristicByName( serviceSpecCharacteristicItem.getName() ) == null ) { + targetServiceSpec.getServiceSpecCharacteristic().add( serviceSpecCharacteristicItem ); + } + } + } + + return targetServiceSpec; + } public ServiceSpecification cloneServiceSpecification(String uuid) { ServiceSpecification source = this.findByUuid(uuid); @@ -1144,7 +1144,7 @@ public class ServiceSpecificationRepoService { return null; } - logger.error("nsdid returned: " + nsd.getName()); + logger.debug("nsdid returned: " + nsd.getName()); List newRfservices = new ArrayList<>(); @@ -1422,11 +1422,11 @@ public class ServiceSpecificationRepoService { -// for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) { -// ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar ); + for (ResourceSpecificationCharacteristic sourceChar : rSpec.getResourceSpecCharacteristic()) { + ServiceSpecCharacteristic serviceSpecCharacteristicItem = copyResourceCharacteristic( sourceChar ); // serviceSpecCharacteristicItem.setName( rSpec.getName() + "::" +sourceChar.getName() ); -// serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem ); -// } + serviceSpec.addServiceSpecCharacteristicItem(serviceSpecCharacteristicItem ); + } ResourceSpecificationRef resourceSpecRef = new ResourceSpecificationRef(); @@ -1439,25 +1439,25 @@ public class ServiceSpecificationRepoService { return serviceSpec; } -// private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) { -// -// ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic(); -// serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription()); -// serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() ); -// serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable()); -// serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() ); -// serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality() ); -// serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() ); -// for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) { -// ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue(); -// serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias())); -// serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() ); -// serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() ); -// serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem ); -// } -// return serviceSpecCharacteristicItem; -// } -// + private ServiceSpecCharacteristic copyResourceCharacteristic( ResourceSpecificationCharacteristic sourceChar ) { + + ServiceSpecCharacteristic serviceSpecCharacteristicItem = new ServiceSpecCharacteristic(); + serviceSpecCharacteristicItem.setDescription( sourceChar.getDescription()); + serviceSpecCharacteristicItem.valueType( sourceChar.getValueType() ); + serviceSpecCharacteristicItem.configurable(sourceChar.isConfigurable()); + serviceSpecCharacteristicItem.setMinCardinality( sourceChar.getMinCardinality() ); + serviceSpecCharacteristicItem.setMaxCardinality( sourceChar.getMaxCardinality() ); + serviceSpecCharacteristicItem.setValidFor( sourceChar.getValidFor() ); + for (ResourceSpecificationCharacteristicValue cv : sourceChar.getResourceSpecCharacteristicValue()) { + ServiceSpecCharacteristicValue serviceSpecCharacteristicValueItem = new ServiceSpecCharacteristicValue(); + serviceSpecCharacteristicValueItem.setValue( new Any( cv.getValue().getValue(), cv.getValue().getAlias())); + serviceSpecCharacteristicValueItem.isDefault( cv.isIsDefault() ); + serviceSpecCharacteristicValueItem.setUnitOfMeasure( cv.getUnitOfMeasure() ); + serviceSpecCharacteristicItem.addServiceSpecCharacteristicValueItem(serviceSpecCharacteristicValueItem ); + } + return serviceSpecCharacteristicItem; + } + diff --git a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java index 55e38b6687ada1511b065fadd1fb68c4d99f290c..93afc976d554ffe86976320a3e0d56fd7b591191 100644 --- a/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/sim638/api/ServiceApiRouteBuilder.java @@ -20,12 +20,15 @@ package org.etsi.osl.tmf.sim638.api; import java.io.IOException; - +import java.util.Date; +import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; - +import org.apache.camel.Exchange; import org.apache.camel.LoggingLevel; +import org.apache.camel.Processor; import org.apache.camel.ProducerTemplate; +import org.apache.camel.RuntimeCamelException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.dataformat.JsonLibrary; import org.apache.commons.logging.Log; @@ -44,6 +47,11 @@ import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import org.etsi.osl.model.nfv.DeploymentDescriptor; +import org.etsi.osl.model.nfv.ExperimentMetadata; +import org.etsi.osl.model.nfv.Product; +import org.etsi.osl.model.nfv.ValidationJob; +import org.etsi.osl.model.nfv.ValidationStatus; +import org.etsi.osl.model.nfv.VxFMetadata; @Configuration //@RefreshScope @@ -111,6 +119,9 @@ public class ServiceApiRouteBuilder extends RouteBuilder { @Override public void configure() throws Exception { + + + from( CATALOG_ADD_SERVICE ) .log(LoggingLevel.INFO, log, CATALOG_ADD_SERVICE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") @@ -188,8 +199,7 @@ public class ServiceApiRouteBuilder extends RouteBuilder { .unmarshal().json( JsonLibrary.Jackson, DeploymentDescriptor.class, true) .bean( serviceRepoService, "nfvCatalogNSResourceChanged(${body})"); - - + from( EVENT_RESOURCE_STATE_CHANGED ) .log(LoggingLevel.INFO, log, EVENT_RESOURCE_STATE_CHANGED + " message received and will be processed for service inventory!") @@ -199,6 +209,13 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( EVENT_RESOURCE_CREATE ) + .errorHandler(deadLetterChannel("direct:retriesDeadLetters") + .maximumRedeliveries(5) + .redeliveryDelay(1000).useOriginalMessage() + .logExhausted(true) + .logHandled(true) + .retriesExhaustedLogLevel(LoggingLevel.ERROR) + .retryAttemptedLogLevel(LoggingLevel.ERROR)) .log(LoggingLevel.INFO, log, EVENT_RESOURCE_CREATE + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceCreateNotification.class, true) @@ -208,15 +225,33 @@ public class ServiceApiRouteBuilder extends RouteBuilder { from( EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED ) + .errorHandler(deadLetterChannel("direct:retriesDeadLetters") + .maximumRedeliveries(5) + .redeliveryDelay(1000).useOriginalMessage() + .logExhausted(true) + .logHandled(true) + .retriesExhaustedLogLevel(LoggingLevel.ERROR) + .retryAttemptedLogLevel(LoggingLevel.ERROR)) + .log(LoggingLevel.INFO, log, EVENT_RESOURCE_ATTRIBUTE_VALUE_CHANGED + " message received and will be processed for service inventory!") .to("log:DEBUG?showBody=true&showHeaders=true") .unmarshal().json( JsonLibrary.Jackson, ResourceAttributeValueChangeNotification.class, true) .bean( serviceRepoService, "resourceAttrChangedEvent(${body})"); + + /** + * dead Letter Queue msgs if everything fails to connect + */ + from("direct:retriesDeadLetters") + //.setBody() + //.body(String.class) + //.process( ErroneousValidationProcessor ) + .to("log:DEBUG?showBody=true&showHeaders=true") + .to("stream:out"); } - + static String toJsonString(Object object) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); diff --git a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java index 6b65eb616ce5d634898dcadc46f8e94a39f83f9d..eaf0609a083947ceee28114efacb3f886ee9b9f2 100644 --- a/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java @@ -818,6 +818,7 @@ public class ServiceRepoService { // this.updateService( parentServiceId, servUpd, false, null, childService); // } + @Transactional public String getServiceEagerAsString(String id) throws JsonProcessingException { Service s = this.getServiceEager(id); ObjectMapper mapper = new ObjectMapper(); @@ -837,7 +838,8 @@ public class ServiceRepoService { return res; } - + + @Transactional public Service getServiceEager(String id) { if ( id == null || id.equals("")) { return null; @@ -904,6 +906,7 @@ public class ServiceRepoService { /** * @return */ + @Transactional public List findAllServiceActionQueueItems() { return (List) this.serviceActionQueueRepo.findFirst10ByOrderByInsertedDate(); @@ -934,6 +937,7 @@ public class ServiceRepoService { * @param id * @return */ + @Transactional public Void deleteServiceActionQueueItemByUuid(String id) { Optional optso = this.serviceActionQueueRepo.findByUuid(id); @@ -1077,61 +1081,79 @@ public class ServiceRepoService { @Transactional public void resourceAttrChangedEvent(@Valid ResourceAttributeValueChangeNotification resNotif) { + try { + + logger.debug("ResourceAttributeValueChangeNotification"); + Resource res = resNotif.getEvent().getEvent().getResource(); + logger.info("Will update services related to this resource with id = " + res.getId() ); + + var aservices = findServicesHavingThisSupportingResourceID( res.getId() ); + + for (Service as : aservices) { + + Service aService = findByUuid(as.getId()); + + //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { + + + ServiceUpdate supd = new ServiceUpdate(); + + //copy characteristics from resource to service + + for (org.etsi.osl.tmf.ri639.model.Characteristic rChar : res.getResourceCharacteristic()) { + Characteristic cNew = new Characteristic(); + cNew.setName( rChar.getName()); + cNew.value( new Any( rChar.getValue() )); + supd.addServiceCharacteristicItem( cNew ); + } + + + Note n = new Note(); + n.setText("Supporting Resource Attribute Changed with id: " + res.getId()); + n.setAuthor( "SIM638-API" ); + n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); + supd.addNoteItem( n ); + + this.updateService( aService.getId(), supd , true, null, null); //update the service + //} + } - logger.debug("ResourceAttributeValueChangeNotification"); - Resource res = resNotif.getEvent().getEvent().getResource(); - logger.info("Will update services related to this resource with id = " + res.getId() ); - - var aservices = findServicesHavingThisSupportingResourceID( res.getId() ); - - for (Service as : aservices) { - - Service aService = findByUuid(as.getId()); - - //if ( aService.getState().equals( ServiceStateType.ACTIVE ) ) { - - ServiceUpdate supd = new ServiceUpdate(); - - //copy characteristics from resource to service - - for (org.etsi.osl.tmf.ri639.model.Characteristic rChar : res.getResourceCharacteristic()) { - Characteristic cNew = new Characteristic(); - cNew.setName( rChar.getName()); - cNew.value( new Any( rChar.getValue() )); - supd.addServiceCharacteristicItem( cNew ); - } - - - Note n = new Note(); - n.setText("Supporting Resource Attribute Changed with id: " + res.getId()); - n.setAuthor( "SIM638-API" ); - n.setDate( OffsetDateTime.now(ZoneOffset.UTC).toString() ); - supd.addNoteItem( n ); - - this.updateService( aService.getId(), supd , true, null, null); //update the service - //} + }catch (Exception e) { + e.printStackTrace(); } } @Transactional - public void resourceCreatedEvent(@Valid ResourceCreateNotification resNotif) { - logger.debug("resourceCreatedEvent"); - Resource res = resNotif.getEvent().getEvent().getResource(); - updateServiceFromresourceChange(res); + public void resourceCreatedEvent(@Valid ResourceCreateNotification resNotif) { + try { + Resource res = resNotif.getEvent().getEvent().getResource(); + logger.debug("resourceCreatedEvent for: " + res.getName()); + updateServiceFromresourceChange(res); + }catch (Exception e) { + e.printStackTrace(); + } + } @Transactional public void resourceStateChangedEvent(@Valid ResourceStateChangeNotification resNotif) { + try { + + Resource res = resNotif.getEvent().getEvent().getResource(); + logger.debug("resourceStateChangedEvent for: " + res.getName()); + updateServiceFromresourceChange(res); - logger.debug("resourceStateChangedEvent"); - Resource res = resNotif.getEvent().getEvent().getResource(); - updateServiceFromresourceChange(res); + }catch (Exception e) { + e.printStackTrace(); + } + } - + + @Transactional private void updateServiceFromresourceChange(Resource res) { logger.info("Will update services related to this resource with id = " + res.getId() ); @@ -1172,11 +1194,20 @@ public class ServiceRepoService { } + @Transactional private void updateResourceFromKubernetesLabel(Resource res) { + logger.debug("updateResourceFromKubernetesLabel for: " + res.getName()); + if (res.getResourceCharacteristicByName("org.etsi.osl.serviceId") != null) { + + + logger.debug("org.etsi.osl.serviceId found "); String serviceId = res.getResourceCharacteristicByName("org.etsi.osl.serviceId").getValue().getValue(); + logger.debug("rserviceId: " + serviceId); + Service aService = findByUuid( serviceId ); if ( aService !=null ) { + logger.debug("aService found "); Boolean resourceFoundInSupportedResourcesOfService = false; for (ResourceRef as : aService.getSupportingResource()) { if ( as.getId().equals( res.getId() )) { @@ -1184,7 +1215,8 @@ public class ServiceRepoService { break; } } - + + logger.debug("resourceFoundInSupportedResourcesOfService= " + resourceFoundInSupportedResourcesOfService); if ( !resourceFoundInSupportedResourcesOfService ) { ServiceUpdate supd = new ServiceUpdate(); diff --git a/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java b/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java index 64557ad5e9fdda97daa56ba449b5232ee0e21740..ca5a5da3e4c0772800eb817a203c5f1ea0765d81 100644 --- a/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java +++ b/src/main/java/org/etsi/osl/tmf/util/PrimitivesParser.java @@ -34,6 +34,7 @@ import org.yaml.snakeyaml.Yaml; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @@ -107,10 +108,20 @@ public class PrimitivesParser { public static JSONObject processNSD(NetworkServiceDescriptor nsd) { // Parse the NSD descriptor from string to YAML Yaml yaml = new Yaml(); - Map yamlMap = yaml.load(nsd.getDescriptor()); - - // Parse the NSD descriptor from YAML to JSONObject - JSONObject nsdJson = new JSONObject(yamlMap); + JSONObject nsdJson; + + Object obj = yaml.load(nsd.getDescriptor()); + + if ( obj instanceof ArrayList) { + // Parse the NSD descriptor from YAML to JSONObject + nsdJson = new JSONObject( (ArrayList)obj ); + + }else { + Map yamlMap = ( Map ) obj; + // Parse the NSD descriptor from YAML to JSONObject + nsdJson = new JSONObject(yamlMap); + } + return nsdJson; } @@ -135,7 +146,10 @@ public class PrimitivesParser { if (descriptor.trim().startsWith("[")) { // It's JSON vnfdJson = new JSONObject(descriptor.substring(1, descriptor.length() - 1)); - } else { + } else if (descriptor.trim().startsWith("{")) { + // It's JSON + vnfdJson = new JSONObject(descriptor); + } else{ // It's YAML Yaml yaml = new Yaml(); Map yamlMap = yaml.load(descriptor); @@ -164,8 +178,14 @@ public class PrimitivesParser { // Attach the empty array to the JSONObject under the key "vnfs" vnfs.put("vnfs", vnfsArray); - - JSONArray nsdArray = nsdJson.getJSONObject("nsd").getJSONArray("nsd"); + JSONArray nsdArray = null; + if ( nsdJson.has("nsd") ) { + nsdArray = nsdJson.getJSONObject("nsd").getJSONArray("nsd"); + } else { + nsdArray = new JSONArray(); + nsdArray.put(nsdJson); + } + // Assuming that there might be multiple 'nsd' entries, iterate over them processNSDEntries(nsdArray, vnfsArray); diff --git a/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java index 926f88a057a13ce54fea11eea9a5825f2b57029e..02aa8e095c94224861e518136431600a89d9f4c9 100644 --- a/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ResourceCatalogIntegrationTest.java @@ -76,6 +76,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -95,7 +96,7 @@ import net.minidev.json.JSONObject; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( diff --git a/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java index 6a865af5a25be13727697257f5240b843a02174a..511e46c84b9ab994d590da4509d15973b09554c7 100644 --- a/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ServiceCatalogIntegrationTest.java @@ -855,7 +855,7 @@ public class ServiceCatalogIntegrationTest { * */ - assertThat( clonedSpec.getServiceSpecCharacteristic().size() ).isEqualTo( 70 ); + assertThat( clonedSpec.getServiceSpecCharacteristic().size() ).isEqualTo( 71 ); String responseSpecClonedVINNI2 = mvc.perform(MockMvcRequestBuilders.get("/serviceCatalogManagement/v4/serviceSpecification/cloneVINNI?serviceName=aVINNIService") diff --git a/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java index d31dd72da06a1f5aa54e6b05338769738e96b750..16ad168abce52debb68d788ab7467a9a0ea096dd 100644 --- a/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java @@ -66,6 +66,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; @@ -83,7 +84,7 @@ import org.springframework.web.context.WebApplicationContext; @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( diff --git a/src/test/java/org/etsi/osl/services/api/sim638/ServiceApiControllerTest.java b/src/test/java/org/etsi/osl/services/api/sim638/ServiceApiControllerTest.java index afdebd6bb882254a887e80a128320525e5ab71f6..5c59431d0b5ac8e2852034a9cf4afb292078ac99 100644 --- a/src/test/java/org/etsi/osl/services/api/sim638/ServiceApiControllerTest.java +++ b/src/test/java/org/etsi/osl/services/api/sim638/ServiceApiControllerTest.java @@ -17,6 +17,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.HttpStatus; @@ -51,7 +52,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @RunWith(SpringRunner.class) @Transactional @SpringBootTest( webEnvironment = SpringBootTest.WebEnvironment.MOCK , classes = OpenAPISpringBoot.class) -//@AutoConfigureTestDatabase //this automatically uses h2 +@AutoConfigureTestDatabase //this automatically uses h2 @AutoConfigureMockMvc @ActiveProfiles("testing") //@TestPropertySource( diff --git a/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java b/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java index a3ea0b35041c947db4a420d0460150cbeadca245..c5e308251e6bfdef4a532431393d966cc46d86fa 100644 --- a/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java +++ b/src/test/java/org/etsi/osl/services/reposervices/scm633/ServiceSpecificationRepoServiceTest.java @@ -446,7 +446,8 @@ public class ServiceSpecificationRepoServiceTest { alias = v.getAlias(); assertEquals("PrimitivesList", serviceSpecCharacteristic.getName()); - assertEquals("{\"vnfs\":[{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vnf1\",\"vdu-configs\":[{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu1\"},{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu2\"}]},{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vnf2\",\"vdu-configs\":[{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu1\"},{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu2\"}]}]}", value); +// assertEquals("{\"vnfs\":[{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vnf1\",\"vdu-configs\":[{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu1\"},{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu2\"}]},{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vnf2\",\"vdu-configs\":[{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu1\"},{\"config-primitive\":[{\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}],\"name\":\"run-touch-command\"}],\"id\":\"vdu2\"}]}]}", value); + assertEquals("{\"vnfs\":[{\"config-primitive\":[{\"name\":\"run-touch-command\",\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}]}],\"id\":\"vnf1\",\"vdu-configs\":[{\"config-primitive\":[{\"name\":\"run-touch-command\",\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}]}],\"id\":\"vdu1\"},{\"config-primitive\":[{\"name\":\"run-touch-command\",\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}]}],\"id\":\"vdu2\"}]},{\"config-primitive\":[{\"name\":\"run-touch-command\",\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}]}],\"id\":\"vnf2\",\"vdu-configs\":[{\"config-primitive\":[{\"name\":\"run-touch-command\",\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}]}],\"id\":\"vdu1\"},{\"config-primitive\":[{\"name\":\"run-touch-command\",\"parameter\":[{\"name\":\"filename\",\"data-type\":\"STRING\"}]}],\"id\":\"vdu2\"}]}]}", value); assertEquals("", alias);