github / github/octocatalog-diff
A notice function with a hash as a title causes catalog validation to fail
- Lingua principale
- Ruby
- Stelle
- 252
- Fork
- 95
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
> Description of problem
- What did you do?
Running octocatalog-diff
```
octocatalog-diff --puppetdb_url http://localhost:8080 --bootstrapped-from-dir /var/tmp/production/ --bootstrapped-to-dir /var/tmp/development/ --puppet_binary /usr/local/bin/puppet --pe-enc-url https://localhost:4433/classifier-api --pe-enc-token-file /root/.puppetlabs/token -n appserver.example.com --catalog-only
```
- What happened?
Catalog failed to compile with invalid json
- What did you expect to happen?
Catalog to compile
- How can someone reproduce the problem?
Create an array of hashes and call one of those hashes.
ie
```puppet
class iaas_linux_ibm_tivoli_monitoring_client (
Array[Hash] $gateway_list = [ { primary => '',servername.domainname
standby => 'servername2.domainname' } ],
) {
$gateways = $::iaas_linux_ibm_tivoli_monitoring_client::gateway_list
$rand = fqdn_rand(length($gateways))
$randomly_chosen_gateways = "$gateways[$rand]"
}
```
> Command used and debugging output
```
octocatalog-diff --puppetdb_url http://localhost:8080 --bootstrapped-from-dir /var/tmp/production/ --bootstrapped-to-dir /var/tmp/development/ --puppet_binary /usr/local/bin/puppet --pe-enc-url https://localhost:4433/classifier-api --pe-enc-token-file /root/.puppetlabs/token -n appserver.example.com --catalog-only
"/opt/puppetlabs/puppet/lib/ruby/gems/2.4.0/gems/octocatalog-diff-1.5.4/lib/octocatalog-diff/util/catalogs.rb:259:in `catalog_validator': Catalog failed: Catalog has invalid JSON: 751: unexpected token at '{primary => servername.domainname, standby => servername2.domainname} (OctocatalogDiff::Errors::CatalogError)
"
```
> Platform and version information
- Your OS: RHEL 7.4 x86
- Your Ruby version: ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-linux]
- Your version of Puppet: PE 2018.1.4 5.5.6
- Your version of octocatalog-diff: octocatalog-diff 1.5.4
> Do the tests pass from a clean checkout? yes
> Anything else to add that you think will be helpful?
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da lib/octocatalog-diff/util/catalogs.rb in corrispondenza di catalog_validator, quindi riproduci il malfunzionamento usando il comando octocatalog-diff e l’esempio Puppet nell’issue. Traccia come viene rappresentato l’array di hash durante la validazione del catalogo; il lavoro è completato quando il catalogo viene compilato e l’errore di JSON non valido non si verifica più in questo caso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ruby
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100