placement-manage

概要

placement-manage <category> <action>

描述

placement-manage 用于执行 placement 服务中的管理任务。它设计用于由操作员和部署者使用。

选项

执行 placement-manage 命令的标准模式是

placement-manage  [-h] [--config-dir DIR] [--config-file PATH]
                  <category> <command> [<args>]

不带参数运行以查看可用命令类别列表

placement-manage

您也可以使用类别参数运行,例如 db,以查看该类别中的所有命令

placement-manage db

配置选项(例如 [placement_database]/connection URL)默认情况下在 /etc/placement/placement.conf 文件中找到。可以使用 config-dirconfig-file 参数选择不同的文件。

以下部分描述了 placement-manage 可用的类别和参数。

Placement 数据库

placement-manage db version

打印当前的数据库版本。

placement-manage db sync

将数据库模式升级到最新版本。本地数据库连接由 placement-manage 使用的配置文件中的 [placement_database]/connection 确定。如果未设置 connection 选项,则命令将失败。定义的数据库必须已经存在。

placement-manage db stamp <version>

使用给定的修订版标记修订表;不运行任何迁移。当数据库已经存在并且您希望将其置于 alembic 控制下时,可以使用此方法。

placement-manage db online_data_migrations [--max-count]

执行数据迁移以更新所有实时数据。

--max-count 控制在给定调用中迁移的最大对象数。如果未指定,则迁移将以 50 个批次进行,直到完全完成。

如果不再有任何更新可能,则返回退出代码 0;如果使用了 --max-count 选项并且一些更新已成功完成(即使其他更新生成了错误),则返回 1;如果一些更新生成了错误并且没有其他迁移能够在上次尝试的批次中生效,则返回 2;或者如果提供了无效输入(例如非数字 max-count),则返回 127。

在升级数据库模式和所有控制器节点上的 placement 服务后,应调用此命令。如果它以部分更新退出(退出状态 1),即使一些更新最初生成了错误,也应再次调用它,因为一些更新可能依赖于其他更新的完成。如果它以状态 2 退出,则需要进行干预以解决导致剩余更新失败的问题。只有当退出状态为 0 时,才应认为它已成功完成。

例如

$ placement-manage db online_data_migrations
Running batches of 50 until complete
2 rows matched query create_incomplete_consumers, 2 migrated
+---------------------------------------------+-------------+-----------+
|                  Migration                  | Total Found | Completed |
+---------------------------------------------+-------------+-----------+
|            set_root_provider_ids            |      0      |     0     |
|         create_incomplete_consumers         |      2      |     2     |
+---------------------------------------------+-------------+-----------+

在上面的示例中,create_incomplete_consumers 迁移找到了两个需要数据迁移的候选记录。由于 --max-count 默认为 50 并且只迁移了两个记录,没有剩余的候选记录,因此该命令成功完成,退出代码为 0。