private final static String INTERNAL_MODIFY_URL = "/onap/so/infra/3gppservices/{apiVersion}/modify";
//
- private final static String EXTERNAL_QUERY_JOB_STATUS =
- "/api/rest/provMns/{apiVersion}/NSS/jobs/{jobId}?responseId={responseId}";
+ private final static String EXTERNAL_QUERY_JOB_STATUS = "/api/rest/provMns/{apiVersion}/NSS/jobs/{jobId}";
private final static String INTERNAL_QUERY_SUB_NET_CAPABILITY =
"/onap/so/infra/3gppservices/{apiVersion}/subnetCapabilityQuery";
@Getter
public enum ActionType {
+ /**
+ * allocate
+ */
ALLOCATE("allocate"),
DEALLOCATE("deallocate"),
ActionType(String type) {
this.type = type;
}
+
+ public static ActionType getActionType(String value) {
+ for (ActionType actionType : ActionType.values()) {
+ if (actionType.type.equalsIgnoreCase(value)) {
+ return actionType;
+ }
+ }
+ return null;
+ }
}
import org.onap.so.beans.nsmf.*;
import org.onap.so.db.request.beans.ResourceOperationStatus;
import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Example;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
import static org.onap.so.adapters.nssmf.util.NssmfAdapterUtil.marshal;
public abstract class BaseNssmfManager implements NssmfManager {
+ private static final Logger logger = LoggerFactory.getLogger(BaseNssmfManager.class);
+
protected RestUtil restUtil;
protected ResourceOperationStatusRepository repository;
ResourceOperationStatus status =
getOperationStatus(serviceInfo.getNsiId(), jobId, serviceInfo.getServiceUuid());
+ logger.info("ResourceOperationStatus = {}", status);
this.restResponse = doQueryJobStatus(status);
afterQueryJobStatus(status);
private ResourceOperationStatus getOperationStatus(String nsiId, String jobId, String serviceUuid) {
+ logger.info("Query operations: nsiId = [{}], jobId = [{}], serviceUuid = [{}]", nsiId, jobId, serviceUuid);
+
ResourceOperationStatus status = new ResourceOperationStatus(nsiId, jobId, serviceUuid);
- Optional<ResourceOperationStatus> optional = repository.findOne(Example.of(status));
+ List<ResourceOperationStatus> resourceOperationStatuses =
+ repository.findByServiceIdAndOperationId(nsiId, jobId);
- return optional.orElse(null);
+ logger.info("resourceOperationStatuses = {}", resourceOperationStatuses);
+ if (resourceOperationStatuses.size() == 0) {
+ return null;
+ }
+ return resourceOperationStatuses.get(0);
}
@Override
@Override
protected void afterQueryJobStatus(ResourceOperationStatus status) {
+ logger.info("afterQueryJobStatus = " + status);
if (Integer.parseInt(status.getProgress()) == 100) {
-
+ logger.info("after query finished = " + status);
ActionType jobOperType = ActionType.valueOf(status.getOperType());
if (ActionType.ALLOCATE.equals(jobOperType)) {
JobStatusResponse jobStatusResponse = unMarshal(restResponse.getResponseContent(), JobStatusResponse.class);
ResponseDescriptor rspDesc = jobStatusResponse.getResponseDescriptor();
+
+ logger.info("status = {}", status);
rspDesc.setNssiId(status.getResourceInstanceID());
jobStatusResponse.setResponseDescriptor(rspDesc);
protected void updateRequestDbJobStatus(ResponseDescriptor rspDesc, ResourceOperationStatus status,
RestResponse rsp) throws ApplicationException {
-
+ status.setProgress(Integer.toString(rspDesc.getProgress()));
switch (fromString(rspDesc.getStatus())) {
case STARTED:
updateDbStatus(status, rsp.getStatus(), STARTED, QUERY_JOB_STATUS_SUCCESS);
case ERROR:
updateDbStatus(status, rsp.getStatus(), ERROR, QUERY_JOB_STATUS_FAILED);
throw new ApplicationException(500, QUERY_JOB_STATUS_FAILED);
+ default:
+ throw new ApplicationException(500, QUERY_JOB_STATUS_FAILED);
}
}
ResourceOperationStatus status =
new ResourceOperationStatus(serviceInfo.getNsiId(), response.getJobId(), serviceInfo.getServiceUuid());
status.setResourceInstanceID(response.getNssiId());
+ status.setOperType(actionType.toString());
+ status.setProgress("0");
updateDbStatus(status, restResponse.getStatus(), STARTED, NssmfAdapterUtil.getStatusDesc(actionType));
}
private final static String ALLOCATE = "{\n" + " \"esrInfo\" : {\n" + " \"vendor\" : \"huawei\",\n"
+ " \"networkType\" : \"cn\"\n" + " },\n" + " \"allocateCnNssi\" : {\n"
+ " \"nssiId\" : \"NSST-C-001-HDBNJ-NSSMF-01-A-ZX\",\n" + " \"nssiName\" : \"eMBB-001\",\n"
- + " \"sliceProfile\" : {\n" + " \"sNSSAIList\" : [ \"001-100001\" ],\n"
+ + " \"sliceProfile\" : {\n" + " \"snssaiList\" : [ \"001-100001\" ],\n"
+ " \"sliceProfileId\" : \"ab9af40f13f721b5f13539d87484098\",\n"
- + " \"pLMNIdList\" : [ \"460-00\", \"460-01\" ],\n" + " \"perfReq\" : {\n"
+ + " \"plmnIdList\" : [ \"460-00\", \"460-01\" ],\n" + " \"perfReq\" : {\n"
+ " \"perfReqEmbbList\" : [ {\n" + " \"activityFactor\" : 50\n" + " } ]\n"
+ " },\n" + " \"maxNumberofUEs\" : 200,\n"
+ " \"coverageAreaTAList\" : [ \"1\", \"2\", \"3\" ],\n" + " \"latency\" : 6,\n"
NssmfAdapterNBIRequest nbiRequest = createNbiRequest();
nbiRequest.setResponseId("7512eb3feb5249eca5ddd742fedddd39");
- Optional<ResourceOperationStatus> optional = Optional.of(operationStatus);
+ List<ResourceOperationStatus> optional = new ArrayList<>();
+ optional.add(operationStatus);
- doAnswer(invocation -> optional).when(repository).findOne(any());
+ doAnswer(invocation -> optional).when(repository).findByServiceIdAndOperationId(any(), any());
createCommonMock(200, nssmf);
//todo: endpointId -> set into tn
allocateTnNssi.setTransportSliceNetworks()
allocateTnNssi.setNetworkSliceInfos()
-
-
+ allocateTnNssi.setSliceProfile(sliceTaskInfo.sliceProfile.trans2TnProfile())
+ NsiInfo nsiInfo = new NsiInfo()
+ nsiInfo.setNsiId(sliceParams.suggestNsiId)
+ nsiInfo.setNsiName(sliceParams.suggestNsiName)
+ allocateTnNssi.setNsiInfo(nsiInfo)
//allocateTnNssi.networkSliceInfos
ServiceInstance rspi = new ServiceInstance()
rspi.setServiceInstanceName(sliceTaskInfo.NSSTInfo.name)
rspi.setServiceType(sliceTaskInfo.sliceProfile.getSST())
- rspi.setServiceRole("slice-profile-instance")
+ rspi.setServiceRole("slice-profile")
rspi.setOrchestrationStatus(oStatus)
rspi.setServiceInstanceLocationId(sliceTaskInfo.sliceProfile.getPLMNIdList())
rspi.setModelInvariantId(sliceTaskInfo.NSSTInfo.invariantUUID)
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
+@Deprecated
public class AdditionalProperties implements Serializable {
private static final long serialVersionUID = -4020397418955518175L;
- private SliceProfile sliceProfile;
+ private TnSliceProfile sliceProfile;
private List<EndPoint> endPoints;
private static final long serialVersionUID = -7069801712339914746L;
+ private TnSliceProfile sliceProfile;
+
private List<NetworkSliceInfo> networkSliceInfos;
private List<TransportSliceNetwork> transportSliceNetworks;
+
+ private NsiInfo nsiInfo;
+
+ private String scriptName;
}
private static final long serialVersionUID = 6627071735572539536L;
- @JsonProperty(value = "sNSSAIList", required = true)
+ @JsonProperty(value = "snssaiList", required = true)
private List<String> snssaiList;
private String sliceProfileId;
- @JsonProperty(value = "pLMNIdList", required = true)
+ @JsonProperty(value = "plmnIdList", required = true)
private List<String> plmnIdList;
@JsonProperty(value = "perfReq", required = true)
package org.onap.so.beans.nsmf;
+import lombok.Data;
import java.io.Serializable;
-
+@Data
public class ConnectionLink implements Serializable {
+
private static final long serialVersionUID = -1834584960407180427L;
private String transportEndpointA;
private String transportEndpointB;
-
- public static long getSerialVersionUID() {
- return serialVersionUID;
- }
-
- public String getTransportEndpointA() {
- return transportEndpointA;
- }
-
- public void setTransportEndpointA(String transportEndpointA) {
- this.transportEndpointA = transportEndpointA;
- }
-
- public String getTransportEndpointB() {
- return transportEndpointB;
- }
-
- public void setTransportEndpointB(String transportEndpointB) {
- this.transportEndpointB = transportEndpointB;
- }
}
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class PnfErrorList {
+public class PnfErrorList implements Serializable {
+
+ private static final long serialVersionUID = 1506455363755909867L;
private String pnfId;
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class ResponseHistory {
+public class ResponseHistory implements Serializable {
+
+ private static final long serialVersionUID = -1005342539496792450L;
private int progress;
}
private Integer str2Code(String area) {
- return area.hashCode() >> 16;
+ return Math.abs(area.hashCode() >> 16);
}
public CnSliceProfile trans2CnProfile() {
cnSliceProfile.setCoverageAreaTAList(Arrays.asList(this.coverageAreaTAList.split("\\|")));
cnSliceProfile.setPlmnIdList(Arrays.asList(this.pLMNIdList.split("\\|")));
cnSliceProfile.setResourceSharingLevel(ResourceSharingLevel.fromString(this.resourceSharingLevel));
+ cnSliceProfile.setUeMobilityLevel(UeMobilityLevel.fromString(this.uEMobilityLevel));
PerfReq perfReq = new PerfReq();
// todo
cnSliceProfile.setPerfReq(perfReq);
@Data
public class TransportSliceNetwork implements Serializable {
+
private static final long serialVersionUID = 809947462399806990L;
private List<ConnectionLink> connectionLinks;
package org.onap.so.beans.nsmf;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class VnfErrorList {
+public class VnfErrorList implements Serializable {
+
+ private static final long serialVersionUID = -2907819676875489281L;
private String vnfInstanceId;