The Puppet Labs Issue Tracker has Moved:

This issue tracker is now in read-only archive mode and automatic ticket export has been disabled. Redmine users will need to create a new JIRA account to file tickets using See the following page for information on filing tickets with JIRA:

Bug #3883

Transaction reports and contained instances have no json support

Added by Luke Kanies almost 6 years ago. Updated over 4 years ago.

Status:AcceptedStart date:05/26/2010
Priority:HighDue date:
Assignee:-% Done:


Target version:3.x
Affected Puppet version:0.25.4 Branch:

We've Moved!

Ticket tracking is now hosted in JIRA:


We are still sending transaction reports over as yaml rather than json, and in fact, none of Transaction::Report, Transaction::Event, or Resource::Status support json.

I’m not sure how big of a deal this is, since we normally just store them as yaml anyway, but my inclination is that this is actually a pretty big deal, so I’m setting this to high unless someone says otherwise.

Related issues

Related to Puppet - Feature #21427: Deprecate YAML for network data transmission Closed


#1 Updated by Jesse Wolfe almost 6 years ago

  • Category set to reports
  • Assignee set to Luke Kanies
  • Target version changed from 2.6.0 to 52

#2 Updated by Luke Kanies over 5 years ago

  • Assignee deleted (Luke Kanies)

#3 Updated by James Turnbull about 5 years ago

  • Target version deleted (52)

#4 Updated by Luke Kanies about 5 years ago

This should be extended to include all indirected data types. Here’s the current status:

Puppet::Node::Facts: to_json: true; from_json: true
Puppet::Node::Inventory: to_json: true; from_json: false
Puppet::Node: to_json: true; from_json: false
Puppet::Transaction::Report: to_json: true; from_json: false
Puppet::Resource: to_json: true; from_json: true
Puppet::Resource::Type: to_json: true; from_json: true
Puppet::Resource::Catalog: to_json: true; from_json: true
Puppet::SSL::Key: to_json: true; from_json: false
Puppet::SSL::Certificate: to_json: true; from_json: false
Puppet::SSL::CertificateRequest: to_json: true; from_json: false
Puppet::SSL::CertificateRevocationList: to_json: true; from_json: false
Puppet::Status: to_json: true; from_json: true
Puppet::FileBucket::File: to_json: true; from_json: true

Built using this code:

require 'puppet'
klass = Puppet::Indirector::Indirection
klass.instances.collect { |name| klass.instance(name).model || fail "no inst for #{name}" }.each { |klass| puts "#{klass}: to_json: #{klass.instance_methods.include?('to_pson')}; from_json: #{klass.respond_to?(:from_pson)}" }

#5 Updated by Nigel Kersten about 5 years ago

  • Target version set to 2.7.x

#6 Updated by Nigel Kersten over 4 years ago

  • Target version changed from 2.7.x to 3.x
  • Keywords set to devtriage

Needs developer input.

#7 Updated by Anonymous over 4 years ago

Nigel Kersten wrote:

Needs developer input.

We should move to JSON, not YAML, everywhere in the product, and then drop YAML support entirely. Given that, this is relevant but not urgent, since we are unlikely to make that transition in the immediate future.

Also available in: Atom PDF