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("Failed to retrieve service definitions from SDC, for VfModule is BaseModule.. Error: " + e.message , e)
- return Job.JobStatus.FAILED
+ 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;
}
}
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 (!shouldEntailRegionAndTenantToVfModule(vfModule)) {
+ return vfModule
+ }
+
+ val vnfLcpCloudRegionId = getRequest().lcpCloudRegionId
+ val vnfTenantId = getRequest().tenantId
+ return vfModule.cloneWith(vnfLcpCloudRegionId, vnfTenantId)
+ }
+
+ private fun shouldEntailRegionAndTenantToVfModule(vfModule: VfModule) =
+ vfModule.action == Action.Create
+ && featureManager.isActive(Features.FLAG_2006_VFMODULE_TAKES_TENANT_AND_REGION_FROM_VNF)
+
+ private fun filterModuleByNeedToCreateBase(vfModule: VfModule): Boolean {
return needToCreateBaseModule ==
- commandUtils.isVfModuleBaseModule(
- commandParentData.getModelInfo(CommandParentData.CommandDataKey.SERVICE_MODEL_INFO).getModelVersionId(),
- it.modelInfo.modelVersionId)
+ commandUtils.isVfModuleBaseModule(
+ serviceModelInfoFromRequest().modelVersionId, vfModule.modelInfo)
}
override fun planCreateMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String, testApi: String?): MsoRestCallPlan {
- val serviceInstanceId = commandParentData.getInstanceId(CommandParentData.CommandDataKey.SERVICE_INSTANCE_ID)
- val serviceModelInfo = commandParentData.getModelInfo(CommandParentData.CommandDataKey.SERVICE_MODEL_INFO)
+ val serviceInstanceId = serviceInstanceIdFromRequest()
val instantiatePath = asyncInstantiationBL.getVnfInstantiationPath(serviceInstanceId)
val requestDetailsWrapper = msoRequestBuilder.generateVnfInstantiationRequest(
request as Vnf,
- serviceModelInfo, serviceInstanceId,
+ serviceModelInfoFromRequest(), serviceInstanceId,
userId,
testApi
)
}
override fun planDeleteMyselfRestCall(commandParentData: CommandParentData, request: JobAdapter.AsyncJobRequest, userId: String): MsoRestCallPlan {
- val serviceInstanceId = commandParentData.getInstanceId(CommandParentData.CommandDataKey.SERVICE_INSTANCE_ID)
+ val serviceInstanceId = serviceInstanceIdFromRequest()
val path = asyncInstantiationBL.getVnfDeletionPath(serviceInstanceId, getRequest().instanceId)
val requestDetailsWrapper = msoRequestBuilder.generateDeleteVnfRequest(getRequest(), userId)
return MsoRestCallPlan(HttpMethod.DELETE, path, Optional.of(requestDetailsWrapper), Optional.of(userId),