+ return importCertifiedResource(resourceYml, resourceMetaData, creator, validator, lifecycleChangeInfo, isInTransaction, createNewVersion,
+ needLock, null, null, false, null, null, false, instancesFromCsar);
+ }
+
+ public void importAllNormativeResource(final String resourcesYaml, final NodeTypesMetadataList nodeTypesMetadataList, final User user,
+ final boolean createNewVersion, final boolean needLock) {
+ final Map<String, Object> nodeTypesYamlMap;
+ try {
+ nodeTypesYamlMap = new Yaml().load(resourcesYaml);
+ } catch (final Exception e) {
+ log.error(EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, ResourceImportManager.class.getName(), "Could not parse node types YAML", e);
+ throw new ByActionStatusComponentException(ActionStatus.INVALID_NODE_TYPES_YAML);
+ }
+ if (!nodeTypesYamlMap.containsKey(ToscaTagNamesEnum.NODE_TYPES.getElementName())) {
+ return;
+ }
+ final Map<String, Object> nodeTypesMap = (Map<String, Object>) nodeTypesYamlMap.get(ToscaTagNamesEnum.NODE_TYPES.getElementName());
+ importAllNormativeResource(nodeTypesMap, nodeTypesMetadataList, null, user, "", createNewVersion,needLock);
+ }
+
+ public void importAllNormativeResource(final Map<String, Object> nodeTypesMap, final NodeTypesMetadataList nodeTypesMetadataList,
+ Map<String, UploadComponentInstanceInfo> instancesFromCsar, final User user, String model, final boolean createNewVersion, final boolean needLock) {
+ try {
+ nodeTypesMetadataList.getNodeMetadataList().forEach(nodeTypeMetadata -> {
+ final String nodeTypeToscaName = nodeTypeMetadata.getToscaName();
+ final Map<String, Object> nodeTypeMap = (Map<String, Object>) nodeTypesMap.get(nodeTypeToscaName);
+ if (nodeTypeMap == null) {
+ log.warn(EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR, ResourceImportManager.class.getName(),
+ "Could not find given node type '{}'. The node will not be created.", nodeTypeToscaName);
+ } else {
+ final Map<String, Map<String, Map<String, Object>>> nodeTypeDefinitionMap =
+ Map.of(ToscaTagNamesEnum.NODE_TYPES.getElementName(),
+ Map.of(nodeTypeToscaName, nodeTypeMap)
+ );
+ final String nodeTypeYaml = new Yaml().dump(nodeTypeDefinitionMap);
+ UploadResourceInfo uploadResourceInfo = NodeTypeMetadataMapper.mapTo(nodeTypeMetadata);
+ if (uploadResourceInfo instanceof DefaultUploadResourceInfo) {
+ uploadResourceInfo.setModel(model);
+ uploadResourceInfo.setContactId(user.getUserId());
+ }
+ importNormativeResource(nodeTypeYaml, uploadResourceInfo, instancesFromCsar, user, createNewVersion, needLock, true);
+ }
+ });
+ janusGraphDao.commit();
+ } catch (final Exception e) {
+ janusGraphDao.rollback();
+ throw e;
+ }