2016-04-23 5 views
4

Ich habe vor kurzem einen Code-Fix in Trove gemacht, um einen Config-Parameternamen in vertica von 'cluster_member_count' in 'min_cluster_member_count' umzubenennen. Außerdem lehnte ich den Wert des alten Parameters ab, so dass er abwärtskompatibel sein kann. Hier ist die Gruppe, in der die Konfigurationsoption ist veraltet werden:Openstack: Oslo_Config NoSuchOptError für einen veralteten Namen - wahrscheinlich Deprecated_Opts definieren?

# 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) 

Ich ändere die folgende cfg.IntOpt:

cfg.IntOpt('cluster_member_count', default=3, 
      help='Number of members in Vertica cluster.'), 

Änderungen vorgenommen werden:

  • Änderung der Parameter Name 'cluster_member_count' bis 'min_cluster_member_count'
  • Die Hilfebeschreibung wird entsprechend geändert
  • VERWERFEN Sie den alten Parameternamen 'cluster_member_count' und referenzieren Sie ihn unter der Gruppe (verwenden Sie DEPRECATED_GROUP) = 'vertical'. Dies geschieht aus Gründen der Abwärtskompatibilität.

    cfg.IntOpt('min_cluster_member_count', default=3, 
          help='Minimum number of members in Vertica cluster.', 
          deprecated_name='cluster_member_count', 
          deprecated_group='vertica'), 
    

    aber wenn ich die tox lief-py27 Test ich die folgende Störung erhalte:

Die aktualisierte cfg.IntOpt ist unten dargestellt

oslo.config.cfg.NoSuchOptError: no such option in group vertica: cluster_member_count 

Was bin ich dabei Hier? Ich dachte zuerst, dass dies hätte funktionieren sollen, da ich die korrekte deprecated_group = 'vertica' für den veralteten Namen zugewiesen habe. Ich freue mich über jede hilfreiche Eingabe - danke.

UPDATE: Ich glaube, ich muss 'cluster_member_group' unter DEPRECATED_OPTS definieren, aber Googling zeigt keine Probe, wie es geht. Wünschen Sie, dass das Openstack-Dokument einen Beispielcode bereitstellt, nicht nur die Syntax.

Antwort

3

weil somethere in Grube ist cfg.CONF.vertica.cluster_member_count verwenden, aber es gibt keine solche Option, sollten Sie den Code cfg.CONF.vertica.min_cluster_member_count

ändern, und ich glaube, Sie nicht die Gruppe deprecate sollte Es ist besser, in der Vertica-Gruppe zu sein. Wenn Sie den Gruppennamen ebenfalls verwerfen möchten, müssen Sie ihn in einer bestimmten Gruppe registrieren, z. B. DEFAULT. Anderen Code sollte er dann als cfg.CONF.min_cluster_member_count referenzieren

Prost

+0

danke für Ihre Eingabe, Zhi. Ich habe vergessen, in meinem Hauptbeitrag zu erwähnen, dass ich vergessen habe, 'cluster_member_group' irgendwo als veraltete Option zu definieren? Ich glaube, dass ich die Verweise auf die cfg.CONF.vertica.cluster_member_count überhaupt nicht ändern muss, solange ich 'cluster_member_count' als veraltete Option definiere. Aber das Internet hat nicht viele Informationen darüber, wie das geht. – punsoca

+0

Ich glaube auch, dass die deprecated_group nicht bedeutet, dass die Gruppe veraltet ist, laut Oslo Dokumentation heißt es "die Gruppe, die einen veralteten Alias ​​enthält" - von http://docs.openstack.org/developer/oslo.config/ opt.html – punsoca

+0

das Problem ist, die neue Option ist bereits in der Vertica-Gruppe, warum Sie es verwerfen, während Sie innerhalb der Gruppe, also wenn es nicht in der Gruppe sein wollen, müssen Sie es in einer anderen Gruppe lassen, wenn die Gruppe ein ist neue, müssen Sie die Gruppe registrieren und die neue Option –

Verwandte Themen