/// <summary> /// Adds a ToscaServiceTemplate /// </summary> /// <exception cref="ToscaArtifactNotFoundException">Thrown when artifact not found in the Cloud Service Archive.</exception> /// <param name="toscaServiceTemplateName">Service template name</param> /// <param name="toscaServiceTemplate">An instance of ToscaServiceTemplate</param> /// <exception cref="ToscaServiceTemplateAlreadyExistsException"> /// Service Template was already added to the Cloud Service /// Archive. /// </exception> public void AddToscaServiceTemplate(string toscaServiceTemplateName, ToscaServiceTemplate toscaServiceTemplate) { if (toscaServiceTemplates.ContainsKey(toscaServiceTemplateName)) { throw new ToscaServiceTemplateAlreadyExistsException( string.Format("Service Template '{0}' already exists", toscaServiceTemplateName)); } toscaServiceTemplates.Add(toscaServiceTemplateName, toscaServiceTemplate); foreach (var toscaNodeType in toscaServiceTemplate.NodeTypes) { AddNodeType(toscaNodeType.Key, toscaNodeType.Value); } foreach (var capabilityType in toscaServiceTemplate.CapabilityTypes) { AddCapabilityType(capabilityType.Key, capabilityType.Value); } foreach (var dataTypeKeyValue in toscaServiceTemplate.DataTypes) { AddDataType(dataTypeKeyValue.Key, dataTypeKeyValue.Value); } }
private List <ValidationResult> ValidationImportsRecuresively(HashSet <string> imports, ToscaServiceTemplate serviceTemplate) { foreach (var import in serviceTemplate.GetImports()) { if (imports.Contains(import.File)) { return(new List <ValidationResult> { new ValidationResult(string.Format("Circular dependency detected on import '{0}'", import.File)) }); } imports.Add(import.File); return(ValidationImportsRecuresively(imports, ToscaServiceTemplates[import.File])); } return(new List <ValidationResult>()); }