aboutsummaryrefslogtreecommitdiffstats
path: root/docs/configuration.rst
AgeCommit message (Expand)AuthorFilesLines
2022-03-08Rename ControlLoop to AutomationCompositionSirisha_Manchikanti1-2/+2
2021-05-21Add Documentation of SDC-Helm-Validator containerTomasz Wrobel1-0/+8
2021-03-16Remove unused dcae-be healthcheckChrisC1-13/+0
2020-11-13Update DocumentationChrisC1-0/+3
2020-06-14Fix Doc warningsChrisC1-13/+13
2020-04-01R6 release notes and documentation updateOfir Sonsino1-42/+0
2020-02-25Support import of custom node type namearibeiro1-0/+3
2020-02-23configuration alignmentOfir Sonsino1-10/+10
2020-02-18Configuration file runtime reloadandre.schmid1-3/+0
2020-01-30Upgrade to Cassandra 3shrek20001-1/+1
2019-12-18Revert "Add Option to proxy to plugins"aribeiro1-6/+0
2019-12-05Add Option to proxy to pluginsilanap1-0/+6
2019-11-27Add API to retrieve UI configurationilanap1-0/+85
2019-06-12Upgrade SDC from Titan to Janus Graphshrikantawachar1-29/+29
2019-05-22Fix minor typos in documentationkaihlavi1-15/+15
2019-04-10VSP Compliance Check for Compute Flavor-BEVodafone1-22/+14
2019-04-01List of Input Parameters for VSPVodafone1-0/+23
2018-12-01update documintationMichael Lando1-16/+74
2018-10-17Enhance documentation of SDCSatyaki Mallick1-2/+2
2018-10-08Correct the incorrectseshukm1-2/+2
2018-09-27correct the incorrectseshukm1-16/+17
2018-06-06update documentationMichael Lando1-206/+401
2017-10-31Configuration section to Read the DocsIdan Amit1-27/+68
2017-10-30Configuration section to Read the DocsIdan Amit1-53/+251
2017-10-29Configuration section to Read the DocsIdan Amit1-0/+913
2017-10-16Update toctree to current release notes templateRich Bennett1-0/+27
ce class ResourceDefinitionEnhancerServiceImpl(private val resourceDefinitionRepoService: ResourceDefinitionRepoService) : ResourceDefinitionEnhancerService { private val log = logger(ResourceDefinitionEnhancerService::class) companion object { const val ARTIFACT_TYPE_MAPPING_SOURCE: String = "artifact-mapping-resource" } // Enhance the Resource Definition // 1. Get the Resource Mapping files from all NodeTemplates. // 2. Get all the Unique Resource assignments from all mapping files // 3. Collect the Resource Definition for Resource Assignment names from database. // 4. Create the Resource Definition under blueprint base path. override fun enhance( bluePrintTypeEnhancerService: BluePrintTypeEnhancerService, bluePrintRuntimeService: BluePrintRuntimeService<*> ): List<ResourceDefinition> { var resourceDefinitions: List<ResourceDefinition> = mutableListOf() val blueprintContext = bluePrintRuntimeService.bluePrintContext() val mappingFiles = getAllResourceMappingFiles(blueprintContext) log.info("resources assignment files ($mappingFiles)") if (mappingFiles != null) { resourceDefinitions = getResourceDefinition(blueprintContext, mappingFiles) // Enriching Resource Definition Sources enrichResourceDefinitionSources(bluePrintRuntimeService.bluePrintContext(), resourceDefinitions) } return resourceDefinitions } // Get all the Mapping files from all node templates. private fun getAllResourceMappingFiles(blueprintContext: BluePrintContext): List<String>? { return blueprintContext.nodeTemplates()?.mapNotNull { nodeTemplateMap -> // Return only Mapping Artifact File Names nodeTemplateMap.value.artifacts?.filter { artifactDefinitionMap -> artifactDefinitionMap.value.type == ARTIFACT_TYPE_MAPPING_SOURCE }?.mapNotNull { artifactDefinitionMap -> artifactDefinitionMap.value.file } }?.flatten()?.distinct() } // Convert file content to ResourceAssignments asynchronously private fun getResourceDefinition(blueprintContext: BluePrintContext, files: List<String>) = runBlocking { val blueprintBasePath = blueprintContext.rootPath val deferredResourceAssignments = mutableListOf<Deferred<List<ResourceAssignment>>>() for (file in files) { log.info("processing file ($file)") deferredResourceAssignments += async { ResourceDictionaryUtils.getResourceAssignmentFromFile("$blueprintBasePath/$file") } } val resourceAssignments = mutableListOf<ResourceAssignment>() for (deferredResourceAssignment in deferredResourceAssignments) { resourceAssignments.addAll(deferredResourceAssignment.await()) } generateResourceDictionary(blueprintBasePath, resourceAssignments) } // Read the Resource Definitions from the Database and write to type file. private fun generateResourceDictionary(blueprintBasePath: String, resourceAssignments: List<ResourceAssignment>): List<ResourceDefinition> { val resourceKeys = resourceAssignments.mapNotNull { it.dictionaryName }.distinct().sorted() log.info("distinct resource keys ($resourceKeys)") // TODO("Optimise DB single Query to multiple Query") return resourceKeys.map { resourceKey -> getResourceDefinition(resourceKey) } } private fun enrichResourceDefinitionSources( bluePrintContext: BluePrintContext, resourceDefinitions: List<ResourceDefinition> ) { val sources = resourceDefinitions .map { it.sources } .map { it.values .map { nodeTemplate -> nodeTemplate.type } } .flatten().distinct() log.info("Enriching Resource Definition sources Node Template: $sources") sources.forEach { BluePrintEnhancerUtils.populateNodeType(bluePrintContext, resourceDefinitionRepoService, it) } } // Get the Resource Definition from Database private fun getResourceDefinition(name: String): ResourceDefinition { return resourceDefinitionRepoService.getResourceDefinition(name) } }