func readRancherCompose(relativePath string, newTemplate *model.Template) error { composeBytes, err := readFile(relativePath, "rancher-compose.yml") if err != nil { return err } catalogConfig, err := lookup.ParseCatalogConfig(*composeBytes) if err != nil { return err } newTemplate.Questions = catalogConfig.Questions newTemplate.Name = catalogConfig.Name newTemplate.Description = catalogConfig.Description newTemplate.Version = catalogConfig.Version newTemplate.MinimumRancherVersion = catalogConfig.MinimumRancherVersion newTemplate.Output = catalogConfig.Output newTemplate.Labels = catalogConfig.Labels binding, err := model.CreateBindings(relativePath) if err != nil { return err } newTemplate.Bindings = binding newTemplate.MaximumRancherVersion = catalogConfig.MaximumRancherVersion newTemplate.UpgradeFrom = catalogConfig.UpgradeFrom return nil }
func readTemplateConfig(relativePath string, template *model.Template) { filename, err := filepath.Abs(relativePath + "/config.yml") if err != nil { log.Errorf("Error forming path to config file at path: %s, error: %v", relativePath, err) } yamlFile, err := ioutil.ReadFile(filename) if err != nil { log.Errorf("Error reading config file under template: %s, error: %v", relativePath, err) } else { config := make(map[string]interface{}) //Read the config.yml file err = yaml.Unmarshal(yamlFile, &config) if err != nil { log.Errorf("Error unmarshalling config.yml under template: %s, error: %v", relativePath, err) } else { template.Name, _ = config["name"].(string) template.Category, _ = config["category"].(string) template.Description, _ = config["description"].(string) template.Version, _ = config["version"].(string) template.Maintainer, _ = config["maintainer"].(string) template.License, _ = config["license"].(string) template.ProjectURL, _ = config["projectURL"].(string) template.IsSystem, _ = config["isSystem"].(string) template.DefaultVersion, _ = config["version"].(string) template.Labels = map[string]string{} labels, _ := config["labels"].(map[interface{}]interface{}) for k, v := range labels { template.Labels[fmt.Sprint(k)] = fmt.Sprint(v) } } } }