Provided by: nova-common_29.0.1-0ubuntu1_all bug

NAME

       nova-manage - Management tool for the OpenStack Compute services.

SYNOPSIS

          nova-manage <category> [<action> [<options>...]]

DESCRIPTION

       nova-manage  controls  cloud computing instances by managing various admin-only aspects of
       Nova.

       The standard pattern for executing a nova-manage command is:

          nova-manage <category> <command> [<args>]

       Run without arguments to see a list of available command categories:

          nova-manage

       You can also run with a category argument such as db to see a list of all commands in that
       category:

          nova-manage db

OPTIONS

       These  options  apply  to  all  commands  and  may  be given in any order, before or after
       commands. Individual commands may provide additional options. Options without an  argument
       can be combined after a single dash.

       -h, --help
              Show a help message and exit

       --config-dir <dir>
              Path  to  a config directory to pull *.conf files from. This file set is sorted, so
              as to provide a predictable parse order if individual options are over-ridden.  The
              set  is  parsed  after  the file(s) specified via previous --config-file, arguments
              hence over-ridden options in the directory take precedence.  This  option  must  be
              set from the command-line.

       --config-file <path>
              Path  to  a config file to use. Multiple config files can be specified, with values
              in later files taking precedence. Defaults to None. This option must  be  set  from
              the command-line.

       --log-config-append <path>, --log-config <path>, --log_config <path>
              The  name  of  a  logging configuration file. This file is appended to any existing
              logging configuration files.  For details about logging  configuration  files,  see
              the Python logging module documentation. Note that when logging configuration files
              are used then all logging configuration is set in the configuration file and  other
              logging configuration options are ignored (for example, --log-date-format).

       --log-date-format <format>
              Defines  the  format  string  for  %(asctime)s  in log records. Default: None. This
              option is ignored if --log-config-append is set.

       --log-dir <dir>, --logdir <dir>
              The base directory used for relative log_file paths.  This  option  is  ignored  if
              --log-config-append is set.

       --log-file PATH, --logfile <path>
              Name  of log file to send logging output to.  If no default is set, logging will go
              to stderr as defined by use_stderr.  This option is ignored if  --log-config-append
              is set.

       --syslog-log-facility SYSLOG_LOG_FACILITY
              Syslog   facility   to   receive   log   lines.    This   option   is   ignored  if
              --log-config-append is set.

       --use-journal
              Enable journald for logging. If running in a systemd environment you  may  wish  to
              enable  journal  support.   Doing  so  will  use  the journal native protocol which
              includes structured metadata in addition to log messages. This option is ignored if
              --log-config-append is set.

       --nouse-journal
              The inverse of --use-journal.

       --use-json
              Use  JSON  formatting for logging. This option is ignored if --log-config-append is
              set.

       --nouse-json
              The inverse of --use-json.

       --use-syslog
              Use syslog for logging. Existing syslog format is DEPRECATED and  will  be  changed
              later to honor RFC5424.  This option is ignored if --log-config-append is set.

       --nouse-syslog
              The inverse of --use-syslog.

       --watch-log-file
              Uses  logging  handler  designed  to  watch file system.  When log file is moved or
              removed this handler will open a new log file with specified path  instantaneously.
              It  makes  sense only if --log-file option is specified and Linux platform is used.
              This option is ignored if --log-config-append is set.

       --nowatch-log-file
              The inverse of --watch-log-file.

       --debug, -d
              If enabled, the logging level will be set to DEBUG  instead  of  the  default  INFO
              level.

       --nodebug
              The inverse of --debug.

       --post-mortem
              Allow post-mortem debugging.

       --nopost-mortem
              The inverse of --post-mortem.

       --version
              Show program's version number and exit

