Feature #11299

Facter should utilize CFPropertyList to read/write plist files

Added by Gary Larizza 5 months ago. Updated 1 day ago.

Status:Closed Start date:12/08/2011
Priority:Normal Due date:
Assignee:Gary Larizza % Done:

0%

Category:library
Target version:2.0.0
Keywords:OS X plist cfpropertylist Affected Facter version:
Branch:https://github.com/puppetlabs/facter/pull/188
Votes: 0

Description

Currently Facter has to run plutil -convert xml1 on EVERY plist it encounters because it has no way of supporting binary plist files. The CFPropertyList project is a Ruby library that allows direct access to read/write plist files WITHOUT using Apple’s CoreFoundation libraries (which give Facter/Puppet problems due to green threading). Facter should be able to utilize that library to read/write plist files as it would speed up service resource handling exponentially.

History

Updated by Ken Barber 5 months ago

  • Category set to library
  • Target version set to 1.6.x

Changing target – Gary wants to get this into 1.6.x, but it will need to be debated as it may introduce risk. Lets wait for the code and see.

Updated by Gary Larizza about 1 month ago

  • Status changed from Accepted to In Topic Branch Pending Review
  • Target version changed from 1.6.x to 2.0.0
  • Keywords set to OS X plist cfpropertylist

Pull request filed —> https://github.com/puppetlabs/facter/pull/188

Spoke with Ken about a month ago regarding this, and I think we’re targeting 2.0.x with this change since it’s a reasonably big thing.

Updated by Gary Larizza about 1 month ago

  • Branch changed from https://github.com/glarizza/facter/tree/feature/1.6.x/plist_support to https://github.com/puppetlabs/facter/pull/188

Updated by Nigel Kersten 20 days ago

What’s this blocking on? Someone to review it?

Updated by Gary Larizza 20 days ago

Ken made a comment on the Pull https://github.com/puppetlabs/facter/pull/188 and I’ve not yet had a chance to elaborate on it (spoiler: Facter doesn’t do a lot of processing and CFP uses 3 different methods to parse Plists that range from fastest, fast, and really slow). Once I get a chance I’d expect that we can move further with it. I’ve got no comments on the Puppet pull request, though.

Updated by Ken Barber 20 days ago

Its currently slower then the old implementation it would seem. I’ve already commented on this in the pull request. On Apr 26, 2012 9:36 PM, tickets@puppetlabs.com wrote:

Issue #11299 has been updated by Nigel Kersten.

What’s this blocking on? Someone to review it?

Feature #11299: Facter should utilize CFPropertyList to read/write plist files https://projects.puppetlabs.com/issues/11299#change-61503

  • Author: Gary Larizza
  • Status: In Topic Branch Pending Review
  • Priority: Normal
  • Assignee: Gary Larizza
  • Category: library
  • Target version: 2.0.0
  • Keywords: OS X plist cfpropertylist
  • Branch: https://github.com/puppetlabs/facter/pull/188
  • Affected Facter version:

Currently Facter has to run plutil -convert xml1 on EVERY plist it encounters because it has no way of supporting binary plist files. The CFPropertyList project is a Ruby library that allows direct access to read/write plist files WITHOUT using Apple’s CoreFoundation libraries (which give Facter/Puppet problems due to green threading). Facter should be able to utilize that library to read/write plist files as it would speed

up service resource handling exponentially.

You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account

Updated by Daniel Pittman 5 days ago

  • Status changed from In Topic Branch Pending Review to Merged - Pending Release

Thanks for this – this is now merged, and will be released as part of Facter 2.0.0 – that helps manage the risk that the change has unexpected consequences, even though it should be thoroughly safe.

Updated by Matthaus Litteken 1 day ago

  • Status changed from Merged - Pending Release to Closed

Released in facter 2.0.0rc1

Also available in: Atom PDF