本文整理汇总了Golang中github.com/gophergala2016/gophersiesta/server/storage.Storage类的典型用法代码示例。如果您正苦于以下问题:Golang Storage类的具体用法?Golang Storage怎么用?Golang Storage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Storage类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: GetLabels
func GetLabels(s storage.Storage) func(c *gin.Context) {
return func(c *gin.Context) {
name := c.Param("appname")
lbls := s.GetLabels(name)
labels := &Labels{lbls}
c.IndentedJSON(http.StatusOK, labels)
}
}
开发者ID:conejoninja,项目名称:gophersiesta,代码行数:12,代码来源:configrations.go
示例2: 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)
}
}
}
}
开发者ID:gophergala2016,项目名称:gophersiesta,代码行数:52,代码来源:placeholders.go
示例3: SetValues
// SetValues set the placeholders values for a given appname and concrete namespace represented as labels
// If no labels are provided the "default" label is used
func SetValues(s storage.Storage) func(c *gin.Context) {
return func(c *gin.Context) {
name := c.Param("appname")
labels := c.DefaultQuery("labels", "default")
body := c.Request.Body
x, err := ioutil.ReadAll(body)
if err != nil {
c.String(http.StatusBadRequest, "Bad request")
} else {
data := map[string]interface{}{}
json.Unmarshal(x, &data)
lbls := strings.Split(labels, ",")
if len(data) > 0 { //it's a JSON
for _, label := range lbls {
for k, v := range data {
s.SetOption(name, label, k, fmt.Sprint(v))
}
}
c.String(http.StatusOK, "Ok")
} else if strings.Contains(string(x), "=") {
pairs := strings.Split(string(x), ",")
for _, label := range lbls {
for _, v := range pairs {
vv := strings.Split(v, "=")
s.SetOption(name, label, vv[0], strings.Join(vv[1:], "="))
}
}
c.String(http.StatusOK, "Ok")
} else {
c.String(http.StatusBadRequest, "Properties not well-formed")
}
}
}
}
开发者ID:gophergala2016,项目名称:gophersiesta,代码行数:42,代码来源:placeholders.go
示例4: 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)
}
}
开发者ID:gophergala2016,项目名称:gophersiesta,代码行数:26,代码来源:placeholders.go
注:本文中的github.com/gophergala2016/gophersiesta/server/storage.Storage类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论