DATABASE COMMANDS

   db version
          nova-manage db version

       Print the current main database version.

   db sync
          nova-manage db sync [--local_cell] [VERSION]

       Upgrade the main database schema up to the most recent version or VERSION if specified. By
       default, this command will also attempt to upgrade the schema for the cell0 database if it
       is  mapped.  If --local_cell is specified, then only the main database in the current cell
       is upgraded. The local database connection is determined  by  database.connection  in  the
       configuration file, passed to nova-manage using the --config-file option(s).

       Refer  to  the  nova-manage  cells_v2  map_cell0 or nova-manage cells_v2 simple_cell_setup
       commands for more details on mapping the cell0 database.

       This command should be run after nova-manage api_db sync.

       Options

       --local_cell
              Only sync db in the local cell: do not attempt to fan-out to all cells.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Successfully   synced   database │
                            │            │ schema.                          │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ Failed to access cell0.          │
                            └────────────┴──────────────────────────────────┘

       Changed in version 20.0.0: (Train)

       Removed support for the legacy --version <version> argument.

       Changed in version 24.0.0: (Xena)

       Migrated versioning engine to alembic. The optional VERSION argument is now expected to be
       an alembic-based version. sqlalchemy-migrate-based versions will be rejected.

   db archive_deleted_rows
          nova-manage db archive_deleted_rows [--max_rows <rows>] [--verbose]
            [--until-complete] [--before <date>] [--purge] [--all-cells] [--task-log]
            [--sleep]

       Move deleted rows from production tables to shadow tables.  Note  that  the  corresponding
       rows  in  the instance_mappings, request_specs and instance_group_member tables of the API
       database are purged when instance records are archived and  thus,  api_database.connection
       is required in the config file.

       If  automating,  this  should be run continuously while the result is 1, stopping at 0, or
       use the --until-complete option.

       Changed in version 24.0.0: (Xena)

       Added --task-log, --sleep options.

       Options

       --max_rows <rows>
              Maximum number of deleted rows to archive. Defaults to 1000. Note that this  number
              does  not  include  the  corresponding  rows, if any, that are removed from the API
              database for deleted instances.

       --before <date>
              Archive rows that have been deleted before <date>.  Accepts  date  strings  in  the
              default  format  output  by  the date command, as well as YYYY-MM-DD[HH:mm:ss]. For
              example:

                 # Purge shadow table rows older than a specific date
                 nova-manage db archive_deleted_rows --before 2015-10-21
                 # or
                 nova-manage db archive_deleted_rows --before "Oct 21 2015"
                 # Times are also accepted
                 nova-manage db archive_deleted_rows --before "2015-10-21 12:00"

              Note that relative dates (such as yesterday) are not supported natively.  The  date
              command can be helpful here:

                 # Archive deleted rows more than one month old
                 nova-manage db archive_deleted_rows --before "$(date -d 'now - 1 month')"

       --verbose
              Print how many rows were archived per table.

       --until-complete
              Run  continuously  until  all deleted rows are archived.  Use --max_rows as a batch
              size for each iteration.

       --purge
              Purge all data from shadow tables after archive completes.

       --all-cells
              Run command across all cells.

       --task-log
              Also archive task_log table records. Note that task_log records are never  deleted,
              so  archiving  them will move all of the task_log records up to now into the shadow
              tables. It is recommended to also specify the --before option to  avoid  races  for
              those  consuming  task_log  record  data  via  the /os-instance_usage_audit_log API
              (example: Telemetry).

       --sleep
              The amount of time in seconds to sleep between  batches  when  --until-complete  is
              used. Defaults to 0.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Nothing was archived.            │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ Some   number   of   rows   were │
                            │            │ archived.                        │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Invalid value for --max_rows.    │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ No   connection   to   the   API │
                            │            │ database  could  be  established │
                            │            │ using api_database.connection.   │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ Invalid value for --before.      │
                            ├────────────┼──────────────────────────────────┤
                            │255         │ An unexpected error occurred.    │
                            └────────────┴──────────────────────────────────┘

   db purge
          nova-manage db purge [--all] [--before <date>] [--verbose] [--all-cells]

       Delete rows from shadow tables. For --all-cells  to  work,  the  API  database  connection
       information must be configured.

       New in version 18.0.0: (Rocky)

       Options

       --all  Purge all rows in the shadow tables.

       --before <date>
              Delete  data  that  was archived before <date>. Accepts date strings in the default
              format output by the date command, as well as YYYY-MM-DD[HH:mm:ss]. For example:

                 # Purge shadow table rows older than a specific date
                 nova-manage db purge --before 2015-10-21
                 # or
                 nova-manage db purge --before "Oct 21 2015"
                 # Times are also accepted
                 nova-manage db purge --before "2015-10-21 12:00"

              Note that relative dates (such as yesterday) are not supported natively.  The  date
              command can be helpful here:

                 # Archive deleted rows more than one month old
                 nova-manage db purge --before "$(date -d 'now - 1 month')"

       --verbose
              Print information about purged records.

       --all-cells
              Run against all cell databases.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Rows were deleted.               │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ Required   arguments   were  not │
                            │            │ provided.                        │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Invalid value for --before.      │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ Nothing was purged.              │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ No   connection   to   the   API │
                            │            │ database  could  be  established │
                            │            │ using api_database.connection.   │
                            └────────────┴──────────────────────────────────┘

   db online_data_migrations
          nova-manage db online_data_migrations [--max-count <count>]

       Perform data migration to update all live data.

       This command should be called after upgrading database schema and  nova  services  on  all
       controller  nodes.  If  it  exits with partial updates (exit status 1) it should be called
       again, even if some updates initially generated errors, because some updates may depend on
       others  having  completed.  If it exits with status 2, intervention is required to resolve
       the issue causing  remaining  updates  to  fail.  It  should  be  considered  successfully
       completed only when the exit status is 0.

       For example:

          $ nova-manage db online_data_migrations
          Running batches of 50 until complete
          2 rows matched query migrate_instances_add_request_spec, 0 migrated
          2 rows matched query populate_queued_for_delete, 2 migrated
          +---------------------------------------------+--------------+-----------+
          |                  Migration                  | Total Needed | Completed |
          +---------------------------------------------+--------------+-----------+
          |         create_incomplete_consumers         |      0       |     0     |
          |      migrate_instances_add_request_spec     |      2       |     0     |
          |       migrate_quota_classes_to_api_db       |      0       |     0     |
          |        migrate_quota_limits_to_api_db       |      0       |     0     |
          |          migration_migrate_to_uuid          |      0       |     0     |
          |     populate_missing_availability_zones     |      0       |     0     |
          |          populate_queued_for_delete         |      2       |     2     |
          |                populate_uuids               |      0       |     0     |
          +---------------------------------------------+--------------+-----------+

       In the above example, the migrate_instances_add_request_spec migration found two candidate
       records but did not need to perform any kind of data migration for either of them. In  the
       case  of  the populate_queued_for_delete migration, two candidate records were found which
       did require a data migration. Since --max-count defaults to 50 and only two  records  were
       migrated  with  no more candidates remaining, the command completed successfully with exit
       code 0.

       New in version 13.0.0: (Mitaka)

       Options

       --max-count <count>
              Controls the maximum number  of  objects  to  migrate  in  a  given  call.  If  not
              specified, migration will occur in batches of 50 until fully complete.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ No    (further)    updates   are │
                            │            │ possible.                        │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ Some  updates   were   completed │
                            │            │ successfully.  Note that not all │
                            │            │ updates may have succeeded.      │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Some  updates  generated  errors │
                            │            │ and  no  other  migrations  were │
                            │            │ able to take effect in the  last │
                            │            │ batch attempted.                 │
                            ├────────────┼──────────────────────────────────┤
                            │127         │ Invalid input was provided.      │
                            └────────────┴──────────────────────────────────┘

   db ironic_compute_node_move
          nova-manage db ironic_compute_node_move --ironic-node-uuid <uuid> --destination-host <host>

       Move ironic nodes, along with any associated instances, between nova-compute services.

       This  is  useful  when migrating away from using peer_list and multiple hash ring balanced
       nova-compute servers to the new ironic shard system.

       First you must turn off the nova-compute service that currently manages the  Ironic  host.
       Second  you  mark  that  nova-compute  service as forced down via the Nova API. Third, you
       ensure the new nova-compute service is correctly  configured  to  target  the  appropriate
       shard  (and optionally also a conductor group). Finally, most Ironic nodes should now move
       to the new service, but any Ironic nodes with instances on them will need to  be  manually
       moved to their new Ironic service by using this nova-manage command.

       New in version 28.0.0: (2023.2 Bobcat)

       Options

       --ironic-node-uuid <uuid>
              Ironic node uuid to be moved (which is also the Nova compute node uuid and the uuid
              of corresponding resource provider in Placement).

              The Nova compute service that currently manages this  Ironic  node  must  first  be
              marked a "forced down" via the Nova API, in a similar way to a down hypervisor that
              is about to have its VMs evacuated to a replacement hypervisor.

       --destination-host <host>
              Destination ironic nova-compute service CONF.host.

