• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang model.Template类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/rancher/rancher-catalog-service/model.Template的典型用法代码示例。如果您正苦于以下问题:Golang Template类的具体用法?Golang Template怎么用?Golang Template使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Template类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: readRancherCompose

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
}
开发者ID:rancher,项目名称:rancher-catalog-service,代码行数:28,代码来源:catalog.go


示例2: readTemplateConfig

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]string)

		//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"]
			template.Category = config["category"]
			template.Description = config["description"]
			template.Version = config["version"]
			if config["uuid"] != "" {
				template.UUID = config["uuid"]
			}
		}
	}
}
开发者ID:kaos,项目名称:rancher-catalog-service,代码行数:27,代码来源:catalog_manager.go


示例3: readTemplateConfig

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)
			}
		}
	}
}
开发者ID:rancher,项目名称:rancher-catalog-service,代码行数:35,代码来源:catalog.go


示例4: GetNewTemplateVersions

func GetNewTemplateVersions(templateUUID string) model.Template {
	templateMetadata := model.Template{}
	path := UUIDToPath[templateUUID]
	if path != "" {
		//refresh the catalog and sync any new changes
		RefreshCatalog()

		//find the base template metadata name
		tokens := strings.Split(path, "/")
		parentPath := tokens[0]
		cVersion := tokens[1]
		currentVersion, err := strconv.Atoi(cVersion)

		if err != nil {
			log.Debugf("Error %v reading Current Version from path: %s for uuid: %s", err, path, templateUUID)
		} else {
			templateMetadata, ok := Catalog[parentPath]
			if ok {
				log.Debugf("Template found by uuid: %s", templateUUID)
				copyOfversionLinks := make(map[string]string)
				for key, value := range templateMetadata.VersionLinks {
					if value != path {
						otherVersionTokens := strings.Split(value, "/")
						oVersion := otherVersionTokens[1]
						otherVersion, err := strconv.Atoi(oVersion)

						if err == nil && otherVersion > currentVersion {
							copyOfversionLinks[key] = value
						}
					} else {
						templateMetadata.Version = key
					}
				}
				templateMetadata.VersionLinks = copyOfversionLinks
				return templateMetadata
			} else {
				log.Debugf("Template metadata not found by uuid: %s", templateUUID)
			}
		}
	} else {
		log.Debugf("Template  path not found by uuid: %s", templateUUID)
	}

	return templateMetadata
}
开发者ID:prachidamle,项目名称:rancher-catalog-service,代码行数:45,代码来源:catalog_manager.go


示例5: ReadTemplateVersion

//ReadTemplateVersion reads the template version details
func ReadTemplateVersion(path string) model.Template {

	dirList, err := ioutil.ReadDir(catalogRoot + path)
	newTemplate := model.Template{}
	newTemplate.Path = path

	if err != nil {
		log.Errorf("Error reading template at path: %s, error: %v", path, err)
	} else {

		var foundIcon bool

		for _, subfile := range dirList {
			if strings.HasPrefix(subfile.Name(), "catalogIcon") {

				newTemplate.IconLink = path + "/" + subfile.Name()
				foundIcon = true

			} else if strings.HasPrefix(subfile.Name(), "docker-compose") {

				newTemplate.DockerCompose = string(*(readFile(catalogRoot+path, subfile.Name())))

			} else if strings.HasPrefix(subfile.Name(), "rancher-compose") {

				readRancherCompose(path, &newTemplate)
			}
		}
		if !foundIcon {
			//use the parent icon
			tokens := strings.Split(path, "/")
			parentPath := tokens[0]
			parentMetadata, ok := Catalog[parentPath]
			if ok {
				newTemplate.IconLink = parentMetadata.IconLink
			} else {
				log.Debugf("Could not find the parent metadata %s", parentPath)
			}
		}
	}

	return newTemplate

}
开发者ID:kaos,项目名称:rancher-catalog-service,代码行数:44,代码来源:catalog_manager.go


示例6: walkVersion

