本文整理汇总了Golang中github.com/jrperritt/rack/handler.Resource.Result方法的典型用法代码示例。如果您正苦于以下问题:Golang Resource.Result方法的具体用法?Golang Resource.Result怎么用?Golang Resource.Result使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/jrperritt/rack/handler.Resource
的用法示例。
在下文中一共展示了Resource.Result方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: 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
}
}
示例2: Execute
func (command *commandGenerate) Execute(resource *handler.Resource) {
opts := resource.Params.(*paramsGenerate).opts
keypair, err := keypairs.Create(command.Ctx.ServiceClient, opts).Extract()
if err != nil {
resource.Err = err
return
}
if command.Ctx.OutputFormat == "json" || command.Ctx.OutputFormat == "csv" {
resource.Result = structs.Map(keypair)
} else {
resource.Result = printGenerate(keypair)
}
}
示例3: Execute
func (command *commandGenerate) Execute(resource *handler.Resource) {
opts := resource.Params.(*paramsGenerate).opts
keypair, err := keypairs.Create(command.Ctx.ServiceClient, opts).Extract()
if err != nil {
resource.Err = err
return
}
c := command.Ctx.CLIContext
if c.IsSet("json") || c.IsSet("csv") || c.GlobalIsSet("json") || c.GlobalIsSet("csv") {
resource.Result = structs.Map(keypair)
} else {
resource.Result = printGenerate(keypair)
}
}
示例4: Execute
func (command *commandGet) Execute(resource *handler.Resource) {
keypairName := resource.Params.(*paramsGet).keypair
keypair, err := keypairs.Get(command.Ctx.ServiceClient, keypairName).Extract()
if err != nil {
resource.Err = err
return
}
result := structs.Map(keypair)
if command.Ctx.OutputFormat == "json" {
resource.Result = result
} else {
// Assume they want the key directly
resource.Result = result["PublicKey"]
}
}
示例5: Execute
func (command *commandList) Execute(resource *handler.Resource) {
opts := resource.Params.(*paramsList).opts
opts.Full = true
containerName := resource.Params.(*paramsList).container
allPages := resource.Params.(*paramsList).allPages
pager := objects.List(command.Ctx.ServiceClient, containerName, opts)
if allPages {
pages, err := pager.AllPages()
if err != nil {
resource.Err = err
return
}
info, err := objects.ExtractInfo(pages)
if err != nil {
resource.Err = err
return
}
result := make([]map[string]interface{}, len(info))
for j, obj := range info {
result[j] = structs.Map(&obj)
}
resource.Result = result
} else {
limit := opts.Limit
err := pager.EachPage(func(page pagination.Page) (bool, error) {
info, err := objects.ExtractInfo(page)
if err != nil {
return false, err
}
result := make([]map[string]interface{}, len(info))
for j, obj := range info {
result[j] = structs.Map(&obj)
}
resource.Result = result
if len(info) >= limit {
return false, nil
}
limit -= len(info)
command.Ctx.WaitGroup.Add(1)
command.Ctx.Results <- resource
return true, nil
})
if err != nil {
resource.Err = err
return
}
}
}
示例6: 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)
}
示例7: PreCSV
func (command *commandGetMetadata) PreCSV(resource *handler.Resource) {
resource.Result = map[string]interface{}{
"Metadata": resource.Result,
}
resource.Keys = []string{"Metadata"}
resource.FlattenMap("Metadata")
}
示例8: 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
}
示例9: 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)
}
示例10: 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
}
示例11: 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
}
示例12: Execute
func (command *commandList) Execute(resource *handler.Resource) {
opts := resource.Params.(*paramsList).opts
allPages := resource.Params.(*paramsList).allPages
pager := subnets.List(command.Ctx.ServiceClient, opts)
if allPages {
pages, err := pager.AllPages()
if err != nil {
resource.Err = err
return
}
info, err := osSubnets.ExtractSubnets(pages)
if err != nil {
resource.Err = err
return
}
result := make([]map[string]interface{}, len(info))
for j, subnet := range info {
result[j] = subnetSingle(&subnet)
}
resource.Result = result
} else {
limit := opts.Limit
err := pager.EachPage(func(page pagination.Page) (bool, error) {
info, err := osSubnets.ExtractSubnets(page)
if err != nil {
return false, err
}
result := make([]map[string]interface{}, len(info))
for j, subnet := range info {
result[j] = subnetSingle(&subnet)
}
resource.Result = result
if len(info) >= limit {
return false, nil
}
limit -= len(info)
command.Ctx.WaitGroup.Add(1)
command.Ctx.Results <- resource
return true, nil
})
if err != nil {
resource.Err = err
return
}
}
}
示例13: 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)
}
示例14: Execute
func (command *commandGenerate) Execute(resource *handler.Resource) {
opts := resource.Params.(*paramsGenerate).opts
keypair, err := keypairs.Create(command.Ctx.ServiceClient, opts).Extract()
if err != nil {
resource.Err = err
return
}
resource.Result = structs.Map(keypair)
}
示例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)
}