API DATABASE COMMANDS

   api_db version
          nova-manage api_db version

       Print the current API database version.

       New in version 2015.1.0: (Kilo)

   api_db sync
          nova-manage api_db sync [VERSION]

       Upgrade the API database schema up to the most recent version  or  VERSION  if  specified.
       This  command  does not create the API database, it runs schema migration scripts. The API
       database connection is determined by api_database.connection  in  the  configuration  file
       passed to nova-manage.

       This command should be run before nova-manage db sync.

       New in version 2015.1.0: (Kilo)

       Changed in version 18.0.0: (Rocky)

       Added     support     for     upgrading     the    optional    placement    database    if
       [placement_database]/connection is configured.

       Changed in version 20.0.0: (Train)

       Removed support for upgrading the optional  placement  database  as  placement  is  now  a
       separate project.

       Removed support for the legacy --version <version> argument.

       Changed in version 24.0.0: (Xena)

       Migrated versioning engine to alembic. The optional VERSION argument is now expected to be
       an alembic-based version. sqlalchemy-migrate-based versions will be rejected.

CELLS V2 COMMANDS

   cell_v2 simple_cell_setup
          nova-manage cell_v2 simple_cell_setup [--transport-url <transport_url>]

       Setup a fresh cells v2 environment. If --transport-url is not specified, it will  use  the
       one defined by transport_url in the configuration file.

       New in version 14.0.0: (Newton)

       Options

       --transport-url <transport_url>
              The transport url for the cell message queue.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Setup is completed.              │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ No  hosts are reporting, meaning │
                            │            │ none can be mapped,  or  if  the │
                            │            │ transport   URL  is  missing  or │
                            │            │ invalid.                         │
                            └────────────┴──────────────────────────────────┘

   cell_v2 map_cell0
          nova-manage cell_v2 map_cell0 [--database_connection <database_connection>]

       Create a  cell  mapping  to  the  database  connection  for  the  cell0  database.   If  a
       database_connection  is  not specified, it will use the one defined by database.connection
       in the configuration file passed to nova-manage. The cell0 database is used for  instances
       that  have  not  been scheduled to any cell. This generally applies to instances that have
       encountered an error before they have been scheduled.

       New in version 14.0.0: (Newton)

       Options

       --database_connection <database_connection>
              The database connection URL for  cell0.  This  is  optional.  If  not  provided,  a
              standard  database  connection  will  be used based on the main database connection
              from nova configuration.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ cell0 is created successfully or │
                            │            │ has already been set up.         │
                            └────────────┴──────────────────────────────────┘

   cell_v2 map_instances
          nova-manage cell_v2 map_instances --cell_uuid <cell_uuid>
            [--max-count <max_count>] [--reset]

       Map  instances  to  the provided cell. Instances in the nova database will be queried from
       oldest to newest and mapped to the provided cell.  A --max-count can be set on the  number
       of instance to map in a single run. Repeated runs of the command will start from where the
       last run finished so it is not necessary to increase --max-count  to  finish.   A  --reset
       option  can  be passed which will reset the marker, thus making the command start from the
       beginning as opposed to the default behavior of starting from where the last run finished.

       If --max-count is not specified, all instances in the cell will be mapped  in  batches  of
       50.  If  you  have a large number of instances, consider specifying a custom value and run
       the command until it exits with 0.

       New in version 12.0.0: (Liberty)

       Options

       --cell_uuid <cell_uuid>
              Unmigrated instances will be mapped to the cell with the UUID provided.

       --max-count <max_count>
              Maximum number of instances to map. If not set, all instances in the cell  will  be
              mapped  in  batches  of  50.  If  you  have  a  large number of instances, consider
              specifying a custom value and run the command until it exits with 0.

       --reset
              The command will start from the beginning as opposed to  the  default  behavior  of
              starting from where the last run finished.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ All instances have been mapped.  │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ There  are still instances to be │
                            │            │ mapped.                          │
                            ├────────────┼──────────────────────────────────┤
                            │127         │ Invalid value for --max-count.   │
                            ├────────────┼──────────────────────────────────┤
                            │255         │ An unexpected error occurred.    │
                            └────────────┴──────────────────────────────────┘

   cell_v2 map_cell_and_hosts
          nova-manage cell_v2 map_cell_and_hosts [--name <cell_name>]
            [--transport-url <transport_url>] [--verbose]

       Create a cell mapping to the database connection and message queue transport URL, and  map
       hosts  to that cell. The database connection comes from the database.connection defined in
       the configuration file passed to nova-manage. If --transport-url is not specified, it will
       use the one defined by transport_url in the configuration file. This command is idempotent
       (can be run multiple times), and the verbose option will  print  out  the  resulting  cell
       mapping UUID.

       New in version 13.0.0: (Mitaka)

       Options

       --transport-url <transport_url>
              The transport url for the cell message queue.

       --name <cell_name>
              The name of the cell.

       --verbose
              Output the cell mapping uuid for any newly mapped hosts.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Successful completion.           │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ The  transport url is missing or │
                            │            │ invalid                          │
                            └────────────┴──────────────────────────────────┘

   cell_v2 verify_instance
          nova-manage cell_v2 verify_instance --uuid <instance_uuid> [--quiet]

       Verify instance mapping to a cell. This command is useful to determine  if  the  cells  v2
       environment  is  properly  setup,  specifically  in  terms of the cell, host, and instance
       mapping records required.

       New in version 14.0.0: (Newton)

       Options

       --uuid <instance_uuid>
              The instance UUID to verify.

       --quiet
              Do not print anything.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ The  instance  was  successfully │
                            │            │ mapped to a cell.                │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ The  instance is not mapped to a │
                            │            │ cell.  See   the   map_instances │
                            │            │ command.                         │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ The cell mapping is missing. See │
                            │            │ the map_cell_and_hots command if │
                            │            │ you  are  upgrading from a cells │
                            │            │ v1    environment,    and    the │
                            │            │ simple_cell_setup command if you │
                            │            │ are upgrading from  a  non-cells │
                            │            │ v1 environment.                  │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ The   instance   is   a  deleted │
                            │            │ instance  that  still   has   an │
                            │            │ instance mapping.                │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ The   instance  is  an  archived │
                            │            │ instance  that  still   has   an │
                            │            │ instance mapping.                │
                            └────────────┴──────────────────────────────────┘

   cell_v2 create_cell
          nova-manage cell_v2 create_cell [--name <cell_name>]
            [--transport-url <transport_url>]
            [--database_connection <database_connection>] [--verbose] [--disabled]

       Create  a  cell  mapping  to the database connection and message queue transport URL. If a
       database_connection is not specified, it will use the one defined  by  database.connection
       in  the  configuration file passed to nova-manage. If --transport-url is not specified, it
       will use the one defined by transport_url in the configuration file.  The  verbose  option
       will  print  out  the  resulting  cell  mapping UUID. All the cells created are by default
       enabled. However passing the --disabled option can create a pre-disabled cell, meaning  no
       scheduling will happen to this cell.

       New in version 15.0.0: (Ocata)

       Changed in version 18.0.0: (Rocky)

       Added --disabled option.

       Options

       --name <cell_name>
              The name of the cell.

       --database_connection <database_connection>
              The database URL for the cell database.

       --transport-url <transport_url>
              The transport url for the cell message queue.

       --verbose
              Output the UUID of the created cell.

       --disabled
              Create a pre-disabled cell.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ The     cell     mapping     was │
                            │            │ successfully created.            │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ The transport  URL  or  database │
                            │            │ connection    was   missing   or │
                            │            │ invalid.                         │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Another cell  is  already  using │
                            │            │ the   provided   transport   URL │
                            │            │ and/or    database    connection │
                            │            │ combination.                     │
                            └────────────┴──────────────────────────────────┘

   cell_v2 discover_hosts
          nova-manage cell_v2 discover_hosts [--cell_uuid <cell_uuid>] [--verbose]
            [--strict] [--by-service]

       Searches  cells,  or  a  single  cell,  and  maps found hosts. This command will check the
       database for each cell (or a single one if passed in) and map  any  hosts  which  are  not
       currently  mapped.  If  a host is already mapped, nothing will be done. You need to re-run
       this command each time you add a batch of compute hosts to a cell (otherwise the scheduler
       will  never place instances there and the API will not list the new hosts). If --strict is
       specified, the command will only return 0 if an unmapped host was  discovered  and  mapped
       successfully.  If  --by-service  is  specified,  this command will look in the appropriate
       cell(s) for any nova-compute services and ensure there are host mappings for them. This is
       less  efficient  and  is only necessary when using compute drivers that may manage zero or
       more actual compute nodes at any given time (currently only ironic).

       This command should be run once after all compute hosts have been deployed and should  not
       be run in parallel. When run in parallel, the commands will collide with each other trying
       to map the same hosts in the database at the same time.

       New in version 14.0.0: (Newton)

       Changed in version 16.0.0: (Pike)

       Added --strict option.

       Changed in version 18.0.0: (Rocky)

       Added --by-service option.

       Options

       --cell_uuid <cell_uuid>
              If provided only this cell will be searched for new hosts to map.

       --verbose
              Provide detailed output when discovering hosts.

       --strict
              Considered successful (exit code 0) only when an unmapped host is  discovered.  Any
              other outcome will be considered a failure (non-zero exit code).

       --by-service
              Discover hosts by service instead of compute node.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Hosts  were  successfully mapped │
                            │            │ or no hosts needed to be mapped. │
                            │            │ If    --strict   is   specified, │
                            │            │ returns 0 only  if  an  unmapped │
                            │            │ host was discovered and mapped.  │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ If  --strict is specified and no │
                            │            │ unmapped hosts were found.  Also │
                            │            │ returns  1  if  an exception was │
                            │            │ raised while running.            │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ The command was aborted  because │
                            │            │ of   a  duplicate  host  mapping │
                            │            │ found. This  means  the  command │
                            │            │ collided  with  another  running │
                            │            │ discover_hosts    command     or │
                            │            │ scheduler  periodic  task and is │
                            │            │ safe to retry.                   │
                            └────────────┴──────────────────────────────────┘

   cell_v2 list_cells
          nova-manage cell_v2 list_cells [--verbose]

       By default the cell  name,  UUID,  disabled  state,  masked  transport  URL  and  database
       connection  details  are shown. Use the --verbose option to see transport URL and database
       connection with their sensitive details.

       New in version 15.0.0: (Ocata)

       Changed in version 18.0.0: (Rocky)

       Added the disabled column to output.

       Options

       --verbose
              Show sensitive details, such as passwords.

       Return codes

                                      ┌────────────┬─────────────┐
                                      │Return code │ Description │
                                      ├────────────┼─────────────┤
                                      │0           │ Success.    │
                                      └────────────┴─────────────┘

   cell_v2 delete_cell
          nova-manage cell_v2 delete_cell [--force] --cell_uuid <cell_uuid>

       Delete a cell by the given UUID.

       New in version 15.0.0: (Ocata)

       Options

       --force
              Delete hosts and instance_mappings that belong to the cell as well.

       --cell_uuid <cell_uuid>
              The UUID of the cell to delete.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ An  empty  cell  was  found  and │
                            │            │ deleted  successfully  or a cell │
                            │            │ that has hosts was found and the │
                            │            │ cell,      hosts     and     the │
                            │            │ instance_mappings  were  deleted │
                            │            │ successfully with --force option │
                            │            │ (this happens if  there  are  no │
                            │            │ living instances).               │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ A  cell  with  the provided UUID │
                            │            │ could not be found.              │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Host mappings were found for the │
                            │            │ cell,  meaning  the  cell is not │
                            │            │ empty, and  the  --force  option │
                            │            │ was not provided.                │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ There   are   active   instances │
                            │            │ mapped to  the  cell  (cell  not │
                            │            │ empty).                          │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ There  are  (inactive) instances │
                            │            │ mapped  to  the  cell  and   the │
                            │            │ --force option was not provided. │
                            └────────────┴──────────────────────────────────┘

   cell_v2 list_hosts
          nova-manage cell_v2 list_hosts [--cell_uuid <cell_uuid>]

       Lists  the  hosts in one or all v2 cells. By default hosts in all v2 cells are listed. Use
       the --cell_uuid option to list hosts in a specific cell.

       New in version 17.0.0: (Queens)

       Options

       --cell_uuid <cell_uuid>
              The UUID of the cell.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Success.                         │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ The    cell     indicated     by │
                            │            │ --cell_uuid was not found.       │
                            └────────────┴──────────────────────────────────┘

   cell_v2 update_cell
          nova-manage cell_v2 update_cell --cell_uuid <cell_uuid>
            [--name <cell_name>] [--transport-url <transport_url>]
            [--database_connection <database_connection>] [--disable] [--enable]

       Updates  the  properties  of  a  cell  by  the given uuid. If a database_connection is not
       specified, it  will  attempt  to  use  the  one  defined  by  database.connection  in  the
       configuration  file.  If  a transport_url is not specified, it will attempt to use the one
       defined by transport_url in the configuration file.

       NOTE:
          Updating the transport_url or database_connection fields on a running system  will  NOT
          result  in all nodes immediately using the new values.  Use caution when changing these
          values.

          The scheduler will not notice that  a  cell  has  been  enabled/disabled  until  it  is
          restarted or sent the SIGHUP signal.

       New in version 16.0.0: (Pike)

       Changed in version 18.0.0: (Rocky)

       Added --enable, --disable options.

       Options

       --cell_uuid <cell_uuid>
              The UUID of the cell to update.

       --name <cell_name>
              Set the cell name.

       --transport-url <transport_url>
              Set  the  cell transport_url. Note that running nodes will not see the change until
              restarted or the SIGHUP signal is sent.

       --database_connection <database_connection>
              Set the cell database_connection. Note that running nodes will not see  the  change
              until restarted or the SIGHUP signal is sent.

       --disable
              Disables  the  cell. Note that the scheduling will be blocked to this cell until it
              is enabled and the nova-scheduler service is restarted  or  the  SIGHUP  signal  is
              sent.

       --enable
              Enables  the  cell.  Note  that  the nova-scheduler service will not see the change
              until it is restarted or the SIGHUP signal is sent.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Success.                         │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ The cell was not  found  by  the │
                            │            │ provided UUID.                   │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ The  specified  properties could │
                            │            │ not be set.                      │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ The   provided   --transport-url │
                            │            │ or/and     --database_connection │
                            │            │ parameters were same as  another │
                            │            │ cell.                            │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ An  attempt  was made to disable │
                            │            │ and enable a cell  at  the  same │
                            │            │ time.                            │
                            ├────────────┼──────────────────────────────────┤
                            │5           │ An  attempt  was made to disable │
                            │            │ or enable cell0.                 │
                            └────────────┴──────────────────────────────────┘

   cell_v2 delete_host
          nova-manage cell_v2 delete_host --cell_uuid <cell_uuid> --host <host>

       Delete a host by the given host name and the given cell UUID.

       New in version 17.0.0: (Queens)

       NOTE:
          The scheduler caches host-to-cell mapping information  so  when  deleting  a  host  the
          scheduler may need to be restarted or sent the SIGHUP signal.

       Options

       --cell_uuid <cell_uuid>
              The UUID of the cell.

       --host <host>
              The host to delete.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ The  empty  host  was  found and │
                            │            │ deleted successfully             │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ A cell with the  specified  UUID │
                            │            │ could not be found.              │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ A  host  with the specified name │
                            │            │ could not be found               │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ The host with the specified name │
                            │            │ is   not  in  a  cell  with  the │
                            │            │ specified UUID.                  │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ The host with the specified name │
                            │            │ has instances (host not empty).  │
                            └────────────┴──────────────────────────────────┘

