Nova boot doesn't tell positional argument completely

Bug #1680331 reported by NidhiMittalHada
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-novaclient
Won't Fix
Wishlist
Unassigned

Bug Description

Nova help text for nova boot says that only mandatory arg for cli is name but thats not true.

=========================================================================================================
[root@greglinux2 ~(keystone_admin)]#
[root@greglinux2 ~(keystone_admin)]# nova help boot
usage: nova boot [--flavor <flavor>] [--image <image>]
                 [--image-with <key=value>] [--boot-volume <volume_id>]
                 [--snapshot <snapshot_id>] [--min-count <number>]
                 [--max-count <number>] [--meta <key=value>]
                 [--file <dst-path=src-path>] [--key-name <key-name>]
                 [--user-data <user-data>]
                 [--availability-zone <availability-zone>]
                 [--security-groups <security-groups>]
                 [--block-device-mapping <dev-name=mapping>]
                 [--block-device key1=value1[,key2=value2...]]
                 [--swap <swap_size>]
                 [--ephemeral size=<size>[,format=<format>]]
                 [--hint <key=value>]
                 [--nic <net-id=net-uuid,net-name=network-name,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid>]
                 [--config-drive <value>] [--poll] [--admin-pass <value>]
                 [--access-ip-v4 <value>] [--access-ip-v6 <value>]
                 [--description <description>]
                 <name>

Boot a new server.

Positional arguments:
  <name>                        Name for the new server.

