Commit 8d907547 authored by Eduardo Santos's avatar Eduardo Santos
Browse files

NSLCM status is now array with all status + tests

parent 155d6715
Loading
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -75,6 +75,11 @@
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.json</groupId>
				<artifactId>json</artifactId>
				<version>20210307</version>
			</dependency>
		</dependencies>

	</dependencyManagement>
@@ -415,6 +420,30 @@
					<classifier>exec</classifier>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.2.5</version>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.12</version>
				<executions>
					<execution>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>report</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>

	</build>
+78 −5
Original line number Diff line number Diff line
@@ -19,9 +19,16 @@
 */
package org.etsi.osl.tmf.sim638.service;

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -29,6 +36,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule;
import org.apache.commons.logging.Log;
@@ -192,7 +200,7 @@ public class ServiceRepoService {
								                result.put("serviceOrder", new ArrayList<Object>() ) ;							            		
							            	}
							            	ArrayList< Object> rpList =  (ArrayList< Object>) result.get( "serviceOrder" );
							            	LinkedHashMap<String, Object> rp = new LinkedHashMap<String, Object>();
							            	LinkedHashMap<String, Object> rp = new LinkedHashMap<>();
							            	rp.put("id", tuple[i]);							            	
							            	rpList.add(rp);
							            }