PLACEMENT COMMANDS

   placement heal_allocations
          nova-manage placement heal_allocations [--max-count <max_count>]
            [--verbose] [--skip-port-allocations] [--dry-run]
            [--instance <instance_uuid>] [--cell <cell_uuid] [--force]

       Iterates  over  non-cell0 cells looking for instances which do not have allocations in the
       Placement service and which are not undergoing a task state transition. For each  instance
       found,  allocations  are  created  against  the  compute  node  resource provider for that
       instance based on the flavor associated with the instance.

       NOTE:
          Nested allocations are only partially supported.  Nested  allocations  due  to  Neutron
          ports  having  QoS  policies  are  supported  since  20.0.0 (Train) release. But nested
          allocations due to vGPU or Cyborg  device  profile  requests  in  the  flavor  are  not
          supported.  Also  if  you  are  using  provider.yaml  files  on compute hosts to define
          additional resources, if those resources are defined on child resource  providers  then
          instances using such resources are not supported.

       Also  if  the  instance  has  any port attached that has resource request (e.g. Quality of
       Service (QoS): Guaranteed Bandwidth) but the corresponding allocation is  not  found  then
       the  allocation  is created against the network device resource providers according to the
       resource request of that port. It is  possible  that  the  missing  allocation  cannot  be
       created  either  due  to  not  having  enough  resource inventory on the host the instance
       resides on or because more than one resource provider could fulfill the request.  In  this
       case the instance needs to be manually deleted or the port needs to be detached. When nova
       supports migrating instances with guaranteed bandwidth ports, migration will heal  missing
       allocations for these instances.

       Before  the  allocations  for  the  ports  are persisted in placement nova-manage tries to
       update each port in neutron to refer to the resource  provider  UUID  which  provides  the
       requested  resources.  If any of the port updates fail in neutron or the allocation update
       fails in placement the command tries to roll back the partial updates to the ports. If the
       roll  back  fails  then  the  process stops with exit code 7 and the admin needs to do the
       rollback in neutron manually according to the description in the exit code section.

       There is also a special case handled for instances that do have allocations created before
       Placement  API  microversion  1.8  where  project_id and user_id values were required. For
       those types of allocations, the project_id and user_id are updated using the  values  from
       the instance.

       This command requires that the api_database.connection and placement configuration options
       are set. Placement API >= 1.28 is required.

       New in version 18.0.0: (Rocky)

       Changed in version 20.0.0: (Train)

       Added --dry-run, --instance, and --skip-port-allocations options.

       Changed in version 21.0.0: (Ussuri)

       Added --cell option.

       Changed in version 22.0.0: (Victoria)

       Added --force option.

       Changed in version 25.0.0: (Yoga)

       Added support for healing port allocations  if  port-resource-request-groups  neutron  API
       extension  is  enabled and therefore ports can request multiple group of resources e.g. by
       using both guaranteed minimum bandwidth and guaranteed  minimum  packet  rate  QoS  policy
       rules.

       Options

       --max-count <max_count>
              Maximum  number  of  instances  to process. If not specified, all instances in each
              cell will be mapped in batches of 50. If you have  a  large  number  of  instances,
              consider specifying a custom value and run the command until it exits with 0 or 4.

       --verbose
              Provide verbose output during execution.

       --dry-run
              Runs the command and prints output but does not commit any changes. The return code
              should be 4.

       --instance <instance_uuid>
              UUID of a specific instance to process. If specified  --max-count  has  no  effect.
              Mutually exclusive with --cell.

       --skip-port-allocations
              Skip the healing of the resource allocations of bound ports. E.g. healing bandwidth
              resource allocation for ports having minimum QoS policy  rules  attached.  If  your
              deployment  does  not  use  such  a feature then the performance impact of querying
              neutron ports for each instance can be avoided with this flag.

       --cell <cell_uuid>
              Heal allocations within a specific cell. Mutually exclusive with --instance.

       --force
              Force heal allocations. Requires the --instance argument.

       Return codes

       ┌────────────┬───────────────────────────────────────────────────────────────────────────┐
       │Return code │ Description                                                               │
       └────────────┴───────────────────────────────────────────────────────────────────────────┘

       │0           │ Command  completed  successfully                                          │
       │            │ and allocations were created.                                             │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │1           │ --max-count   was   reached  and                                          │
       │            │ there  are  more  instances   to                                          │
       │            │ process.                                                                  │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │2           │ Unable  to  find  a compute node                                          │
       │            │ record for a given instance.                                              │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │3           │ Unable  to  create  (or  update)                                          │
       │            │ allocations   for   an  instance                                          │
       │            │ against   its    compute    node                                          │
       │            │ resource provider.                                                        │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │4           │ Command  completed  successfully                                          │
       │            │ but no allocations were created.                                          │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │5           │ Unable  to  query   ports   from                                          │
       │            │ neutron                                                                   │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │6           │ Unable   to   update   ports  in                                          │
       │            │ neutron                                                                   │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │7           │ Cannot roll  back  neutron  port                                          │
       │            │ updates.  Manual  steps  needed.                                          │
       │            │ The error message will  indicate                                          │
       │            │ which  neutron  ports need to be                                          │
       │            │ changed     to     clean      up                                          │
       │            │ binding:profile of the port:                                              │
       │            │                                                                           │
       │            │           $ openstack port unset <port_uuid> --binding-profile allocation │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │127         │ Invalid input.                                                            │
       ├────────────┼───────────────────────────────────────────────────────────────────────────┤
       │255         │ An unexpected error occurred.                                             │
       └────────────┴───────────────────────────────────────────────────────────────────────────┘

   placement sync_aggregates
          nova-manage placement sync_aggregates [--verbose]

       Mirrors  compute host aggregates to resource provider aggregates in the Placement service.
       Requires the api_database and placement sections of the  nova  configuration  file  to  be
       populated.

       Specify --verbose to get detailed progress output during execution.

       NOTE:
          Depending on the size of your deployment and the number of compute hosts in aggregates,
          this command could cause a non-negligible amount of traffic to  the  placement  service
          and therefore is recommended to be run during maintenance windows.

       New in version 18.0.0: (Rocky)

       Options

       --verbose
              Provide verbose output during execution.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Successful run                   │
                            └────────────┴──────────────────────────────────┘

                            │1           │ A  host was found with more than │
                            │            │ one matching compute node record │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ An  unexpected  error   occurred │
                            │            │ while working with the placement │
                            │            │ API                              │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ Failed     updating     provider │
                            │            │ aggregates in placement          │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ Host  mappings not found for one │
                            │            │ or more host aggregate members   │
                            ├────────────┼──────────────────────────────────┤
                            │5           │ Compute node records  not  found │
                            │            │ for one or more hosts            │
                            ├────────────┼──────────────────────────────────┤
                            │6           │ Resource  provider  not found by │
                            │            │ uuid for a given host            │
                            ├────────────┼──────────────────────────────────┤
                            │255         │ An unexpected error occurred.    │
                            └────────────┴──────────────────────────────────┘

   placement audit
          nova-manage placement audit [--verbose] [--delete]
            [--resource_provider <uuid>]

       Iterates over all the Resource Providers (or just one if you provide the  UUID)  and  then
       verifies  if  the  compute  allocations  are  either  related to an existing instance or a
       migration UUID. If not, it will tell which allocations are orphaned.

       This command requires that the api_database.connection and placement configuration options
       are set. Placement API >= 1.14 is required.

       New in version 21.0.0: (Ussuri)

       Options

       --verbose
              Provide verbose output during execution.

       --resource_provider <provider_uuid>
              UUID of a specific resource provider to verify.

       --delete
              Deletes orphaned allocations that were found.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ No   orphaned  allocations  were │
                            │            │ found                            │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ Orphaned allocations were found  │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ All found  orphaned  allocations │
                            │            │ were deleted                     │
                            ├────────────┼──────────────────────────────────┤
                            │127         │ Invalid input                    │
                            └────────────┴──────────────────────────────────┘

