本文整理匯總了Golang中github.com/rancher/rancher-catalog-service/model.Template.IconLink方法的典型用法代碼示例。如果您正苦於以下問題:Golang Template.IconLink方法的具體用法?Golang Template.IconLink怎麽用?Golang Template.IconLink使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/rancher/rancher-catalog-service/model.Template
的用法示例。
在下文中一共展示了Template.IconLink方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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
}
示例2: 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
}
示例3: 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
}
示例4: 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
}
示例5: 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
}
示例6: 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
}
示例7: 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
}