/*- * ============LICENSE_START======================================================= * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END========================================================= */ package org.onap.dcae.runtime.web.configuration; import org.onap.dcae.runtime.core.FlowGraphParser; import org.onap.dcae.runtime.core.blueprint_creator.BlueprintCreatorOnapDublin; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Profile; import org.springframework.core.env.Environment; import org.yaml.snakeyaml.Yaml; import java.io.IOException; import java.nio.file.FileAlreadyExistsException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Configuration public class BlueprintCreatorConfig { @Autowired Environment env; @Value("${onapDublin.topicUrl}") String onapDublinTopicUrl; @Value("${onapDublin.import.cloudifyPlugin}") String onapDublinImportCloudifyPlugin; @Value("${onapDublin.import.k8sPlugin}") String onapDublinImportK8sPlugin; @Value("${onapDublin.import.policyPlugin}") String onapDublinImportPolicyPlugin; @Profile("onap_dublin") @Primary @Bean public FlowGraphParser getFlowGraphParserForOnapDublin(){ BlueprintCreatorOnapDublin blueprintCreatorOnapDublin = new BlueprintCreatorOnapDublin(); blueprintCreatorOnapDublin.setTopicUrl(onapDublinTopicUrl); blueprintCreatorOnapDublin.setImportFilePath(writeImportsTofile()); FlowGraphParser flowGraphParser = new FlowGraphParser(blueprintCreatorOnapDublin); return flowGraphParser; } private String writeImportsTofile() { String contentToWrite = getContentToWrite(); String fielPath = ""; try { Path path = createDataImportDirAndImportFile(); fielPath = Files.write(path,contentToWrite.getBytes()).toString(); new String(Files.readAllBytes(path)); } catch (IOException e) { e.printStackTrace(); } System.out.println(fielPath); return fielPath; } private Path createDataImportDirAndImportFile() { Path importDirPath = Paths.get("./data/imports").toAbsolutePath().normalize(); Path onapDublinImportFilePath = Paths.get("./data/imports/onapDublinImports.yaml").toAbsolutePath().normalize(); try { Files.createDirectories(importDirPath); Files.createFile(onapDublinImportFilePath); } catch (FileAlreadyExistsException ignored){ } catch (IOException e) { e.printStackTrace(); } return onapDublinImportFilePath; } private String getContentToWrite() { Map result = new HashMap(); List importList = new ArrayList(); importList.add(onapDublinImportCloudifyPlugin); importList.add(onapDublinImportK8sPlugin); importList.add(onapDublinImportPolicyPlugin); result.put("imports",importList); return new Yaml().dump(result); } }