func walkVersion(path string, template *model.Template) (bool, bool, error) {
	dirList, err := ioutil.ReadDir(path)

	if err != nil {
		log.Errorf("Error reading template at path: %s, error: %v", path, err)
		return false, false, err
	}

	var foundIcon, foundReadme bool

	for _, subfile := range dirList {
		if strings.HasPrefix(subfile.Name(), "catalogIcon") {
			template.IconLink = template.Id + "?image"
			foundIcon = true
			PathToImage[template.Path] = subfile.Name()

		} else if strings.HasPrefix(strings.ToLower(subfile.Name()), "readme") {
			template.ReadmeLink = template.Id + "?readme"
			foundReadme = true
			PathToReadme[template.Path] = subfile.Name()

		} else {
			//read if its a file and put it in the files map
			if !subfile.IsDir() {
				bytes, err := readFile(path, subfile.Name())
				if err != nil {
					continue
				}
				key := deriveFilePath(template.Path, path) + subfile.Name()

				template.Files[key] = string(*bytes)
				if strings.HasPrefix(subfile.Name(), "rancher-compose") {
					readRancherCompose(path, template)
				}
			} else {
				//grab files under this folder
				walkVersion(path+"/"+subfile.Name(), template)
			}
		}
	}

	return foundIcon, foundReadme, nil
}
开发者ID:rancher,项目名称:rancher-catalog-service,代码行数:43,代码来源:catalog.go


示例7: PopulateTemplateLinks

func PopulateTemplateLinks(r *http.Request, template *model.Template, resourceType string) map[string]string {

	copyOfversionLinks := make(map[string]string)
	for key, value := range template.VersionLinks {
		copyOfversionLinks[key] = BuildURL(r, resourceType, value)
	}

	template.IconLink = BuildURL(r, "image", template.IconLink)

	return copyOfversionLinks
}
开发者ID:ibuildthecloud,项目名称:rancher-catalog-service,代码行数:11,代码来源:handlers.go


示例8: readRancherCompose

func readRancherCompose(relativePath string, newTemplate *model.Template) {

	composeBytes := readFile(catalogRoot+relativePath, "rancher-compose.yml")
	newTemplate.RancherCompose = string(*composeBytes)

	//read the questions section
	RC := make(map[string]model.RancherCompose)
	err := yaml.Unmarshal(*composeBytes, &RC)
	if err != nil {
		log.Errorf("Error unmarshalling %s under template: %s, error: %v", "rancher-compose.yml", relativePath, err)
	} else {
		newTemplate.Questions = RC[".catalog"].Questions
		newTemplate.Name = RC[".catalog"].Name
		newTemplate.UUID = RC[".catalog"].UUID
		newTemplate.Description = RC[".catalog"].Description
		newTemplate.Version = RC[".catalog"].Version

		if newTemplate.UUID != "" {
			//store uuid -> path map
			UUIDToPath[newTemplate.UUID] = relativePath
			log.Debugf("UUIDToPath map: %v", UUIDToPath)
		}
	}

}
开发者ID:kaos,项目名称:rancher-catalog-service,代码行数:25,代码来源:catalog_manager.go


示例9: walkCatalog

func walkCatalog(path string, f os.FileInfo, err error) error {

	if f.IsDir() && metadataFolder.MatchString(path) {

		log.Debugf("Reading metadata folder for template:%s", f.Name())
		newTemplate := model.Template{}
		newTemplate.Path = f.Name()

		//read the root level config.yml
		readTemplateConfig(path, &newTemplate)

		//list the folders under the root level
		newTemplate.VersionLinks = make(map[string]string)
		dirList, err := ioutil.ReadDir(path)
		if err != nil {
			log.Errorf("Error reading directories at path: %s, error: %v", f.Name(), err)
		} else {
			for _, subfile := range dirList {
				if subfile.IsDir() {
					//read the subversion config.yml file into a template
					subTemplate := model.Template{}
					readRancherCompose(f.Name()+"/"+subfile.Name(), &subTemplate)
					if subTemplate.UUID != "" {
						UUIDToPath[subTemplate.UUID] = f.Name() + "/" + subfile.Name()
						log.Debugf("UUIDToPath map: %v", UUIDToPath)
					}
					newTemplate.VersionLinks[subTemplate.Version] = f.Name() + "/" + subfile.Name()
				} else if strings.HasPrefix(subfile.Name(), "catalogIcon") {
					newTemplate.IconLink = f.Name() + "/" + subfile.Name()
				}
			}
		}

		Catalog[f.Name()] = newTemplate
	}
	return nil
}
开发者ID:kaos,项目名称:rancher-catalog-service,代码行数:37,代码来源:catalog_manager.go


