diff options
author | Ittay Stern <ittay.stern@att.com> | 2020-02-05 18:51:21 +0200 |
---|---|---|
committer | Ittay Stern <ittay.stern@att.com> | 2020-02-06 13:13:47 +0200 |
commit | fe6392bf837d65bee87039545d21944c0e84bbf9 (patch) | |
tree | 31bb3a22779f263396ff36d052bc91d845fa3732 /vid-app-common/src/main/java/org/onap/vid/job/command | |
parent | b4b88310c73f9faa15bbe8ad0ed6213660f6f52c (diff) |
vfmodule tenant and region are dictated by parent VNF values
Issue-ID: VID-758
Change-Id: Ie48240442e5b2f858e530858d2e25827e799e4c2
Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/job/command')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/job/command/VnfCommand.kt | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/job/command/VnfCommand.kt b/vid-app-common/src/main/java/org/onap/vid/job/command/VnfCommand.kt index 48ff7b7ac..b008c1306 100644 --- a/vid-app-common/src/main/java/org/onap/vid/job/command/VnfCommand.kt +++ b/vid-app-common/src/main/java/org/onap/vid/job/command/VnfCommand.kt @@ -12,6 +12,7 @@ import org.onap.vid.model.serviceInstantiation.Vnf import org.onap.vid.mso.RestMsoImplementation import org.onap.vid.properties.Features import org.onap.vid.services.AsyncInstantiationBusinessLogic +import org.onap.vid.utils.isNotActive import org.springframework.beans.factory.annotation.Autowired import org.springframework.beans.factory.config.ConfigurableBeanFactory import org.springframework.context.annotation.Scope @@ -59,9 +60,9 @@ class VnfCommand @Autowired constructor( val vfModules:List<VfModule> = request.vfModules.values.stream().flatMap { vfKey -> vfKey.values.stream() }.collect(Collectors.toList<VfModule>()) try { - childJobs = pushChildrenJobsToBroker(vfModules.filter { filterModuleByNeedToCreateBase(it) }, dataForChild, JobType.VolumeGroupInstantiation) + childJobs = pushChildrenJobsToBroker(vfModulesForChildrenJobs(vfModules), dataForChild, JobType.VolumeGroupInstantiation) } catch (e: AsdcCatalogException) { - LOGGER.error(EELFLoggerDelegate.errorLogger, "Failed to retrieve service definitions from SDC, for VfModule is BaseModule.. Error: " + e.message , e) + LOGGER.error(EELFLoggerDelegate.errorLogger, "Failed to retrieve service definitions from SDC, for VfModule is BaseModule.. Error: " + e.message, e) //return Job.JobStatus.FAILED throw e; } @@ -70,11 +71,26 @@ class VnfCommand @Autowired constructor( return Job.JobStatus.COMPLETED_WITH_NO_ACTION } - private fun filterModuleByNeedToCreateBase(it: VfModule):Boolean { + private fun vfModulesForChildrenJobs(vfModules: List<VfModule>): List<VfModule> = + vfModules + .filter { filterModuleByNeedToCreateBase(it) } + .map { childVfModuleWithVnfRegionAndTenant(it) } + + internal fun childVfModuleWithVnfRegionAndTenant(vfModule: VfModule): VfModule { + if (featureManager.isNotActive(Features.FLAG_2006_VFMODULE_TAKES_TENANT_AND_REGION_FROM_VNF)) { + return vfModule + } + + val vnfLcpCloudRegionId = getRequest().lcpCloudRegionId + val vnfTenantId = getRequest().tenantId + return vfModule.cloneWith(vnfLcpCloudRegionId, vnfTenantId) + } + + private fun filterModuleByNeedToCreateBase(vfModule: VfModule): Boolean { return needToCreateBaseModule == - commandUtils.isVfModuleBaseModule( - serviceModelInfoFromRequest().modelVersionId, - it.modelInfo.modelVersionId) + commandUtils.isVfModuleBaseModule( + serviceModelInfoFromRequest().modelVersionId, + vfModule.modelInfo.modelVersionId) } override fun planCreateMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String, testApi: String?): MsoRestCallPlan { |