VOLUME ATTACHMENT COMMANDS

   volume_attachment get_connector
          nova-manage volume_attachment get_connector

       Show the host connector for this compute host.

       When  called  with  the  --json  switch  this dumps a JSON string containing the connector
       information for the current host, which can be saved to a file and used as input  for  the
       nova-manage volume_attachment refresh command.

       New in version 24.0.0: (Xena)

       Return codes

                              ┌────────────┬──────────────────────────────┐
                              │Return code │ Description                  │
                              ├────────────┼──────────────────────────────┤
                              │0           │ Success                      │
                              ├────────────┼──────────────────────────────┤
                              │1           │ An unexpected error occurred │
                              └────────────┴──────────────────────────────┘

   volume_attachment show
          nova-manage volume_attachment show [INSTANCE_UUID] [VOLUME_ID]

       Show the details of a the volume attachment between VOLUME_ID and INSTANCE_UUID.

       New in version 24.0.0: (Xena)

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Success                          │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Instance not found               │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ Instance   is  not  attached  to │
                            │            │ volume                           │
                            └────────────┴──────────────────────────────────┘

   volume_attachment refresh
          nova-manage volume_attachment refresh [INSTANCE_UUID] [VOLUME_ID] [CONNECTOR_PATH]

       Refresh the connection info associated with a given volume attachment.

       The instance must be attached to the volume, have a vm_state of stopped and not be locked.

       CONNECTOR_PATH should be the path to a JSON-formatted file containing up to date connector
       information  for  the  compute  currently  hosting  the  instance  as  generated using the
       nova-manage volume_attachment get_connector command.

       New in version 24.0.0: (Xena)

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Success                          │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Connector path does not exist    │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ Failed to open connector path    │
                            └────────────┴──────────────────────────────────┘

                            │4           │ Instance does not exist          │
                            ├────────────┼──────────────────────────────────┤
                            │5           │ Instance state invalid (must  be │
                            │            │ stopped and unlocked)            │
                            ├────────────┼──────────────────────────────────┤
                            │6           │ Volume  is  not  attached to the │
                            │            │ instance                         │
                            ├────────────┼──────────────────────────────────┤
                            │7           │ Connector host is not correct    │
                            └────────────┴──────────────────────────────────┘

