本文整理汇总了Golang中github.com/jrperritt/rack/handler.Resource类的典型用法代码示例。如果您正苦于以下问题:Golang Resource类的具体用法?Golang Resource怎么用?Golang Resource使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Resource类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Execute
func (command *commandSetMetadata) Execute(resource *handler.Resource) {
params := resource.Params.(*paramsSetMetadata)
containerName := params.containerName
currentMetadata, err := containers.Get(command.Ctx.ServiceClient, containerName).ExtractMetadata()
if err != nil {
resource.Err = err
return
}
i := 0
keys := make([]string, len(currentMetadata))
for k := range currentMetadata {
keys[i] = k
i++
}
updateOpts := containers.UpdateOpts{
Metadata: params.metadata,
DeleteMetadata: keys,
}
updateResponse := containers.Update(command.Ctx.ServiceClient, containerName, updateOpts)
if updateResponse.Err != nil {
resource.Err = updateResponse.Err
return
}
metadata, err := containers.Get(command.Ctx.ServiceClient, containerName).ExtractMetadata()
if err != nil {
resource.Err = err
return
}
resource.Result = metadata
}
示例2: Execute
func (command *commandUpload) Execute(resource *handler.Resource) {
params := resource.Params.(*paramsUpload)
containerName := params.container
objectName := params.object
opts := params.opts
var readSeeker io.ReadSeeker
var err error
if stream := params.stream; stream {
readSeeker = os.Stdin
} else if fileName := params.fileName; fileName != "" {
// this file will be closed by Gophercloud, if not closed before then
readSeeker, err = os.Open(fileName)
if err != nil {
resource.Err = err
return
}
} else {
content := params.content
readSeeker = strings.NewReader(content)
}
rawResponse := objects.Create(command.Ctx.ServiceClient, containerName, objectName, readSeeker, opts)
if rawResponse.Err != nil {
resource.Err = rawResponse.Err
return
}
resource.Result = fmt.Sprintf("Successfully uploaded object [%s] to container [%s]\n", objectName, containerName)
}
示例3: Execute
func (command *commandList) Execute(resource *handler.Resource) {
opts := resource.Params.(*paramsList).opts
pager := osVolumes.List(command.Ctx.ServiceClient, opts)
var volumes []map[string]interface{}
err := pager.EachPage(func(page pagination.Page) (bool, error) {
info, err := osVolumes.ExtractVolumes(page)
if err != nil {
return false, err
}
result := make([]map[string]interface{}, len(info))
for j, volume := range info {
result[j] = volumeSingle(&volume)
}
volumes = append(volumes, result...)
return true, nil
})
if err != nil {
resource.Err = err
return
}
if len(volumes) == 0 {
resource.Result = nil
} else {
resource.Result = volumes
}
}
示例4: Execute
func (command *commandListAddresses) Execute(resource *handler.Resource) {
serverID := resource.Params.(*paramsListAddresses).serverID
pager := servers.ListAddresses(command.Ctx.ServiceClient, serverID)
var result []map[string]interface{}
err := pager.EachPage(func(page pagination.Page) (bool, error) {
addressesMap, err := servers.ExtractAddresses(page)
if err != nil {
return false, err
}
for t, addresses := range addressesMap {
for _, address := range addresses {
m := map[string]interface{}{
"Type": t,
"Version": address.Version,
"Address": address.Address,
}
result = append(result, m)
}
}
return true, nil
})
if err != nil {
resource.Err = err
return
}
resource.Result = result
}
示例5: Execute
func (command *commandUpdateMetadata) Execute(resource *handler.Resource) {
params := resource.Params.(*paramsUpdateMetadata)
containerName := params.containerName
getResponse := containers.Get(command.Ctx.ServiceClient, containerName)
if getResponse.Err != nil {
resource.Err = getResponse.Err
return
}
updateOpts := containers.UpdateOpts{
Metadata: params.metadata,
}
updateResponse := containers.Update(command.Ctx.ServiceClient, containerName, updateOpts)
if updateResponse.Err != nil {
resource.Err = updateResponse.Err
return
}
metadata, err := containers.Get(command.Ctx.ServiceClient, containerName).ExtractMetadata()
if err != nil {
resource.Err = err
return
}
updatedMetadata := make(map[string]string, len(params.metadata))
for k := range params.metadata {
k = strings.Title(k)
updatedMetadata[k] = metadata[k]
}
resource.Result = updatedMetadata
}
示例6: PreCSV
func (command *commandGetMetadata) PreCSV(resource *handler.Resource) {
resource.Result = map[string]interface{}{
"Metadata": resource.Result,
}
resource.Keys = []string{"Metadata"}
resource.FlattenMap("Metadata")
}
示例7: Execute
func (command *commandDeleteMetadata) Execute(resource *handler.Resource) {
params := resource.Params.(*paramsDeleteMetadata)
containerName := params.containerName
objectName := params.objectName
currentMetadata, err := objects.Get(command.Ctx.ServiceClient, containerName, objectName, nil).ExtractMetadata()
if err != nil {
resource.Err = err
return
}
for _, k := range params.metadataKeys {
currentMetadata[k] = ""
}
updateOpts := osObjects.UpdateOpts{
Metadata: currentMetadata,
}
updateResponse := objects.Update(command.Ctx.ServiceClient, containerName, objectName, updateOpts)
if updateResponse.Err != nil {
resource.Err = updateResponse.Err
return
}
resource.Result = fmt.Sprintf("Successfully deleted metadata with keys [%s] from object [%s].\n", strings.Join(params.metadataKeys, ", "), objectName)
}
示例8: JSON
func (command *commandDownload) JSON(resource *handler.Resource) {
bytes, err := ioutil.ReadAll(resource.Result.(io.Reader))
if err != nil {
resource.Err = err
return
}
resource.Result = string(bytes)
}
示例9: Execute
func (command *commandDelete) Execute(resource *handler.Resource) {
portID := resource.Params.(*paramsDelete).portID
err := ports.Delete(command.Ctx.ServiceClient, portID).ExtractErr()
if err != nil {
resource.Err = err
return
}
resource.Result = fmt.Sprintf("Successfully deleted port [%s]\n", portID)
}
示例10: Execute
func (command *commandGet) Execute(resource *handler.Resource) {
imageID := resource.Params.(*paramsGet).image
image, err := images.Get(command.Ctx.ServiceClient, imageID).Extract()
if err != nil {
resource.Err = err
return
}
resource.Result = structs.Map(image)
}
示例11: Execute
func (command *commandUpdateMetadata) Execute(resource *handler.Resource) {
params := resource.Params.(*paramsUpdateMetadata)
metadata, err := osServers.UpdateMetadata(command.Ctx.ServiceClient, params.serverID, params.opts).Extract()
if err != nil {
resource.Err = err
return
}
resource.Result = metadata
}
示例12: Execute
func (command *commandGet) Execute(resource *handler.Resource) {
securityGroupID := resource.Params.(*paramsGet).securityGroupID
securityGroup, err := securityGroups.Get(command.Ctx.ServiceClient, securityGroupID).Extract()
if err != nil {
resource.Err = err
return
}
resource.Result = securityGroupSingle(securityGroup)
}
示例13: Execute
func (command *commandResize) Execute(resource *handler.Resource) {
params := resource.Params.(*paramsResize)
err := servers.Resize(command.Ctx.ServiceClient, params.serverID, params.opts).ExtractErr()
if err != nil {
resource.Err = err
return
}
resource.Result = fmt.Sprintf("Successfully resized instance [%s] to flavor [%s]\n", params.serverID, params.opts.FlavorRef)
}
示例14: Execute
func (command *commandGet) Execute(resource *handler.Resource) {
volumeID := resource.Params.(*paramsGet).volumeID
volume, err := osVolumes.Get(command.Ctx.ServiceClient, volumeID).Extract()
if err != nil {
resource.Err = err
return
}
resource.Result = volumeSingle(volume)
}
示例15: Execute
func (command *commandGet) Execute(resource *handler.Resource) {
serverID := resource.Params.(*paramsGet).server
server, err := servers.Get(command.Context().ServiceClient, serverID).Extract()
if err != nil {
resource.Err = err
return
}
resource.Result = serverSingle(server)
}