示例10: ReadTemplateVersion

func ReadTemplateVersion(path string) model.Template {

	dirList, err := ioutil.ReadDir(catalogRoot + path)
	newTemplate := model.Template{}
	newTemplate.Path = path

	if err != nil {
		log.Errorf("Error reading template at path: %s, error: %v", path, err)
	} else {

		var foundConfig, foundIcon bool

		for _, subfile := range dirList {

			if strings.HasPrefix(subfile.Name(), "config.yml") {

				foundConfig = true
				readTemplateConfig(catalogRoot+path, &newTemplate)
				if newTemplate.UUID != "" {
					//store uuid -> path map
					UUIDToPath[newTemplate.UUID] = path
					log.Debugf("UUIDToPath map: %v", UUIDToPath)
				}
			} else if strings.HasPrefix(subfile.Name(), "catalogIcon") {

				newTemplate.IconLink = path + "/" + subfile.Name()
				foundIcon = true

			} else if strings.HasPrefix(subfile.Name(), "docker-compose") {

				newTemplate.DockerCompose = string(*(readFile(catalogRoot+path, subfile.Name())))

			} else if strings.HasPrefix(subfile.Name(), "rancher-compose") {

				composeBytes := readFile(catalogRoot+path, subfile.Name())
				newTemplate.RancherCompose = string(*composeBytes)

				//read the questions section
				RC := make(map[string]model.RancherCompose)
				err := yaml.Unmarshal(*composeBytes, &RC)
				if err != nil {
					log.Errorf("Error unmarshalling %s under template: %s, error: %v", subfile.Name(), path, err)
				} else {
					newTemplate.Questions = RC[".stack"].Questions
				}
			}
		}

		if !foundConfig {
			//use the parent config
			tokens := strings.Split(path, "/")
			parentPath := tokens[0]
			parentMetadata, ok := Catalog[parentPath]
			if ok {
				newTemplate.Name = parentMetadata.Name
				newTemplate.Category = parentMetadata.Category
				newTemplate.Description = parentMetadata.Description
				newTemplate.Version = parentMetadata.Version
			} else {
				log.Debugf("Could not find the parent metadata %s", parentPath)
			}
		}

		if !foundIcon {
			//use the parent icon
			tokens := strings.Split(path, "/")
			parentPath := tokens[0]
			parentMetadata, ok := Catalog[parentPath]
			if ok {
				newTemplate.IconLink = parentMetadata.IconLink
			} else {
				log.Debugf("Could not find the parent metadata %s", parentPath)
			}
		}
	}

	return newTemplate

}
开发者ID:prachidamle,项目名称:rancher-catalog-service,代码行数:79,代码来源:catalog_manager.go


示例11: ReadTemplateVersion

//ReadTemplateVersion reads the template version details
func (cat *Catalog) ReadTemplateVersion(templateID string, versionID string) (*model.Template, bool) {

	prefix, templateName := ExtractTemplatePrefixAndName(templateID)
	path := cat.CatalogID + "/" + prefix + "/" + templateName + "/" + versionID
	parentPath := cat.CatalogID + "/" + templateID
	parentMetadata, ok := cat.metadata[parentPath]

	if ok {
		newTemplate := model.Template{}
		newTemplate.Path = cat.CatalogID + "/" + templateID + "/" + versionID
		newTemplate.TemplateBase = parentMetadata.TemplateBase
		newTemplate.Id = cat.CatalogID + ":" + templateID + ":" + versionID
		newTemplate.CatalogID = cat.CatalogID
		newTemplate.DefaultVersion = parentMetadata.DefaultVersion
		newTemplate.Category = parentMetadata.Category
		newTemplate.IsSystem = parentMetadata.IsSystem
		newTemplate.Files = make(map[string]string)

		foundIcon, foundReadme, err := walkVersion(CatalogRootDir+path, &newTemplate)

		if err != nil {
			log.Errorf("Error reading template at path: %s, error: %v", path, err)
			return nil, false
		}

		if !foundIcon {
			//use the parent icon
			newTemplate.IconLink = parentMetadata.IconLink
		}

		if !foundReadme {
			//use the parent readme
			newTemplate.ReadmeLink = parentMetadata.ReadmeLink
		}

		return &newTemplate, true
	}

	return nil, false

}
开发者ID:rancher,项目名称:rancher-catalog-service,代码行数:42,代码来源:catalog.go