LIBVIRT COMMANDS

   libvirt get_machine_type
          nova-manage libvirt get_machine_type [INSTANCE_UUID]

       Fetch and  display  the  recorded  machine  type  of  a  libvirt  instance  identified  by
       INSTANCE_UUID.

       New in version 23.0.0: (Wallaby)

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Successfully completed           │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Unable   to   find  instance  or │
                            │            │ instance mapping                 │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ No  machine   type   found   for │
                            │            │ instance                         │
                            └────────────┴──────────────────────────────────┘

   libvirt update_machine_type
          nova-manage libvirt update_machine_type \
              [INSTANCE_UUID] [MACHINE_TYPE] [--force]

       Set  or  update  the  recorded  machine  type  of  instance  INSTANCE_UUID to machine type
       MACHINE_TYPE.

       The following criteria must be met when using this command:

       • The instance must have a vm_state of STOPPED, SHELVED or SHELVED_OFFLOADED.

       • The machine type must be supported. The supported  list  includes  alias  and  versioned
         types of pc, pc-i440fx, pc-q35, q35, virt or s390-ccw-virtio.

       • The update will not move the instance between underlying machine types.  For example, pc
         to q35.

       • The update will not move the instance between an alias and  versioned  machine  type  or
         vice versa. For example, pc to pc-1.2.3 or pc-1.2.3 to pc.

       A  --force  flag  is provided to skip the above checks but caution should be taken as this
       could easily lead to the underlying ABI of  the  instance  changing  when  moving  between
       machine types.

       New in version 23.0.0: (Wallaby)

       Options

       --force
              Skip machine type compatibility checks and force machine type update.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Update completed successfully    │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Unable   to   find  instance  or │
                            │            │ instance mapping                 │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ The  instance  has  an   invalid │
                            │            │ vm_state                         │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ The   proposed   update  of  the │
                            │            │ machine type is invalid          │
                            ├────────────┼──────────────────────────────────┤
                            │5           │ The  provided  machine  type  is │
                            │            │ unsupported                      │
                            └────────────┴──────────────────────────────────┘

   libvirt list_unset_machine_type
          nova-manage libvirt list_unset_machine_type [--cell-uuid <cell-uuid>]

       List the UUID of any instance without hw_machine_type set.

       This command is useful for operators attempting to determine when it is safe to change the
       libvirt.hw_machine_type option within an environment.

       New in version 23.0.0: (Wallaby)

       Options

       --cell_uuid <cell_uuid>
              The UUID of the cell to list instances from.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Completed    successfully,    no │
                            │            │ instances      found     without │
                            │            │ hw_machine_type set              │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Unable to find cell mapping      │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ Instances     found      without │
                            │            │ hw_machine_type set              │
                            └────────────┴──────────────────────────────────┘

