id = "openstackclient"
name = "OpenStackClient"
homepage = "https://docs.openstack.org/python-openstackclient/"
description = "OpenStack command-line client."
executables = ["openstack"]
[dotfiles]
paths = ["~/.config/openstack/clouds-public.yaml"]
exclude = []
secret = ["~/.config/openstack/clouds.yaml"]
side_effect = false
[commands]
format = 1
label = "OpenStack servers"
description = "List compute servers or boot a new one. Authentication comes from clouds.yaml or OS_* environment variables; networks, volumes, images and the other resource commands are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.subcommand]]
path = ["server", "list"]
label = "List servers"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/server.html"
revision = "latest"
evidence = """
--name <name-regex>: Regular expression to match names
--status <status>: Search by server status
--flavor <flavor>: Search by flavor (name or ID)
--image <image>: Search by image (name or ID)
--ip <ip-address-regex>: Regular expression to match IP addresses
--all-projects: Include all projects (admin only)
--long: List additional fields in output
--limit <limit>: The maximum number of entries to return per page.
--sort-column SORT_COLUMN: specify the column(s) to sort the data
--sort-ascending: sort the column(s) in ascending order
--sort-descending: sort the column(s) in descending order
--tags <tag>: Only list servers with the specified tag. Specify multiple times to filter on multiple tags.
"""
[[commands.subcommand.field]]
id = "name"
label = "Name (regex)"
type = "string"
option = ["--name"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "status"
label = "Status"
type = "string"
option = ["--status"]
suggestions = [{ value = "ACTIVE", label = "Active" }, { value = "SHUTOFF", label = "Shut off" }, { value = "ERROR", label = "Error" }, { value = "BUILD", label = "Build" }]
sources = ["docs"]
[[commands.subcommand.field]]
id = "flavor"
label = "Flavor"
type = "string"
option = ["--flavor"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "image"
label = "Image"
type = "string"
option = ["--image"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "ip"
label = "IP address (regex)"
type = "string"
option = ["--ip"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "all_projects"
label = "All projects"
description = "Admin only."
type = "boolean"
option = ["--all-projects"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "long"
label = "Extra columns"
type = "boolean"
option = ["--long"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "sort_column"
label = "Sort columns"
type = "string"
option = ["--sort-column"]
multiple = true
sources = ["docs"]
[[commands.subcommand.field]]
id = "sort_descending"
label = "Sort descending"
type = "boolean"
option = ["--sort-descending"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "limit"
label = "Page size"
type = "integer"
option = ["--limit"]
validation = { min = 1 }
sources = ["docs"]
[[commands.subcommand.field]]
id = "tags"
label = "Tags"
type = "string"
option = ["--tags"]
multiple = true
sources = ["docs"]
[[commands.subcommand.task]]
id = "active"
label = "List active servers"
fields = ["status", "long"]
set = { status = ["ACTIVE"] }
[[commands.subcommand.task]]
id = "find"
label = "Find by name"
fields = ["name", "long"]
required = ["name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["name", "status", "flavor", "image", "ip", "long"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["all_projects", "sort_column", "sort_descending", "limit", "tags"]
[[commands.subcommand]]
path = ["server", "create"]
label = "Create a server"
[[commands.subcommand.source]]
id = "docs"
kind = "manual"
url = "https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/server.html"
revision = "latest"
evidence = """
--flavor <flavor>: Create server with this flavor (name or ID)
--image <image>: Create server boot disk from this image (name or ID)
--network <network>: Create a NIC on the server and connect it to network. Specify option multiple times to create multiple NICs.
--security-group <security-group>: Security group to associate with ports attached to this server (name or ID) (repeat option to set multiple groups)
--key-name <key-name>: Keypair to inject into this server
--user-data <user-data>: User data file to serve from the metadata server
--availability-zone <zone-name>: Select an availability zone for the server.
--property <key=value>: Set a property on this server (repeat option to set multiple values)
--min <count>: Minimum number of servers to launch (default=1)
--max <count>: Maximum number of servers to launch (default=1)
--wait: Wait for build to complete
server-name: New server name
"""
[[commands.subcommand.field]]
id = "flavor"
label = "Flavor"
description = "Name or ID."
type = "string"
option = ["--flavor"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "image"
label = "Image"
description = "Name or ID of the boot image."
type = "string"
option = ["--image"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "network"
label = "Networks"
description = "Name or ID; repeat to create several NICs."
type = "string"
option = ["--network"]
multiple = true
sources = ["docs"]
[[commands.subcommand.field]]
id = "security_group"
label = "Security groups"
type = "string"
option = ["--security-group"]
multiple = true
sources = ["docs"]
[[commands.subcommand.field]]
id = "key_name"
label = "Keypair"
type = "string"
option = ["--key-name"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "user_data"
label = "User data file"
type = "path"
option = ["--user-data"]
path = { kind = "file", role = "input" }
sources = ["docs"]
[[commands.subcommand.field]]
id = "availability_zone"
label = "Availability zone"
type = "string"
option = ["--availability-zone"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "property"
label = "Properties"
description = "key=value; repeatable."
type = "string"
option = ["--property"]
multiple = true
sources = ["docs"]
[[commands.subcommand.field]]
id = "min"
label = "Minimum count"
type = "integer"
option = ["--min"]
validation = { min = 1 }
sources = ["docs"]
[[commands.subcommand.field]]
id = "max"
label = "Maximum count"
type = "integer"
option = ["--max"]
validation = { min = 1 }
sources = ["docs"]
[[commands.subcommand.field]]
id = "wait"
label = "Wait for build"
type = "boolean"
option = ["--wait"]
sources = ["docs"]
[[commands.subcommand.field]]
id = "server_name"
label = "Server name"
type = "string"
position = 0
sources = ["docs"]
[[commands.subcommand.task]]
id = "boot"
label = "Boot from image"
fields = ["flavor", "image", "network", "key_name", "wait", "server_name"]
required = ["flavor", "image", "server_name"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["server_name", "flavor", "image", "network", "key_name", "wait"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["security_group", "user_data", "availability_zone", "property", "min", "max"]