github / github/octocatalog-diff

A notice function with a hash as a title causes catalog validation to fail

Aperta
#205 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug Needs Information
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.