Optional arguments:
  --flavor <flavor>             Name or ID of flavor (see 'nova flavor-list').
  --image <image>               Name or ID of image (see 'nova image-list').
  --image-with <key=value>      Image metadata property (see 'nova image-
                                show').
  --boot-volume <volume_id>     Volume ID to boot from.
  --snapshot <snapshot_id>      Snapshot ID to boot from (will create a
                                volume).
  --min-count <number>          Boot at least <number> servers (limited by
                                quota).
  --max-count <number>          Boot up to <number> servers (limited by
                                quota).
  --meta <key=value>            Record arbitrary key/value metadata to
                                /meta_data.json on the metadata server. Can be
                                specified multiple times.
  --file <dst-path=src-path>    Store arbitrary files from <src-path> locally
                                to <dst-path> on the new server. Limited by
                                the injected_files quota value.
  --key-name <key-name>         Key name of keypair that should be created
                                earlier with the command keypair-add.
  --user-data <user-data>       user data file to pass to be exposed by the
                                metadata server.
  --availability-zone <availability-zone>
                                The availability zone for server placement.
  --security-groups <security-groups>
                                Comma separated list of security group names.
  --block-device-mapping <dev-name=mapping>
                                Block device mapping in the format <dev-
                                name>=<id>:<type>:<size(GB)>:<delete-on-
                                terminate>.
  --block-device key1=value1[,key2=value2...]
                                Block device mapping with the keys: id=UUID
                                (image_id, snapshot_id or volume_id only if
                                using source image, snapshot or volume)
                                source=source type (image, snapshot, volume or
                                blank), dest=destination type of the block
                                device (volume or local), bus=device's bus
                                (e.g. uml, lxc, virtio, ...; if omitted,
                                hypervisor driver chooses a suitable default,
                                honoured only if device type is supplied)
                                type=device type (e.g. disk, cdrom, ...;
                                defaults to 'disk') device=name of the device
                                (e.g. vda, xda, ...; if omitted, hypervisor
                                driver chooses suitable device depending on
                                selected bus; note the libvirt driver always
                                uses default device names), size=size of the
                                block device in MB(for swap) and in GB(for
                                other formats) (if omitted, hypervisor driver
                                calculates size), format=device will be
                                formatted (e.g. swap, ntfs, ...; optional),
                                bootindex=integer used for ordering the boot
                                disks (for image backed instances it is equal
                                to 0, for others need to be specified) and
                                shutdown=shutdown behaviour (either preserve
                                or remove, for local destination set to
                                remove).
  --swap <swap_size>            Create and attach a local swap block device of
                                <swap_size> MB.
  --ephemeral size=<size>[,format=<format>]
                                Create and attach a local ephemeral block
                                device of <size> GB and format it to <format>.
  --hint <key=value>            Send arbitrary key/value pairs to the
                                scheduler for custom use.
  --nic <net-id=net-uuid,net-name=network-name,v4-fixed-ip=ip-addr,v6-fixed-ip=ip-addr,port-id=port-uuid>
                                Create a NIC on the server. Specify option
                                multiple times to create multiple NICs. net-
                                id: attach NIC to network with this UUID net-
                                name: attach NIC to network with this name
                                (either port-id or net-id or net-name must be
                                provided), v4-fixed-ip: IPv4 fixed address for
                                NIC (optional), v6-fixed-ip: IPv6 fixed
                                address for NIC (optional), port-id: attach
                                NIC to port with this UUID (either port-id or
                                net-id must be provided).
  --config-drive <value>        Enable config drive.
  --poll                        Report the new server boot progress until it
                                completes.
  --admin-pass <value>          Admin password for the instance.
  --access-ip-v4 <value>        Alternative access IPv4 of the instance.
  --access-ip-v6 <value>        Alternative access IPv6 of the instance.
  --description <description>   Description for the server. (Supported by API
                                versions '2.19' - '2.latest')

[root@greglinux2 ~(keystone_admin)]# nova boot rajib_instance
ERROR (CommandError): you need to specify a Flavor ID. >>>>>>>>>>>>>>>>>>>> It asks for flavor id

[root@greglinux2 ~(keystone_admin)]# nova boot --flavor m1.tiny rajib_instance
ERROR (CommandError): you need to specify at least one source ID (Image, Snapshot, or Volume), a block device mapping or provide a set of properties to match against an image

>>>>>>>>>>>>>>>>>>>>>> Its asks mandatorily for Image/Snapshot/Volume id

[root@greglinux2 ~(keystone_admin)]# nova boot --flavor m1.tiny --image e0b99f5c-985a-445c-a47d-1a0d3265d926 rajib_instance
ERROR (Conflict): Multiple possible networks found, use a Network ID to be more specific. (HTTP 409) (Request-ID: req-de90003e-35cc-4279-87a3-ade443ca6cbf)

>>>>>>>>>>>>>>>> Its asks for network id

[root@greglinux2 ~(keystone_admin)]# nova boot --flavor m1.tiny --image e0b99f5c-985a-445c-a47d-1a0d3265d926 --nic net-id=6deaa034-e828-4526-95d2-b5a3c6a143ac rajib_instance

>>>>>>>>>>>>>>>>>>>>>>>>It works well when flavor image and net-id is given

+--------------------------------------+-----------------------------------------------+
| Property                             | Value                                         |
+--------------------------------------+-----------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                        |
| OS-EXT-AZ:availability_zone          |                                               |
| OS-EXT-SRV-ATTR:host                 | -                                             |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                             |
| OS-EXT-SRV-ATTR:instance_name        | instance-0000009f                             |
| OS-EXT-STS:power_state               | 0                                             |
| OS-EXT-STS:task_state                | scheduling                                    |
| OS-EXT-STS:vm_state                  | building                                      |
| OS-SRV-USG:launched_at               | -                                             |
| OS-SRV-USG:terminated_at             | -                                             |
| accessIPv4                           |                                               |
| accessIPv6                           |                                               |
| adminPass                            | f3axzeBG3dsh                                  |
| config_drive                         |                                               |
| created                              | 2017-04-06T05:24:18Z                          |
| flavor                               | m1.tiny (1)                                   |
| hostId                               |                                               |
| id                                   | 20a7cda5-f5b3-4e93-9d22-ceb3129d964e          |
| image                                | cirros (e0b99f5c-985a-445c-a47d-1a0d3265d926) |
| key_name                             | -                                             |
| metadata                             | {}                                            |
| name                                 | rajib_instance                                |
| os-extended-volumes:volumes_attached | []                                            |
| progress                             | 0                                             |
| security_groups                      | default                                       |
| status                               | BUILD                                         |
| tenant_id                            | f29439bb99d54dba980631b1ef7bd8cd              |
| updated                              | 2017-04-06T05:24:18Z                          |
| user_id                              | c2a01ca6f6f84d388dbd12c68eaa1d13              |
+--------------------------------------+-----------------------------------------------+
[root@greglinux2 ~(keystone_admin)]#
[root@greglinux2 ~(keystone_admin)]#
[root@greglinux2 ~(keystone_admin)]#

Hence it looks like
Positional arguments should be : name,flavor, nic, image or boot-volume or snapshot

affects: nova → python-novaclient
Changed in python-novaclient:
assignee: nobody → NidhiMittalHada (nidhimittal19)
status: New → In Progress
Revision history for this message
Stephen Finucane (stephenfinucane) wrote :

I appreciate where this is coming from, but this is an issue with argparse that we're not going to be able to easily fix, unfortunately. I'm marking this as wontfix just to avoid giving false promises.

Changed in python-novaclient:
importance: Undecided → Wishlist
status: In Progress → Confirmed
status: Confirmed → Won't Fix
assignee: NidhiMittalHada (nidhimittal19) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.