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

ура

Другие вопросы по тегам