示例12: walkCatalog

func (cat *Catalog) walkCatalog(filePath string, f os.FileInfo, err error) error {
	//log.Debugf("Reading folder for template:%s %v", filePath, f)

	if f != nil && f.IsDir() && metadataFolder.MatchString(filePath) {

		//matches ./DATA/catalogID/templates/ElasticSearch or 	./DATA/catalogID/k8s-templates/ElasticSearch
		// get the prefix like 'k8s' if any
		prefix := metadataFolder.ReplaceAllString(filePath, "$2")
		prefixWithSeparator := prefix
		if prefix != "" {
			prefixWithSeparator = prefix + "*"
		}

		log.Debugf("Reading metadata folder for template:%s, path: %v", f.Name(), filePath)
		newTemplate := model.Template{
			Resource: client.Resource{
				Id:   cat.CatalogID + ":" + prefixWithSeparator + f.Name(),
				Type: "template",
			},
			Path:         cat.CatalogID + "/" + prefixWithSeparator + f.Name(), //catalogRoot + prefix + f.Name()
			TemplateBase: prefix,
		}

		//read the root level config.yml
		readTemplateConfig(filePath, &newTemplate)

		//list the folders under the root level
		newTemplate.VersionLinks = make(map[string]string)
		newTemplate.CatalogID = cat.CatalogID
		newTemplate.TemplateVersionRancherVersion = make(map[string]string)
		newTemplate.TemplateVersionRancherVersionGte = make(map[string]string)
		dirList, err := ioutil.ReadDir(filePath)
		if err != nil {
			log.Errorf("Error reading directories at path: %s, error: %v", f.Name(), err)
		} else {
			for _, subfile := range dirList {
				if subfile.IsDir() {
					//read the subversion config.yml file into a template
					subTemplate := model.Template{}
					err := readRancherCompose(path.Join(filePath, subfile.Name()), &subTemplate)
					if err == nil {
						newTemplate.VersionLinks[subTemplate.Version] = newTemplate.Id + ":" + subfile.Name()
						newTemplate.TemplateVersionRancherVersion[subTemplate.Version] = subTemplate.MinimumRancherVersion
						newTemplate.TemplateVersionRancherVersionGte[subTemplate.Version] = subTemplate.MaximumRancherVersion
					} else {
						subfilePath := path.Join(f.Name(), subfile.Name())
						if ValidationMode {
							log.Fatalf("Error processing the template version: %s, error: %v", subfilePath, err)
						}
						log.Infof("Skipping the template version: %s, error: %v", subfilePath, err)
					}
				} else if strings.HasPrefix(subfile.Name(), "catalogIcon") {
					newTemplate.IconLink = newTemplate.Id + "?image"
					PathToImage[newTemplate.Path] = subfile.Name()
				} else if strings.HasPrefix(strings.ToLower(subfile.Name()), "readme") {
					newTemplate.ReadmeLink = newTemplate.Id + "?readme"
					PathToReadme[newTemplate.Path] = subfile.Name()
				}
			}
		}

		cat.metadata[newTemplate.Path] = newTemplate
	}

	return nil
}
开发者ID:rancher,项目名称:rancher-catalog-service,代码行数:66,代码来源:catalog.go



注:本文中的github.com/rancher/rancher-catalog-service/model.Template类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang client.LaunchConfig类代码示例发布时间:2022-05-28
下一篇:
Golang config.LoadConfig函数代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap