Project

Profile

Help

Story #984

Updated by bmbouter almost 8 years ago

Story #948 causes Pulp to store metadata.json from Puppet modules as a blob on the puppet module unit. Also, Pulp 2.x stores puppet fields like author and name which it introspects from the name of the .tar.gz file. This limits searches from benefitting from the structured form of metadata.json data and is confusing because of similar names in multiple places. 

 The metadata.json data should become the first class metadata that Pulp tracks. Additionally the fields 'module' and 'username' should be captured from the filename to provide that data for forge API purposes. The final result will be all metadata.json fields  

 This also should have some unit key implications. The unit key should continue to be <author, name, version> but this metadata.json change will change the semantics of those fields to be driven by metadata.json instead of the .tar.gz filename. 

 The install distributor will need to be modified to publish the folder name so that it matches the puppet class name in the module's init.pp file. name. This is due to inconsistency between running puppet modules on the filesystem and the name field specified in many puppet module's metadata.json modules in practice. For example on the filesystem the apache module needs to be in a directory called apache which matches the puppet class name in init.pp apache.pp however the name field in metadata.json contains "puppetlabs-apache". If we publish with the name as it would become with the work in this story puppet installs would break. 

 This has some CLI implications that are described in the deliverables. 

 h2. Deliverables 

 * server side changes described 
 * adjust the install distributor so that it doesn't break as described ^ 
 * A migration to move around all the data for existing puppet modules 
 * CLI changes to remove the metadata listing options introduced with #948 since those will now be the default 
 * CLI improvements to show more of the metadata.json info. 
 * documentation 
 * release notes on this change

Back