@@ -464,6 +472,7 @@ public class ServiceRepoService {

		boolean serviceCharacteristicChanged = false;
		boolean serviceCharacteristicChangedContainsPrimitive = false;
		boolean serviceCharacteristicChangedContainsNSLCM;
		
		String charChangedForNotes = "";
		//List<Characteristic> childCharacteristicsChanged = new ArrayList<>();
@@ -474,6 +483,7 @@ public class ServiceRepoService {
		
		if ( servUpd.getServiceCharacteristic()!=null ) {
			for (Characteristic n : servUpd.getServiceCharacteristic()) {
				serviceCharacteristicChangedContainsNSLCM = false;
				
					if ( service.getServiceCharacteristicByName( n.getName() )!= null ) {
						
@@ -493,12 +503,26 @@ public class ServiceRepoService {
                                serviceCharacteristicChangedContainsPrimitive = true;
                              }

							  // Check if the name contains "NSLCM"
							  if (n.getName().toUpperCase().contains("NSLCM")) {
							  	// Flag to indicate that service characteristic with NSLCM is present
							  	serviceCharacteristicChangedContainsNSLCM = true;
  
							  	// Update the NSLCM Characteristic
							  	updateNSLCMCharacteristic(service, n);
							  }

								
							}
						}
						
						 // As the NSLCM Characteristic was already updated, skip that one
						 if (!serviceCharacteristicChangedContainsNSLCM) {
							service.getServiceCharacteristicByName( n.getName() ).setValue( 
									new Any( n.getValue().getValue(), n.getValue().getAlias()  )
									);
						 }

					} else {
						service.addServiceCharacteristicItem(n);
						if ( !n.getName().contains("::") ) { //it is not a child characteristic
@@ -730,6 +754,55 @@ public class ServiceRepoService {
		return service;
	}

	/**
     * Updates the NSLCM characteristic within a given service.
     *
     * @param service The service object containing the characteristics.
     * @param n       The characteristic object to be checked and potentially updated.
     */
    public void updateNSLCMCharacteristic(Service service, Characteristic n) {
        // Create an object mapper for JSON serialization/deserialization
        ObjectMapper primitivesObjectMapper = new ObjectMapper();

        // Retrieve the service characteristic based on the name
        Characteristic NSLCMCharacteristic = service.getServiceCharacteristicByName(n.getName());

        // Retrieve the current value as a string directly from the service characteristic
        String NSLCMCharacteristicValue = service.getServiceCharacteristicByName(n.getName()).getValue().getValue();

        // Check if the current service characteristic value is null or explicitly "null" and initialize if needed
        if (NSLCMCharacteristicValue == null || "null".equals(NSLCMCharacteristicValue) || NSLCMCharacteristicValue == "") {
            service.getServiceCharacteristicByName(n.getName()).getValue().setValue("[]");
        }

        // Check if the current characteristic value is not null and not explicitly "null"
        if (n.getValue().getValue() != null || !"null".equals(n.getValue().getValue())) {
			NSLCMCharacteristicValue = service.getServiceCharacteristicByName(n.getName()).getValue().getValue();

            ArrayList<String> arrayList = null;

            // Deserialize the current value back to an array list
            try {
                arrayList = primitivesObjectMapper.readValue(NSLCMCharacteristicValue, new TypeReference<ArrayList<String>>() {});
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }

            // Add the new value to the list if it's not already present and is not null
            if (!arrayList.contains(n.getValue().getValue()) && n.getValue().getValue() != null) {
                arrayList.add(n.getValue().getValue());
            }

            // Update the characteristic with the newly modified list
            try {
                NSLCMCharacteristic.setValue(new Any(primitivesObjectMapper.writeValueAsString(arrayList), n.getValue().getAlias()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }
    }


	/**
	 * @param service
	 * @param parentService
+660 −0

File added.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Diff line number Diff line
{"uuid":"910146b3-67e9-4d8f-8141-066c6ca7ab60","endDate":"2024-05-30T10:39:42.142Z","startDate":"2024-05-29T10:40:07.811452Z","description":"A Service for tutorial_ns@osm14","@baseType":"BaseRootNamedEntity","@schemaLocation":null,"@type":"ResourceFacingService","href":null,"name":"tutorial_ns@osm14","id":"910146b3-67e9-4d8f-8141-066c6ca7ab60","category":"ResourceFacingService","hasStarted":false,"isServiceEnabled":false,"isStateful":null,"serviceDate":"2024-05-29T10:40:07.811412476Z","serviceType":"tutorial_ns@osm14","startMode":"AUTOMATICALLY_MANAGED","note":[{"uuid":"e5eb63a2-0660-4027-bb77-3d5d946854e2","date":"2024-05-29T10:40:08.018182Z","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"author":"API","system":null,"text":"Service reserved"},{"uuid":"7ea7a9fc-c04a-46bc-908f-0c6e9a9b3d5c","date":"2024-05-29T10:40:08.006718Z","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"author":"openslice-osom","system":null,"text":"Service Created by CreateReservedService"}],"place":[],"relatedParty":[],"serviceCharacteristic":[{"uuid":"0126b0b1-96ea-4490-9302-6a61cf7567a7","value":{"value":"338d3a8c-af70-446a-af37-ed8bb97a6641","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OSM_NSDCATALOGID","valueType":"TEXT"},{"uuid":"ef5df2c3-ff08-43aa-aa28-9b03b3ac72b9","value":{"value":"1","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"MANOproviderID","valueType":"TEXT"},{"uuid":"df7a9636-2897-4ba3-a533-ad3ffe37df2d","value":{"value":"2","alias":"id"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"NSDID","valueType":"TEXT"},{"uuid":"fc1987da-497d-47c3-8f03-6c3bf6f10716","value":{"value":"osm14","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"MANOproviderName","valueType":"TEXT"},{"uuid":"9ab40cb6-05e5-4ad3-aeed-e29870de6011","value":{"value":"f6f1ad7f-b312-4ba0-8f21-de1d42cb2451","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OnBoardDescriptorUUID","valueType":"TEXT"},{"uuid":"58bc2253-0392-4543-8f28-14c1052feb2f","value":{"value":"2","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OnBoardDescriptorID","valueType":"TEXT"},{"uuid":"927823e7-e6fc-4836-97f0-db5d89b29cde","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"SSHKEY","valueType":"TEXT"},{"uuid":"e3d3d14c-cc84-47e0-9688-cffe8b834a6f","value":{"value":"1","alias":"tutorial_vnf"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"MemberVNFIndex_1","valueType":"TEXT"},{"uuid":"7bec87f6-66ce-4bc2-a75b-64cf01b60306","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"ConstituentVnfrIps","valueType":"TEXT"},{"uuid":"89bd345e-d059-4747-919e-c3c4739b9b08","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"NSLCM","valueType":"TEXT"},{"uuid":"85e4fbee-b04c-44c6-8cad-3397f198e02f","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"InstanceId","valueType":"TEXT"},{"uuid":"ad3e9d1b-9962-4500-9f8e-0b345d787895","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"NSR","valueType":"TEXT"},{"uuid":"ffc62ede-f9d5-4122-81b4-a177228d122f","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"APPLY_CONFIG","valueType":"TEXT"},{"uuid":"ee317935-873a-4098-9f2b-0657ffad0709","value":{"value":"OSMvTHIRTEEN","alias":"PackagingFormat"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"PackagingFormat","valueType":"TEXT"},{"uuid":"aa0b88ca-df0b-400a-83c8-d8348b04aec3","value":{"value":"http://10.255.28.246/osapi/packages/612960a2-878c-468f-990d-e2f6a2a8277c/tutorial_ns.tar.gz","alias":"PackageLocation"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"PackageLocation","valueType":"TEXT"},{"uuid":"d274700a-095b-4e77-bc94-b27f895c0924","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OperationalStatus","valueType":"TEXT"},{"uuid":"1f094954-636e-4154-b6c8-3d6f23bde9da","value":{"value":"blockdiag {default_textcolor = white;\r\ndefault_fontsize = 12;\r\n\r\n\"8fa5bfa8-4394-40aa-9d29-97c15c5f457a\" -> \"f2bb6576-2525-4c13-897b-954c9f80395b\";\r\n\"f2bb6576-2525-4c13-897b-954c9f80395b\" [ label = \"tutorial_ns\", shape = roundedbox, color = \"#e28743\"]; \"8fa5bfa8-4394-40aa-9d29-97c15c5f457a\" [ label = \"tutorial_ns@osm14\", color = \"#2596be\"]; }","alias":"SSPEC_GRAPH_NOTATION"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"SSPEC_GRAPH_NOTATION","valueType":"LONGTEXT"},{"uuid":"ada9a1e1-5861-42a1-aa50-272eafe5c25a","value":{"value":"ONBOARDED","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OnBoardingStatus","valueType":"TEXT"},{"uuid":"2885b48f-35b8-4333-ad8e-c9ac0c38da31","value":{"value":null,"alias":"Vendor"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Vendor","valueType":"TEXT"},{"uuid":"e1a03f20-a8fe-4618-9518-adc738498f09","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"DeploymentRequestID","valueType":"TEXT"},{"uuid":"9ebc771d-2eb0-4bdb-a326-32f78a51cea2","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"VNFINDEXREF_INFO_1","valueType":"TEXT"},{"uuid":"08e48a23-c2b7-40b5-887f-e2a48cea72d4","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"ConfigStatus","valueType":"TEXT"},{"uuid":"37ad7be3-d9ff-463d-b4ee-b6a83a2d3a54","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Status","valueType":"TEXT"},{"uuid":"57380d7d-7cee-481f-9eb2-3a075558322c","value":{"value":"{\"nsdId\":\"338d3a8c-af70-446a-af37-ed8bb97a6641\", \"vimAccountId\":\"479356bf-72ff-4dfd-8483-5c23f48dd0bc\"}","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OSM_CONFIG","valueType":"TEXT"}],"serviceOrder":[{"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"id":"65bcf307-1a47-4a48-b211-be94c3390b81","serviceOrderItemId":"47ac2dab-c7fe-431d-9d1c-c39980f1de5b","@referredType":null}],"serviceRelationship":[],"serviceSpecification":{"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"tutorial_ns@osm14","version":null,"targetServiceSchema":null,"@referredType":null,"id":"8fa5bfa8-4394-40aa-9d29-97c15c5f457a"},"state":"reserved","supportingResource":[],"supportingService":[]}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
{"uuid":"910146b3-67e9-4d8f-8141-066c6ca7ab60","endDate":"2024-05-30T10:39:42.142Z","startDate":"2024-05-29T10:40:07.811452Z","description":"A Service for tutorial_ns@osm14","@baseType":"BaseRootNamedEntity","@schemaLocation":null,"@type":"ResourceFacingService","href":null,"name":"tutorial_ns@osm14","id":"910146b3-67e9-4d8f-8141-066c6ca7ab60","category":"ResourceFacingService","hasStarted":false,"isServiceEnabled":false,"isStateful":null,"serviceDate":"2024-05-29T10:40:07.811412476Z","serviceType":"tutorial_ns@osm14","startMode":"AUTOMATICALLY_MANAGED","note":[{"uuid":"e5eb63a2-0660-4027-bb77-3d5d946854e2","date":"2024-05-29T10:40:08.018182Z","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"author":"API","system":null,"text":"Service reserved"},{"uuid":"7ea7a9fc-c04a-46bc-908f-0c6e9a9b3d5c","date":"2024-05-29T10:40:08.006718Z","@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"author":"openslice-osom","system":null,"text":"Service Created by CreateReservedService"}],"place":[],"relatedParty":[],"serviceCharacteristic":[{"uuid":"0126b0b1-96ea-4490-9302-6a61cf7567a7","value":{"value":"338d3a8c-af70-446a-af37-ed8bb97a6641","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OSM_NSDCATALOGID","valueType":"TEXT"},{"uuid":"ef5df2c3-ff08-43aa-aa28-9b03b3ac72b9","value":{"value":"1","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"MANOproviderID","valueType":"TEXT"},{"uuid":"df7a9636-2897-4ba3-a533-ad3ffe37df2d","value":{"value":"2","alias":"id"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"NSDID","valueType":"TEXT"},{"uuid":"fc1987da-497d-47c3-8f03-6c3bf6f10716","value":{"value":"osm14","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"MANOproviderName","valueType":"TEXT"},{"uuid":"9ab40cb6-05e5-4ad3-aeed-e29870de6011","value":{"value":"f6f1ad7f-b312-4ba0-8f21-de1d42cb2451","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OnBoardDescriptorUUID","valueType":"TEXT"},{"uuid":"58bc2253-0392-4543-8f28-14c1052feb2f","value":{"value":"2","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OnBoardDescriptorID","valueType":"TEXT"},{"uuid":"927823e7-e6fc-4836-97f0-db5d89b29cde","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"SSHKEY","valueType":"TEXT"},{"uuid":"e3d3d14c-cc84-47e0-9688-cffe8b834a6f","value":{"value":"1","alias":"tutorial_vnf"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"MemberVNFIndex_1","valueType":"TEXT"},{"uuid":"7bec87f6-66ce-4bc2-a75b-64cf01b60306","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"ConstituentVnfrIps","valueType":"TEXT"},{"uuid":"89bd345e-d059-4747-919e-c3c4739b9b08","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"NSLCM","valueType":"TEXT"},{"uuid":"85e4fbee-b04c-44c6-8cad-3397f198e02f","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"InstanceId","valueType":"TEXT"},{"uuid":"ad3e9d1b-9962-4500-9f8e-0b345d787895","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"NSR","valueType":"TEXT"},{"uuid":"ffc62ede-f9d5-4122-81b4-a177228d122f","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"APPLY_CONFIG","valueType":"TEXT"},{"uuid":"ee317935-873a-4098-9f2b-0657ffad0709","value":{"value":"OSMvTHIRTEEN","alias":"PackagingFormat"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"PackagingFormat","valueType":"TEXT"},{"uuid":"aa0b88ca-df0b-400a-83c8-d8348b04aec3","value":{"value":"http://10.255.28.246/osapi/packages/612960a2-878c-468f-990d-e2f6a2a8277c/tutorial_ns.tar.gz","alias":"PackageLocation"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"PackageLocation","valueType":"TEXT"},{"uuid":"d274700a-095b-4e77-bc94-b27f895c0924","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OperationalStatus","valueType":"TEXT"},{"uuid":"1f094954-636e-4154-b6c8-3d6f23bde9da","value":{"value":"blockdiag {default_textcolor = white;\r\ndefault_fontsize = 12;\r\n\r\n\"8fa5bfa8-4394-40aa-9d29-97c15c5f457a\" -> \"f2bb6576-2525-4c13-897b-954c9f80395b\";\r\n\"f2bb6576-2525-4c13-897b-954c9f80395b\" [ label = \"tutorial_ns\", shape = roundedbox, color = \"#e28743\"]; \"8fa5bfa8-4394-40aa-9d29-97c15c5f457a\" [ label = \"tutorial_ns@osm14\", color = \"#2596be\"]; }","alias":"SSPEC_GRAPH_NOTATION"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"SSPEC_GRAPH_NOTATION","valueType":"LONGTEXT"},{"uuid":"ada9a1e1-5861-42a1-aa50-272eafe5c25a","value":{"value":"ONBOARDED","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OnBoardingStatus","valueType":"TEXT"},{"uuid":"2885b48f-35b8-4333-ad8e-c9ac0c38da31","value":{"value":null,"alias":"Vendor"},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Vendor","valueType":"TEXT"},{"uuid":"e1a03f20-a8fe-4618-9518-adc738498f09","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"DeploymentRequestID","valueType":"TEXT"},{"uuid":"9ebc771d-2eb0-4bdb-a326-32f78a51cea2","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"VNFINDEXREF_INFO_1","valueType":"TEXT"},{"uuid":"08e48a23-c2b7-40b5-887f-e2a48cea72d4","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"ConfigStatus","valueType":"TEXT"},{"uuid":"37ad7be3-d9ff-463d-b4ee-b6a83a2d3a54","value":{"value":"","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"Status","valueType":"TEXT"},{"uuid":"57380d7d-7cee-481f-9eb2-3a075558322c","value":{"value":"{\"nsdId\":\"338d3a8c-af70-446a-af37-ed8bb97a6641\", \"vimAccountId\":\"479356bf-72ff-4dfd-8483-5c23f48dd0bc\"}","alias":""},"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"OSM_CONFIG","valueType":"TEXT"}],"serviceOrder":[{"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"id":"65bcf307-1a47-4a48-b211-be94c3390b81","serviceOrderItemId":"47ac2dab-c7fe-431d-9d1c-c39980f1de5b","@referredType":null}],"serviceRelationship":[],"serviceSpecification":{"@baseType":"BaseEntity","@schemaLocation":null,"@type":null,"href":null,"name":"tutorial_ns@osm14","version":null,"targetServiceSchema":null,"@referredType":null,"id":"8fa5bfa8-4394-40aa-9d29-97c15c5f457a"},"state":"reserved","supportingResource":[],"supportingService":[]}
 No newline at end of file
Loading