IMAGE PROPERTY COMMANDS

   image_property show
          nova-manage image_property show [INSTANCE_UUID] [IMAGE_PROPERTY]

       Fetch  and display the recorded image property IMAGE_PROPERTY of an instance identified by
       INSTANCE_UUID.

       New in version 25.0.0: (Yoga)

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            └────────────┴──────────────────────────────────┘

                            │0           │ Successfully completed           │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Unable  to  find   instance   or │
                            │            │ instance mapping                 │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ No   image  property  found  for │
                            │            │ instance                         │
                            └────────────┴──────────────────────────────────┘

   image_property set
          nova-manage image_property set \
              [INSTANCE_UUID] [--property] [IMAGE_PROPERTY]=[VALUE]

       Set or update the recorded image property  IMAGE_PROPERTY  of  instance  INSTANCE_UUID  to
       value VALUE.

       The following criteria must be met when using this command:

       • The instance must have a vm_state of STOPPED, SHELVED or SHELVED_OFFLOADED.

       This  command  is useful for operators who need to update stored instance image properties
       that have become invalidated by a change of instance machine type, for example.

       New in version 25.0.0: (Yoga)

       Options

       --property
              Image property  to  set  using  the  format  name=value.  For  example:  --property
              hw_disk_bus=virtio --property hw_cdrom_bus=sata.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Update completed successfully    │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Unable   to   find  instance  or │
                            │            │ instance mapping                 │
                            ├────────────┼──────────────────────────────────┤
                            │3           │ The  instance  has  an   invalid │
                            │            │ vm_state                         │
                            ├────────────┼──────────────────────────────────┤
                            │4           │ The provided image property name │
                            │            │ is invalid                       │
                            ├────────────┼──────────────────────────────────┤
                            │5           │ The  provided   image   property │
                            │            │ value is invalid                 │
                            └────────────┴──────────────────────────────────┘

