id = "openstackclient" name = "OpenStackClient" homepage = "https://docs.openstack.org/python-openstackclient/" description = "OpenStack command-line client." executables = ["openstack"] [dotfiles] # https://docs.openstack.org/python-openstackclient/2025.1/configuration/index.html # documents ~/.config/openstack/clouds.yaml and clouds-public.yaml. clouds.yaml # contains complete cloud connection details and is considered private by the # official documentation. 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 : Regular expression to match names --status : Search by server status --flavor : Search by flavor (name or ID) --image : Search by image (name or ID) --ip : Regular expression to match IP addresses --all-projects: Include all projects (admin only) --long: List additional fields in output --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 : 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 : Create server with this flavor (name or ID) --image : Create server boot disk from this image (name or ID) --network : Create a NIC on the server and connect it to network. Specify option multiple times to create multiple NICs. --security-group : Security group to associate with ports attached to this server (name or ID) (repeat option to set multiple groups) --key-name : Keypair to inject into this server --user-data : User data file to serve from the metadata server --availability-zone : Select an availability zone for the server. --property : Set a property on this server (repeat option to set multiple values) --min : Minimum number of servers to launch (default=1) --max : 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"]