import ( "fmt" "strings" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osObjects "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/objectstorage/v1/objects" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/objects" "github.com/jrperritt/rack/util" ) var deleteMetadata = cli.Command{ Name: "delete-metadata", Usage: util.Usage(commandPrefix, "delete-metadata", "--name <objectName> --container <containerName> --metadata-keys <metadataKeys>"), Description: "Delete specific metadata from the given object.", Action: actionDeleteMetadata, Flags: commandoptions.CommandFlags(flagsDeleteMetadata, keysDeleteMetadata), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsDeleteMetadata, keysDeleteMetadata)) }, } func flagsDeleteMetadata() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[required] The object name from which to delete the metadata.", }, cli.StringFlag{
package securitygroupcommands import ( "fmt" "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osSecurityGroups "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/groups" securityGroups "github.com/rackspace/gophercloud/rackspace/networking/v2/security/groups" ) var remove = cli.Command{ Name: "delete", Usage: util.Usage(commandPrefix, "delete", ""), Description: "Deletes an existing security group", Action: actionDelete, Flags: util.CommandFlags(flagsDelete, keysDelete), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsDelete, keysDelete)) }, } func flagsDelete() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `name` or `stdin` isn't provided] The ID of the security group.", }, cli.StringFlag{ Name: "name",
package keypaircommands import ( "fmt" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/compute/v2/keypairs" "github.com/jrperritt/rack/util" ) var remove = cli.Command{ Name: "delete", Usage: util.Usage(commandPrefix, "delete", "[--name <keypairName> | --stdin name]"), Description: "Deletes a keypair", Action: actionDelete, Flags: commandoptions.CommandFlags(flagsDelete, keysDelete), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsDelete, keysDelete)) }, } func flagsDelete() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` isn't provided] The name of the keypair", }, cli.StringFlag{ Name: "stdin",
package portcommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osPorts "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/networking/v2/ports" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/networking/v2/ports" "github.com/jrperritt/rack/util" ) var get = cli.Command{ Name: "get", Usage: util.Usage(commandPrefix, "get", ""), Description: "Gets a port", Action: actionGet, Flags: util.CommandFlags(flagsGet, keysGet), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsGet, keysGet)) }, } func flagsGet() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `name` or `stdin` isn't provided] The ID of the port.", }, cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` or `id` isn't provided] The name of the port.", },
package containercommands import ( "fmt" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/containers" "github.com/jrperritt/rack/util" ) var get = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "[--name <containerName> | --stdin name]"), Description: "Creates a container", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` isn't provided] The name of the container", }, cli.StringFlag{ Name: "stdin", Usage: "[optional; required if `name` isn't provided] The field being piped into STDIN. Valid values are: name",
package volumecommands import ( "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osVolumes "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--size <size>"), Description: "Creates a volume", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.IntFlag{ Name: "size", Usage: "[required] The size of this volume (in gigabytes). Valid values are between 75 and 1024.", }, cli.StringFlag{ Name: "name", Usage: "[optional] A name for this volume.", }, cli.StringFlag{
package volumecommands import ( "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osVolumes "github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes" ) var update = cli.Command{ Name: "update", Usage: util.Usage(commandPrefix, "update", "--id <volumeID>"), Description: "Updates a volume", Action: actionUpdate, Flags: util.CommandFlags(flagsUpdate, keysUpdate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsUpdate, keysUpdate)) }, } func flagsUpdate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[required] The ID of the volume to update.", }, cli.StringFlag{ Name: "rename", Usage: "[optional] A new name for this volume.", }, cli.StringFlag{
package instancecommands import ( "fmt" "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osServers "github.com/rackspace/gophercloud/openstack/compute/v2/servers" "github.com/rackspace/gophercloud/rackspace/compute/v2/servers" ) var resize = cli.Command{ Name: "resize", Usage: util.Usage(commandPrefix, "resize", "[--id <serverID>|--name <serverName>|--stdin id] --flavor-id <flavor-id>"), Description: "Resizes an existing server", Action: actionResize, Flags: util.CommandFlags(flagsResize, keysResize), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsResize, keysResize)) }, } func flagsResize() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "flavor-id", Usage: "[required] The ID of the flavor that the resized server should have.", }, cli.StringFlag{ Name: "id",
package subnetcommands import ( "strings" "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osSubnets "github.com/rackspace/gophercloud/openstack/networking/v2/subnets" "github.com/rackspace/gophercloud/rackspace/networking/v2/subnets" ) var update = cli.Command{ Name: "update", Usage: util.Usage(commandPrefix, "update", ""), Description: "Updates a subnet", Action: actionUpdate, Flags: util.CommandFlags(flagsUpdate, keysUpdate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsUpdate, keysUpdate)) }, } func flagsUpdate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `name` isn't provided] The ID of the subnet to update.", }, cli.StringFlag{ Name: "name",
package instancecommands import ( "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osServers "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/compute/v2/servers" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/compute/v2/servers" "github.com/jrperritt/rack/util" ) var getMetadata = cli.Command{ Name: "get-metadata", Usage: util.Usage(commandPrefix, "get-metadata", ""), Description: "Get all metadata associated with the given server", Action: actionGetMetadata, Flags: commandoptions.CommandFlags(flagsGetMetadata, keysGetMetadata), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsGetMetadata, keysGetMetadata)) }, } func flagsGetMetadata() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `name` isn't provided] The server ID with the metadata.", }, cli.StringFlag{ Name: "name", Usage: "[optional; required if `name` isn't provided] The server name with the metadata.",
package portcommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osPorts "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/networking/v2/ports" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/networking/v2/ports" "github.com/jrperritt/rack/util" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--network-id <network-id>"), Description: "Creates a ports", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "network-id", Usage: "[required] The network ID of the port.", }, cli.StringFlag{ Name: "name", Usage: "[optional] The name of the port.", },
package objectcommands import ( "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/fatih/structs" osObjects "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/objectstorage/v1/objects" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/pagination" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/objects" "github.com/jrperritt/rack/util" ) var list = cli.Command{ Name: "list", Usage: util.Usage(commandPrefix, "list", "[--container <containerName> | --stdin container]"), Description: "Lists objects in a container", Action: actionList, Flags: commandoptions.CommandFlags(flagsList, keysList), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsList, keysList)) }, } func flagsList() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "container", Usage: "[optional; required if `stdin` isn't provided] The name of the container", }, cli.StringFlag{
package containercommands import ( "strings" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/containers" "github.com/jrperritt/rack/util" ) var updateMetadata = cli.Command{ Name: "update-metadata", Usage: util.Usage(commandPrefix, "update-metadata", "--name <containerName> --metadata <metadata>"), Description: "Create or replace metadata for the given container. Any existing metadata will remain in tact.", Action: actionUpdateMetadata, Flags: commandoptions.CommandFlags(flagsUpdateMetadata, keysUpdateMetadata), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsUpdateMetadata, keysUpdateMetadata)) }, } func flagsUpdateMetadata() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[required] The container name with the metadata.", }, cli.StringFlag{ Name: "metadata",
package networkcommands import ( "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osNetworks "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/networking/v2/networks" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/networking/v2/networks" "github.com/jrperritt/rack/util" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--name <networkName>"), Description: "Creates a new networks instance", Action: actionCreate, Flags: commandoptions.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[required] The name that the network should have.", }, cli.StringFlag{ Name: "stdin", Usage: "[optional] The field being piped into STDIN. Valid values are: name",
package instancecommands import ( "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osServers "github.com/rackspace/gophercloud/openstack/compute/v2/servers" "github.com/rackspace/gophercloud/rackspace/compute/v2/servers" ) var rebuild = cli.Command{ Name: "rebuild", Usage: util.Usage(commandPrefix, "rebuild", "[--id <serverID>|--name <serverName>] --image-id <image-id> --admin-pass <admin-pass>"), Description: "Rebuilds an existing server", Action: actionRebuild, Flags: util.CommandFlags(flagsRebuild, keysGet), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsRebuild, keysGet)) }, } func flagsRebuild() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `name` isn't provided] The ID of the server.", }, cli.StringFlag{ Name: "name", Usage: "[optional; required if `id` isn't provided] The name of the server.", },
package volumecommands import ( "fmt" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osVolumes "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes" "github.com/jrperritt/rack/util" ) var remove = cli.Command{ Name: "delete", Usage: util.Usage(commandPrefix, "delete", "[--id <volumeID> | | --name <volumeName> | --stdin id]"), Description: "Deletes a volume", Action: actionDelete, Flags: commandoptions.CommandFlags(flagsDelete, keysDelete), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsDelete, keysDelete)) }, } func flagsDelete() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `stdin` or `name` isn't provided] The ID of the volume.", }, cli.StringFlag{ Name: "name",
package imagecommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/fatih/structs" osImages "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/compute/v2/images" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/compute/v2/images" "github.com/jrperritt/rack/util" ) var get = cli.Command{ Name: "get", Usage: util.Usage(commandPrefix, "get", "[--id <serverID> | --name <serverName> | --stdin id]"), Description: "Retreives an image", Action: actionGet, Flags: util.CommandFlags(flagsGet, keysGet), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsGet, keysGet)) }, } func flagsGet() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `stdin` or `name` isn't provided] The ID of the image.", }, cli.StringFlag{ Name: "name", Usage: "[optional; required if `id` or `stdin` isn't provided] The name of the image.",
package instancecommands import ( "io/ioutil" "strings" "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osServers "github.com/rackspace/gophercloud/openstack/compute/v2/servers" "github.com/rackspace/gophercloud/rackspace/compute/v2/servers" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "[--name <instanceName> | --stdin name]"), Description: "Creates a new server instance", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` isn't provided] The name that the instance should have.", }, cli.StringFlag{
package securitygroupcommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osSecurityGroups "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/groups" securityGroups "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/networking/v2/security/groups" "github.com/jrperritt/rack/util" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--name <securityGroupName>"), Description: "Creates a security group", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[required] The name for the security group.", }, cli.StringFlag{ Name: "description", Usage: "[optional] A description for the security group.", },
package networkcommands import ( "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" osNetworks "github.com/rackspace/gophercloud/openstack/networking/v2/networks" "github.com/rackspace/gophercloud/rackspace/networking/v2/networks" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", ""), Description: "Creates a new networks instance", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[optional] The name that the network should have.", }, cli.StringFlag{ Name: "stdin", Usage: "[optional] The field being piped into STDIN. Valid values are: name", },
package keypaircommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/fatih/structs" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/compute/v2/keypairs" "github.com/jrperritt/rack/util" ) var get = cli.Command{ Name: "get", Usage: util.Usage(commandPrefix, "get", "[--name <keypairName> | stdin name]"), Description: "Retreives a keypair", Action: actionGet, Flags: util.CommandFlags(flagsGet, keysGet), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsGet, keysGet)) }, } func flagsGet() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` isn't provided] The name of the keypair", }, cli.StringFlag{ Name: "stdin", Usage: "[optional; required if `name` isn't provided] The field being piped into STDIN. Valid values are: name", },
package containercommands import ( "fmt" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/containers" "github.com/jrperritt/rack/util" ) var update = cli.Command{ Name: "update", Usage: util.Usage(commandPrefix, "update", "--name <containerName>"), Description: "Updates a container", Action: actionUpdate, Flags: commandoptions.CommandFlags(flagsUpdate, keysUpdate), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsUpdate, keysUpdate)) }, } func flagsUpdate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[required] The name of the container", }, cli.StringFlag{ Name: "container-read",
package containercommands import ( "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/containers" "github.com/jrperritt/rack/util" ) var getMetadata = cli.Command{ Name: "get-metadata", Usage: util.Usage(commandPrefix, "get-metadata", "--name <containerName>"), Description: "Get metadata for the given container.", Action: actionGetMetadata, Flags: commandoptions.CommandFlags(flagsGetMetadata, keysGetMetadata), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsGetMetadata, keysGetMetadata)) }, } func flagsGetMetadata() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "[required] The container name with the metadata.", }, } } var keysGetMetadata = []string{"Metadata"}
package subnetcommands import ( "strings" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osSubnets "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/networking/v2/subnets" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/networking/v2/subnets" "github.com/jrperritt/rack/util" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--network-id <networkID> --cidr <CIDR> --ip-version <4|6>"), Description: "Creates a subnet", Action: actionCreate, Flags: commandoptions.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "network-id", Usage: "[required] The network ID under which to create this subnet.", }, cli.StringFlag{
package volumecommands import ( "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osVolumes "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/pagination" "github.com/jrperritt/rack/util" ) var list = cli.Command{ Name: "list", Usage: util.Usage(commandPrefix, "list", ""), Description: "Lists existing volumes", Action: actionList, Flags: commandoptions.CommandFlags(flagsList, keysList), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsList, keysList)) }, } func flagsList() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "name", Usage: "Only list volumes with this name.", }, cli.StringFlag{ Name: "status", Usage: "Only list volumes that have this status.",
package objectcommands import ( "fmt" "github.com/codegangsta/cli" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/util" "github.com/rackspace/gophercloud/openstack/objectstorage/v1/objects" ) var remove = cli.Command{ Name: "delete", Usage: util.Usage(commandPrefix, "delete", "--container <containerName> [--name <objectName> | --stdin name]"), Description: "Deletes an object", Action: actionDelete, Flags: util.CommandFlags(flagsDelete, keysDelete), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsDelete, keysDelete)) }, } func flagsDelete() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "container", Usage: "[required] The name of the container", }, cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` isn't provided] The name of the object",
package objectcommands import ( "io/ioutil" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/objectstorage/v1/objects" "github.com/jrperritt/rack/util" ) var download = cli.Command{ Name: "download", Usage: util.Usage(commandPrefix, "download", "--container <containerName> --name <objectName>"), Description: "Downloads an object", Action: actionDownload, Flags: util.CommandFlags(flagsDownload, keysDownload), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsDownload, keysDownload)) }, } func flagsDownload() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "container", Usage: "[required] The name of the container containing the object to download", }, cli.StringFlag{ Name: "name", Usage: "[required] The name of the object to download",
package snapshotcommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osSnapshots "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/blockstorage/v1/snapshots" "github.com/jrperritt/rack/util" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--volume-id <volumeID>"), Description: "Creates a volume", Action: actionCreate, Flags: util.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "volume-id", Usage: "[required] The volume ID from which to create this snapshot.", }, cli.StringFlag{ Name: "name", Usage: "[optional] A name for this snapshot.", }, cli.StringFlag{
package snapshotcommands import ( "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osSnapshots "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/blockstorage/v1/snapshots" "github.com/jrperritt/rack/util" ) var get = cli.Command{ Name: "get", Usage: util.Usage(commandPrefix, "get", "[--id <snapshotID> | --name <snapshotName> | --stdin id]"), Description: "Gets a snapshot", Action: actionGet, Flags: util.CommandFlags(flagsGet, keysGet), BashComplete: func(c *cli.Context) { util.CompleteFlags(util.CommandFlags(flagsGet, keysGet)) }, } func flagsGet() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "id", Usage: "[optional; required if `stdin` or `name` isn't provided] The ID of the snapshot.", }, cli.StringFlag{ Name: "name", Usage: "[optional; required if `stdin` or `id` isn't provided] The name of the snapshot.", }, cli.StringFlag{
package securitygrouprulecommands import ( "fmt" "github.com/jrperritt/rack/commandoptions" "github.com/jrperritt/rack/handler" "github.com/jrperritt/rack/internal/github.com/codegangsta/cli" osSecurityGroupRules "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/openstack/networking/v2/extensions/security/rules" securityGroupRules "github.com/jrperritt/rack/internal/github.com/rackspace/gophercloud/rackspace/networking/v2/security/rules" "github.com/jrperritt/rack/util" ) var create = cli.Command{ Name: "create", Usage: util.Usage(commandPrefix, "create", "--security-group-id <securityGroupID> --direction <ingress|egress> --ether-type <ipv4|ipv6>"), Description: "Creates a security group rule", Action: actionCreate, Flags: commandoptions.CommandFlags(flagsCreate, keysCreate), BashComplete: func(c *cli.Context) { commandoptions.CompleteFlags(commandoptions.CommandFlags(flagsCreate, keysCreate)) }, } func flagsCreate() []cli.Flag { return []cli.Flag{ cli.StringFlag{ Name: "security-group-id", Usage: "[required] The security group ID with which to associate this security group rule.", }, cli.StringFlag{