Openstack: Oslo_Config NoSuchOptError для устаревшего имени - возможно, нужно определить Deprecated_Opts?
Недавно я сделал исправление кода, чтобы переименовать имя параметра конфигурации в vertica из 'cluster_member_count' в 'min_cluster_member_count'. Кроме того, я осудил значение старого параметра, чтобы он мог быть обратно совместим. Вот группа, в которой опция config не рекомендуется использовать:
# Vertica
vertica_group = cfg.OptGroup(
'vertica', title='Vertica options',
help="Oslo option group designed for Vertica datastore")
vertica_opts = [
cfg.ListOpt('tcp_ports',
default=["5433", "5434", "22", "5444", "5450", "4803"],
help='List of TCP ports and/or port ranges to open '
'in the security group (only applicable '
'if trove_security_groups_support is True).'),
(skip lines)
Я изменяю следующее cfg.IntOpt:
cfg.IntOpt('cluster_member_count', default=3,
help='Number of members in Vertica cluster.'),
Изменения должны быть сделаны:
- измените имя параметра 'cluster_member_count' на 'min_cluster_member_count'
- описание справки изменяется соответственно
- УСТАРЕТЬ старое имя параметра "cluster_member_count" и ссылаться на него в группе (используйте DEPRECATED_GROUP) = "вертикальный". Это сделано для обратной совместимости.
Обновленный cfg.IntOpt показан ниже:
cfg.IntOpt('min_cluster_member_count', default=3,
help='Minimum number of members in Vertica cluster.',
deprecated_name='cluster_member_count',
deprecated_group='vertica'),
однако когда я запускаю тест tox -e py27, я получаю следующую ошибку:
oslo.config.cfg.NoSuchOptError: no such option in group vertica: cluster_member_count
Что мне здесь не хватает? Сначала я подумал, что это должно сработать, так как я назначил правильное deprecated_group = 'vertica' для устаревшего имени. Я ценю любой полезный вклад - спасибо.
ОБНОВЛЕНИЕ: я полагаю, что мне, возможно, придется определить 'cluster_member_group' в DEPRECATED_OPTS, но поиск в Google не показывает никакого примера того, как это сделать. Желаем, чтобы документ Openstack предоставил пример кода, а не только синтаксис.
1 ответ
Потому что где-то в trove используется cfg.CONF.vertica.cluster_member_count, но такой опции нет, вы должны изменить код на cfg.CONF.vertica.min_cluster_member_count
и я думаю, что вам не следует отказываться от группы, лучше быть в группе vertica, если вы также хотите отказаться от имени группы, вам нужно зарегистрировать его в определенной группе, например, DEFAULT, а затем другой код должен ссылаться на него как cfg.CONF.min_cluster_member_count
ура