當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Template.DockerCompose方法代碼示例

本文整理匯總了Golang中github.com/rancher/rancher-catalog-service/model.Template.DockerCompose方法的典型用法代碼示例。如果您正苦於以下問題:Golang Template.DockerCompose方法的具體用法?Golang Template.DockerCompose怎麽用?Golang Template.DockerCompose使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/rancher/rancher-catalog-service/model.Template的用法示例。


在下文中一共展示了Template.DockerCompose方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: 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

示例2: 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


注:本文中的github.com/rancher/rancher-catalog-service/model.Template.DockerCompose方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。