LIMITS COMMANDS

   limits migrate_to_unified_limits
          nova-manage limits migrate_to_unified_limits [--project-id <project-id>]
          [--region-id <region-id>] [--verbose] [--dry-run]

       Migrate quota limits from the Nova database to unified limits in Keystone.

       This  command  is  useful  for  operators to migrate from legacy quotas to unified limits.
       Limits are migrated by copying them from the Nova database to Keystone  by  creating  them
       using the Keystone API.

       The  Nova  configuration  file  used  by  nova-manage  must have a [keystone] section that
       contains authentication settings in order for the Keystone API calls  to  succeed.  As  an
       example:

          [keystone]
          region_name = RegionOne
          user_domain_name = Default
          auth_url = http://127.0.0.1/identity
          auth_type = password
          username = admin
          password = <password>
          system_scope = all

       By  default  Keystone  policy  configuration,  access to create, update, and delete in the
       unified limits API is restricted to callers with system-scoped authorization  tokens.  The
       system_scope  =  all  setting  indicates the scope for system operations. You will need to
       ensure that the user configured under [keystone] has the necessary role and scope.

       WARNING:
          The limits migrate_to_unified_limits command will create limits only for resources that
          exist in the legacy quota system and any resource that does not have a unified limit in
          Keystone will use a quota limit of 0.

          For resource classes that are allocated by the placement service and  have  no  default
          limit  set, you will need to create default limits manually. The most common example is
          class:DISK_GB. All Nova API requests that need to  allocate  DISK_GB  will  fail  quota
          enforcement until a default limit for it is set in Keystone.

          See the unified limits documentation about creating limits using the OpenStackClient.

       New in version 28.0.0: (2023.2 Bobcat)

       Options

       --project-id <project-id>
              The project ID for which to migrate quota limits.

       --region-id <region-id>
              The region ID for which to migrate quota limits.

       --verbose
              Provide verbose output during execution.

       --dry-run
              Show what limits would be created without actually creating them.

       Return codes

                            ┌────────────┬──────────────────────────────────┐
                            │Return code │ Description                      │
                            ├────────────┼──────────────────────────────────┤
                            │0           │ Command completed successfully   │
                            ├────────────┼──────────────────────────────────┤
                            │1           │ An unexpected error occurred     │
                            ├────────────┼──────────────────────────────────┤
                            │2           │ Failed   to   connect   to   the │
                            │            │ database                         │
                            └────────────┴──────────────────────────────────┘

SEE ALSO

       nova-policy(1), nova-status(1)

BUGS

       • Nova bugs are managed at Launchpad

AUTHOR

       openstack@lists.openstack.org

COPYRIGHT

       2010-present, OpenStack Foundation