diff options
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/job')
3 files changed, 99 insertions, 6 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/job/JobType.java b/vid-app-common/src/main/java/org/onap/vid/job/JobType.java index b0cfa7a58..7be286be7 100644 --- a/vid-app-common/src/main/java/org/onap/vid/job/JobType.java +++ b/vid-app-common/src/main/java/org/onap/vid/job/JobType.java @@ -37,6 +37,7 @@ public enum JobType { ALaCarteServiceInstantiation(ALaCarteServiceCommand.class), ALaCarteService(ALaCarteServiceCommand.class), VnfInstantiation(VnfCommand.class), + PnfInstantiation(PnfCommand.class), VfmoduleInstantiation(VfmoduleCommand.class), VolumeGroupInstantiation(VolumeGroupCommand.class), NetworkInstantiation(NetworkCommand.class), diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/MsoRequestBuilder.kt b/vid-app-common/src/main/java/org/onap/vid/job/command/MsoRequestBuilder.kt index c31e69300..17948d4b6 100644 --- a/vid-app-common/src/main/java/org/onap/vid/job/command/MsoRequestBuilder.kt +++ b/vid-app-common/src/main/java/org/onap/vid/job/command/MsoRequestBuilder.kt @@ -65,7 +65,6 @@ class MsoRequestBuilder val serviceInstantiationServiceList = generateMacroServiceInstantiationRequestParams(payload, serviceInstanceName, jobId) - val requestParameters = ServiceInstantiationRequestDetails.RequestParameters(payload.subscriptionServiceType, false, serviceInstantiationServiceList) val requestDetails = generateServiceInstantiationRequestDetails(payload, requestParameters, serviceInstanceName, userId) @@ -221,7 +220,7 @@ class MsoRequestBuilder return !aaiClient.isNodeTypeExistsByName(name, resourceType) } - private fun generateServiceInstantiationServicesList(payload: ServiceInstantiation, serviceInstanceName: String?, vnfList: ServiceInstantiationRequestDetails.ServiceInstantiationVnfList): List<ServiceInstantiationRequestDetails.ServiceInstantiationService> { + private fun generateServiceInstantiationServicesList(payload: ServiceInstantiation, serviceInstanceName: String?, vnfList: List<ServiceInstantiationRequestDetails.ServiceInstantiationVnf>, pnfList: List<ServiceInstantiationRequestDetails.ServiceInstantiationPnf>): List<ServiceInstantiationRequestDetails.ServiceInstantiationService> { val serviceInstantiationServiceList = LinkedList<ServiceInstantiationRequestDetails.ServiceInstantiationService>() val unFilteredInstanceParams = defaultIfNull<List<MutableMap<String, String>>>(payload.instanceParams, emptyList()) val filteredInstanceParams = removeUnNeededParams(unFilteredInstanceParams) @@ -229,7 +228,8 @@ class MsoRequestBuilder payload.modelInfo, serviceInstanceName, filteredInstanceParams, - vnfList + vnfList, + pnfList ) serviceInstantiationServiceList.add(serviceInstantiationService) return serviceInstantiationServiceList @@ -255,7 +255,7 @@ class MsoRequestBuilder return if (result.isEmpty()) emptyList() else listOf(result) } - private fun createServiceInstantiationVnfList(jobId: UUID?, payload: ServiceInstantiation): ServiceInstantiationRequestDetails.ServiceInstantiationVnfList { + private fun createServiceInstantiationVnfList(jobId: UUID?, payload: ServiceInstantiation): List<ServiceInstantiationRequestDetails.ServiceInstantiationVnf> { val cloudConfiguration = generateCloudConfiguration(payload.lcpCloudRegionId, payload.tenantId) val isBulk = asyncInstantiationBL.isPartOfBulk(jobId) @@ -278,7 +278,27 @@ class MsoRequestBuilder vnfList.add(serviceInstantiationVnf) } - return ServiceInstantiationRequestDetails.ServiceInstantiationVnfList(vnfList) + return vnfList; + } + + private fun createServiceInstantiationPnfList(jobId: UUID?, payload: ServiceInstantiation): List<ServiceInstantiationRequestDetails.ServiceInstantiationPnf> { + val isBulk = asyncInstantiationBL.isPartOfBulk(jobId) + + val pnfs = payload.pnfs + val pnfList = mutableListOf<ServiceInstantiationRequestDetails.ServiceInstantiationPnf>() + for (pnf in pnfs.values) { + val serviceInstantiationPnf = ServiceInstantiationRequestDetails.ServiceInstantiationPnf( + pnf.modelInfo, + pnf.platformName, + pnf.lineOfBusiness, + payload.productFamilyId, + buildPnfInstanceParams(pnf.instanceParams), + getUniqueNameIfNeeded(pnf.instanceName, ResourceType.PNF, isBulk) + ) + pnfList.add(serviceInstantiationPnf) + } + + return pnfList; } private fun convertVfModuleMapToList(vfModules: Map<String, Map<String, VfModule>>): List<VfModuleMacro> { @@ -323,6 +343,13 @@ class MsoRequestBuilder return if (vnfInstanceParams.isEmpty()) emptyList() else ImmutableList.of(vnfInstanceParams) } + fun buildPnfInstanceParams(currentPnfInstanceParams: List<MutableMap<String, String>>): List<Map<String, String>> { + val filteredPnfInstanceParams = removeUnNeededParams(currentPnfInstanceParams) + + val pnfInstanceParams = extractActualInstanceParams(filteredPnfInstanceParams) + return if (pnfInstanceParams.isEmpty()) emptyList() else ImmutableList.of(pnfInstanceParams) + } + private fun generateServiceInstantiationRequestDetails(payload: ServiceInstantiation, requestParameters: ServiceInstantiationRequestDetails.RequestParameters, serviceInstanceName: String?, userId: String): ServiceInstantiationRequestDetails { val requestInfo = ServiceInstantiationRequestDetails.RequestInfo(serviceInstanceName, payload.productFamilyId, @@ -422,7 +449,12 @@ class MsoRequestBuilder } private fun generateMacroServiceInstantiationRequestParams(payload: ServiceInstantiation, serviceInstanceName: String?, jobId: UUID?): List<UserParamTypes> { - val userParams = generateServiceInstantiationServicesList(payload, serviceInstanceName, createServiceInstantiationVnfList(jobId, payload)) + val userParams = generateServiceInstantiationServicesList( + payload, + serviceInstanceName, + createServiceInstantiationVnfList(jobId, payload), + createServiceInstantiationPnfList(jobId, payload) + ) return userParams.plus(homingSolution()) } diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/PnfCommand.kt b/vid-app-common/src/main/java/org/onap/vid/job/command/PnfCommand.kt new file mode 100644 index 000000000..26bd5704a --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/job/command/PnfCommand.kt @@ -0,0 +1,60 @@ +package org.onap.vid.job.command + +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate +import org.onap.vid.job.Job +import org.onap.vid.job.JobAdapter +import org.onap.vid.job.JobCommand +import org.onap.vid.job.JobsBrokerService +import org.onap.vid.job.impl.JobSharedData +import org.onap.vid.model.serviceInstantiation.Pnf +import org.onap.vid.mso.RestMsoImplementation +import org.onap.vid.services.AsyncInstantiationBusinessLogic +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.beans.factory.config.ConfigurableBeanFactory +import org.springframework.context.annotation.Scope +import org.springframework.http.HttpMethod +import org.springframework.stereotype.Component +import org.togglz.core.manager.FeatureManager +import java.util.Optional; + +@Component +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +class PnfCommand @Autowired constructor( + private val asyncInstantiationBL: AsyncInstantiationBusinessLogic, + restMso: RestMsoImplementation, + private val msoRequestBuilder: MsoRequestBuilder, + msoResultHandlerService: MsoResultHandlerService, + inProgressStatusService:InProgressStatusService, + watchChildrenJobsBL: WatchChildrenJobsBL, + jobsBrokerService: JobsBrokerService, + jobAdapter: JobAdapter, + private val featureManager: FeatureManager +) : ResourceCommand(restMso, inProgressStatusService, msoResultHandlerService, + watchChildrenJobsBL, jobsBrokerService, jobAdapter, featureManager), JobCommand { + + override fun getData(): Map<String, Any?> { + return super.getData(); + } + + override fun init(sharedData: JobSharedData, commandData: Map<String, Any>): ResourceCommand { + super<ResourceCommand>.init(sharedData, commandData) + return this + } + + override fun createChildren(): Job.JobStatus { + TODO("Not yet implemented") + } + + override fun planCreateMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String, testApi: String?): MsoRestCallPlan { + return MsoRestCallPlan(HttpMethod.POST, "", Optional.empty(), Optional.empty(), ""); + } + + override fun planDeleteMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String): MsoRestCallPlan { + TODO("Not yet implemented") + } + + override fun getRequest(): Pnf { + return sharedData.request as Pnf + } + +} |