本文整理匯總了Golang中github.com/gophergala2016/gophersiesta/server/storage.Storage.GetOptions方法的典型用法代碼示例。如果您正苦於以下問題:Golang Storage.GetOptions方法的具體用法?Golang Storage.GetOptions怎麽用?Golang Storage.GetOptions使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/gophergala2016/gophersiesta/server/storage.Storage
的用法示例。
在下文中一共展示了Storage.GetOptions方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: ReplacePlaceholders
// ReplacePlaceholders generated a config file using the base config file for appname by replacing the possible placeholders
// that the config fiel might have given a group of labels. These labels are used to retrieve the placeholders stored values
func ReplacePlaceholders(s storage.Storage) func(c *gin.Context) {
return func(c *gin.Context) {
name := c.Param("appname")
labels := c.DefaultQuery("labels", "default")
renderType := c.Param("format")
list := make(map[string]*placeholders.Placeholder)
myViper, err := readTemplate(name)
if err != nil {
c.String(http.StatusNotFound, "")
} else {
properties := placeholders.GetPlaceHolders(myViper)
for _, v := range properties.Placeholders {
list[v.PlaceHolder] = v
}
lbls := strings.Split(labels, ",")
// MERGE values of different labels, last overrides current value
for _, label := range lbls {
l := s.GetOptions(name, label)
for k, v := range l {
if list[k] != nil {
list[k].PropertyValue = v
}
}
}
template := replaceTemplatePlaceHolders(myViper, list)
extension := getFileExtension(myViper)
replacedViper := viper.New()
replacedViper.SetConfigType(extension)
replacedViper.ReadConfig(bytes.NewBuffer([]byte(template)))
b, err := render(replacedViper, renderType)
if err == nil {
c.Data(http.StatusOK, "text/plain", b)
}
if err != nil {
c.String(http.StatusInternalServerError, "Could not render %s", err)
}
}
}
}
示例2: GetValues
// GetValues return the placeholders values for a given appname and concrete namespace represented as labels.
// If no labels are provided the "default" label is used
func GetValues(s storage.Storage) func(c *gin.Context) {
return func(c *gin.Context) {
name := c.Param("appname")
labels := c.DefaultQuery("labels", "default")
list := make(map[string]string)
if strings.Contains(labels, ",") {
lbls := strings.Split(labels, ",")
// MERGE values of different labels, last overrides current value
for _, label := range lbls {
l := s.GetOptions(name, label)
for k, v := range l {
list[k] = v
}
}
} else {
list = s.GetOptions(name, labels)
}
vs := placeholders.CreateValues(list)
c.IndentedJSON(http.StatusOK, vs)
}
}