Skip to content

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

@davidsandilands-zz

Description

@davidsandilands-zz

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
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?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions