summaryrefslogtreecommitdiffstats
path: root/lib/puppet/file_serving
Commit message (Collapse)AuthorAgeFilesLines
* Removed extra whitespace from end of linesIan Taylor2009-06-066-9/+9
|
* Modules now can find their own pathsLuke Kanies2009-05-151-1/+1
| | | | | | | | | | | | Previously, when you created a module you had to specify the path. Now Module instances can use the module path to look up their paths, and there are methods for determining whether the module is present (if the path is present). Also cleaned up the methods for figuring out what's in the module (plugins, etc.). Signed-off-by: Luke Kanies <luke@madstop.com>
* Fix #2101 - fix recurselimit == 0 bad behaviourBrice Figureau2009-03-271-2/+2
| | | | | | | After the fix for #1469, recurselimit = 0 was considered as an infinite recursion which is the reverse of what it was before. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Fix #1469 - Add an option to recurse only on remote sideBrice Figureau2009-03-201-13/+7
| | | | | | | | | | | | | | | | | | | When using recurse and a source, if the client side has many files it can take a lot of CPU/memory to checksum the whole client hierarchy. The idea is that it is not necessary to recurse on the client side if all we want is to manage the files that are sourced from the server. This changeset adds the "remote" recurse value which prevents recursing on the client side when a source is present. Since it also is necessary to limit the remote side recursion a new File{} parameter has been added called "recurselimit". Moreover, the Filetset API is changing to allow the new recurselimit parameter, and passing the recursion depth limit in the recurse parameter as an integer is now deprecated and not supported anymore. Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
* Moving default fileserving mount creation to the Configuration classLuke Kanies2009-03-052-8/+9
| | | | | | | | | | It was previously in the parser, but the parser is only created if the fileserver.conf exists, so the default mounts weren't made if the file didn't exist. This is a bit less encapsulation, but not much. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixed #1849 - Ruby 1.9 portability: `when' doesn't like colons, replace with ↵James Turnbull2009-02-262-12/+12
| | | | semicolons
* Correctly handling URI escaping throughout the REST processLuke Kanies2009-02-191-5/+1
| | | | | | | | | | This means, at the least, that we can now serve files via REST when they have spaces and other weird characters in their names. This involves a small change to many files. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding pluginsyncing support to the IndirectorLuke Kanies2009-02-197-237/+268
| | | | | | | | | This switches away from the use of terminii for each type of fileserving - it goes back to the traditional fileserving method, and is much cleaner and simpler as a result. Signed-off-by: Luke Kanies <luke@madstop.com>
* Moving Request and Fileset integration into Fileset.Luke Kanies2009-02-192-18/+31
| | | | | | | It was previously in a helper module, TerminusHelper. I hope to actually remove that module entirely. Signed-off-by: Luke Kanies <luke@madstop.com>
* Supporting multiple paths for searching for files.Luke Kanies2009-02-181-3/+7
| | | | | | | This is, once again, used for plugins, which needs to search across multiple modules' plugin directories. Signed-off-by: Luke Kanies <luke@madstop.com>
* Adding support for merging multiple filesets.Luke Kanies2009-02-181-0/+17
| | | | | | | This is required for plugins, which recurse across multiple directories. Signed-off-by: Luke Kanies <luke@madstop.com>
* Fixing fileserving to support strings or symbolsLuke Kanies2009-02-182-1/+2
| | | | | | | When used internally we would use symbols, but the REST transfers need to support strings. Signed-off-by: Luke Kanies <luke@madstop.com>
* Refactoring the Cacher interface to always require attribute declaration.Luke Kanies2008-11-112-6/+10
| | | | | | | | | | | | | | | Previously you could dynamically use cached values, but the new interface requires a single static declaration of the attribute: cached_attr(:myattr) { my_init_code() } This is cleaner, because it makes it easy to turn the code into an init method and generally makes the whole thing easier to think about. Most of this commit is going through the different classes that already using the Caching engine. Signed-off-by: Luke Kanies <luke@madstop.com>
* Deduplicating slashes in the fileserving codeLuke Kanies2008-11-041-2/+2
| | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* Merge branch '0.24.x' Removed the 'after' blocks that call Type.clear,Luke Kanies2008-10-172-5/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | since that method is deprecated. Conflicts: CHANGELOG bin/puppetca lib/puppet/file_serving/fileset.rb lib/puppet/network/xmlrpc/client.rb lib/puppet/type/file/selcontext.rb spec/unit/file_serving/metadata.rb spec/unit/type/file.rb
| * Fix metadata class for cases when checksum_type setPaul Nasrat2008-09-301-3/+3
| |
| * Fix ticket 1596 in new fileset code, use tmpdir in fileserver tests.Paul Nasrat2008-09-301-1/+1
| |
| * Make fileserver use fileset for recursion and handle dangling links by ↵Paul Nasrat2008-09-301-1/+1
| | | | | | | | ignoring them fixing #1544
* | Fixing filesets to allow nil ignore values.Luke Kanies2008-08-281-0/+2
| | | | | | | | Signed-off-by: Luke Kanies <luke@madstop.com>
* | Fixing FileServing::Base so that it can recurse on a single file.Luke Kanies2008-08-271-1/+1
| | | | | | | | | | | | | | It was throwing exceptions if you tried to use it on a file instead of a directory. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Fixing the terminus helper so it correctly catches options passed from ↵Luke Kanies2008-08-261-1/+10
| | | | | | | | | | | | clients via REST. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Adding a "source" attribute to fileserving instances.Luke Kanies2008-08-261-0/+4
| | | | | | | | | | | | | | This will be used to cache the source that was used to retrieve the instance. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Adding automatic attribute collection to the new fileserving code.Luke Kanies2008-08-264-2/+4
| | | | | | | | | | | | | | | | | | | | | | Basically, this just includes a consistent method for collecting info (either content or metadata) and then calls that method when returning instances via the indirector. It's such a large commit mostly because of small changes in the normal code and large changes in the testing to accomodate those small changes. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Adding the content writer to the content class.Luke Kanies2008-08-261-1/+3
| | | | | | | | | | | | | | Also choosing a fully qualified fake name when creating content instances from raw content. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Fixing the rest backends for webrick and mongrel so the get the whole ↵Luke Kanies2008-08-261-1/+15
| | | | | | | | | | | | | | | | | | request key. Also adding the Content work necessary to demonstrate that this is actually required. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Refactoring how files in FileServing are named.Luke Kanies2008-08-263-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, they retained some concept of the URI used to find them, and this uri was the primary key for the FileServing instances. This key was unfortunately completely useless, as evidenced by the fact that it was never used except to test that it worked. I've modified the FileServing instances (through modifying the Base class) to use their local path as their key, and they no longer care about the URI at all. This commit is mostly about fixing the code that interacts with the instances to use this new API. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Finishing the rename of FileBase => Base.Luke Kanies2008-08-261-0/+76
| | | | | | | | | | | | | | | | | | | | | | Git did something really strange, in that it apparently didn't add the new base.rb files even though I used 'git mv'. Also fixing some other failing tests I hadn't previously tracked down because of the magical tuple of autotest's suckiness and my laziness. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Renaming FileServing::FileBase to FileServing::Base.Luke Kanies2008-08-263-83/+14
| | | | | | | | | | | | | | | | Also fixing a set of tests I broke last night. I'm looking at replacing autotest with rspactor, because my FSEvents hack to autotest means it's harder for me to rerun autotest. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Removing the yaml conversion code from FileContent.Luke Kanies2008-08-261-8/+0
| | | | | | | | | | | | | | | | Also fixing some integration tests that were failing because of the change to the terminus selection code for file serving. Signed-off-by: Luke Kanies <luke@madstop.com>
* | FileServing Configurations now expect unqualified files.Luke Kanies2008-08-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | This fits in with the fact that the indirection requests split URIs and set the request key to an unqualified path rather than a fully-qualified path. The whole system is unqualified end-to-end, now, except when you're specifically asking for a full, local file name. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Fixing the fileserving terminus selection hook.Luke Kanies2008-08-261-22/+23
| | | | | | | | | | | | | | It now uses the fact that the indirection request does URI parsing, rather than doing the parsing on its own. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Merge branch '0.24.x' into mergingLuke Kanies2008-07-291-4/+4
|\| | | | | | | | | | | Conflicts: test/ral/type/filesources.rb
| * Fixed all of the fileserving termini so they use indirection requests.Luke Kanies2008-07-181-4/+4
| | | | | | | | | | | | | | | | This looks like a much larger commit than it is -- it doesn't change any behaviour at all, it just adds some integration tests (which expose the problem) and then switches from an ad-hoc api to a request-based api. Signed-off-by: Luke Kanies <luke@madstop.com>
* | Using the new Cacher class for handling cached data.Luke Kanies2008-05-132-23/+15
|/ | | | | This provides a single, global bit for determining whether a given piece of cached data is still valid.
* Fixing the tests that were failing because of the useLuke Kanies2008-04-081-2/+4
| | | | of the indirection request object.
* Removing unused code from the file_serving/metadata class.Luke Kanies2008-04-081-9/+0
|
* Found all instances of methods where split() is used withoutLuke Kanies2008-03-211-2/+4
| | | | | | | | | | any local variables and added a local variable -- see http://snurl.com/21zf8. My own testing showed that this caused memory growth to level off at a reasonable level. Note that the link above says the problem is only with class methods, but my own testing showed that it's any method that meets these criteria. This is not a functional change, but should hopefully be the last nail in the coffin of #1131.
* Fixing #1093 -- 0.23.2 clients are again compatibleLuke Kanies2008-02-281-0/+1
| | | | | with 0.24.x servers. :ignore links is now equivalent to :manage links.
* Somewhat refactored fileserving so that it no longer cachesLuke Kanies2008-02-232-14/+44
| | | | | | | | | | any objects, nor does it use Puppet's RAL resources. In the process, I fixed #894 (you can now copy links) and refactored other classes as necessary. Mostly it was fixing tests. This is a squashed commit of a temporary branch, fwiw, and it also includes any fixes to the tests that were necessary to get all tests passing again.
* File serving should work now, both recursive andLuke Kanies2007-10-244-16/+47
| | | | | | | | | | | | | | single files, across modules, local file system, and the traditional file server. This work revolves around making sure that the termini produce functional file instances, meaning that they know how to find their content or metadata, which largely comes down to setting their paths correctly. I also created a new terminus base class for the local filesystem, since there was so much common code between content and metadata.
* Renaming the FileServing TerminusSelector module to IndirectionHooks,Luke Kanies2007-10-223-5/+5
| | | | because I'm going to add some hooks for transforming returned objects.
* Renaming the :local termini for metadata and contentLuke Kanies2007-10-221-2/+2
| | | | to :file.
* Link handling is now in the file serving classes.Luke Kanies2007-10-223-25/+74
| | | | | | | | | | This was done by putting all of the functionality in the Content and Metadata class (actually, in a new base class for them). There are still some issues, and there need to be integration tests between the :local (soon to be renamed :file) termini for these classes.
* Adding searchability to the fileserving termini, using theLuke Kanies2007-10-222-2/+17
| | | | | | | new Fileset class. The tests aren't the cleanest, in that there is still a good bit of duplication in them, but it's what we got.
* Adding a Fileset class for managing sets of files. ThisLuke Kanies2007-10-221-0/+138
| | | | | | | is the new server-side for file recursion, and I'll next be hooking it to the fileserving 'search' methods. This is basically a mechanism for abstracting that search functionality into a single class.
* Adding authorization hooks to the file_server andLuke Kanies2007-10-212-3/+18
| | | | | | | | | | | | | module_files indirection terminus types. Both hooks use the fileserver configuration, but the module_files hook only uses the 'modules' mount. Also moved all responsibility for knowing whether to use the 'modules' terminus type to the terminus selector; it was previously spread between that and the file_server terminus, which made some things annoyingly complicated. This normalizes the deprecation notices and the logic about how we make these decisions.
* Renaming the 'mounts' terminus to 'file_server', and renamingLuke Kanies2007-10-201-3/+3
| | | | tests accordingly.
* File serving now works. I've tested a couple of ways toLuke Kanies2007-10-195-84/+24
| | | | | | | | | | | | | | | | use it, and added integration tests at the most important hook points. This provides the final class structure for all of these classes, but a lot of the class names are pretty bad, so I'm planning on going through all of them (especially the file_server stuff) and renaming. The functionality is all here for finding files, though (finally). Once the classes are renamed, I'll be adding searching ability (which will enable the recursive file copies) and then adding the link management and enabling ignoring files.
* I've now split the file-serving termini into two separate types (inLuke Kanies2007-10-184-35/+60
| | | | | | | | | | | | | | | | addition to Rest): A local terminus that just uses direct file paths, and a mounts terminus that uses the file server to figure out what the path should be. It looks like it also makes sense to split the 'mounts' terminus further, so there is a 'modules' terminus used to look files up in the terminus. I've added some integration tests to verify that everything is hooked together correctly. Lastly, I added a directory for shared behaviours. There's a ton of duplication in this setup, because the Content and Metadata classes behave almost but not quite identically across the board.
* Fixing all of the classes that I just renamed, and addingLuke Kanies2007-10-182-2/+3
| | | | the TerminusSelector module to the File Metadata indirection.