summaryrefslogtreecommitdiffstats
path: root/lib/puppet/relationship.rb
Commit message (Collapse)AuthorAgeFilesLines
* Bundling of pure ruby json lib as "pson"Markus Roberts2009-10-171-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bundeling and renaming the pure ruby json library to addresses a number of cross version serliaization bugs (#2615, et al). This patch adds a subset of the files from the json_pure gem to lib/puppet/external/pson (renamed to avoid conflicts with rails) so that we will always have a known-good erialization format available. The pure ruby json gem as distibuted defers to the compiled version if it is installed. This is problematic in some circumstances so the files that have been brought over have been modified to always and only use the bundled version. It's a large patch, so here's a breakdown of the change categories: The majority of the lines are only marginally interesting: * The json lib itself (in lib/puppet/external/pson) make up the bulk of the lines. * Renaming of json to pson make up the second largest group. Somewhat more interesting are the following, which can be located by searching the diffs for the indicated strings: * Adjusting tests to reflect the changes * Changing the encoding/decoding behavior so that nested structures (e.g. resources) don't serialize as escaped strings. This should make it much easier to process the results with external tools, if needed. Search for "to_pson" and "to_pson_data_hash" * Cleaning up the envelope/metadata * Now provides a document_type (as opposed to a ruby class name) by using a symple registration scheme instead of constant lookup (search for "document_type") * Added an api_version (search for "api_version") * Added a hash for document metadata (search for "metadata") * Removing the yaml monkeypatch and instead disabling yaml serialization on ruby 1.8.1 in favor of pson (search for "yaml") * Cleaning up the json/rails feature interaction (they're now totally independent) (search for "feature")
* Switching Queueing to using JSON instead of YAMLLuke Kanies2009-06-061-1/+1
| | | | | | This provides about a 75x speedup, so it's totally worth it. The downside is that queueing requires json, but only on the server side.
* Adding JSON support to CatalogsLuke Kanies2009-06-061-0/+3
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding JSON support to Puppet::RelationshipLuke Kanies2009-06-061-1/+32
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Removed extra whitespace from end of linesIan Taylor2009-06-061-4/+4
|
* Fixing #1949 - relationships now use attributes instead of a labelLuke Kanies2009-03-101-28/+21
| | | | | | | | | | | This was important because the use of the label to store attributes was a holdover from the GRATR library, and if we didn't cease its use before we switched to RESTful catalogs, then we'd be stuck with the @label instance variable forever, essentially. Now we can add and remove variables however we please. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing #982 -- I have completely removed the GRATR graph libraryLuke Kanies2008-01-071-1/+5
| | | | from the system, and implemented my own topsort method.
* Switching the base class for the Relationship class.Luke Kanies2007-11-081-7/+10
| | | | | | | | | | | | | | It was previously using the GRATR::Edge class, which had wonky overrides that dramatically slowed down sorting (its hash mechanism hashed the source and target so that edges with the same source/target got the same hash, which we actually don't want any more). This shouldn't change any functionality, just performance. I didn't retain all functionality from the Edge class, but a lot of that functionality was, um, horrible, like Edge[] being equivalent to Edge.new.
* Removing the Id tags from all of the filesLuke Kanies2007-10-031-1/+0
|
* Moving code from external sources into an external/ directoryluke2007-01-301-1/+1
| | | | git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2119 980ebf18-57e1-0310-9a29-db15c13687c0
* Did a short-cut on the graphing, since we currently only support one type of ↵luke2006-12-291-2/+2
| | | | | | subscription. This solution still will not scale to all that many edges, but it works, although it will fail if we need to support different types of subcriptions. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1983 980ebf18-57e1-0310-9a29-db15c13687c0
* Most of the graphing work is now done. I have also added the generator work ↵luke2006-12-011-3/+15
| | | | | | in transactions, but I need to migrate files to using it. Until that migration is done, files will not work correctly for many cases. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1896 980ebf18-57e1-0310-9a29-db15c13687c0
* Intermediate commit -- I am ready to start pushing the graph stuff into the ↵luke2006-11-261-0/+51
types and transactions, which will break everything for a little while. git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1894 980ebf18-57e1-0310-9a29-db15c13687c0