summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins
Commit message (Collapse)AuthorAgeFilesLines
* fixed inclusion of group packagesChris St. Pierre2011-10-122-4/+12
| | | | fixed loading of sources at server startup
* Cfg: Add support for .cheetah filesJoe Digilio2011-10-121-1/+30
|
* only cache packages from a package set, not unknownsChris St. Pierre2011-10-121-5/+7
|
* Cfg: Use two-digit group prioritiesSol Jerome2011-10-111-1/+1
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* fixed variable name typoChris St. Pierre2011-10-101-3/+3
|
* don't cache collections by hostname; this could lead to bad data if a host ↵Chris St. Pierre2011-10-072-30/+17
| | | | changes OS
* * Added support for yum libraries (if available and configured). ThisChris St. Pierre2011-10-079-1328/+2145
| | | | | | | | | | | | | | | | | | can dramatically reduce memory usage, and fixed several bugs: * #1014 (Package plugin can't resolve dependencies for rpms with Require: tags for full paths that aren't Provided explicitly) * #991 (Dependency Resolution difference between Package and yum) * #996 (Packages high memory usage) * Added support for Yum package groups when using yum libraries (#1039) * Fixed #911 (bcfg2 output for wrong package version with Packages is misleading) * YUMng turns down the Yum debug level itself depending on the debug/verbosity level requested by bcfg2 so you don't have to reduce the Yum debug level on a global basis * Added support for Pulp repositories, including registering Pulp consumers and binding to repositories * Added ability to disable magic OS groups
* fixed issue with bogus filenames in Bundler in a more generic way for all ↵Chris St. Pierre2011-10-051-7/+2
| | | | DirectoryBacked plugins
* make Bundler skip unknown filenames; this prevents an occasional stack trace ↵Chris St. Pierre2011-10-051-2/+7
| | | | when the Svn2.Update procedure is called
* fixed previous commit so that SingleXMLFileBacked plugins use xinclude, and ↵Chris St. Pierre2011-09-191-6/+4
| | | | GroupPatterns uses SingleXMLFileBacked correctly
* made all XMLFileBacked plugins (e.g., GroupPatterns) support XIncludeChris St. Pierre2011-09-191-7/+6
|
* added Defaults pluginChris St. Pierre2011-09-191-0/+51
|
* made templated bundles understand <Group> and <Client> tagsChris St. Pierre2011-09-151-4/+22
|
* Fix predicate call from PkgmgrCalen Pennington2011-09-141-2/+3
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Packages: Properly detect when user didn't create sources.xmlanatoly techtonik2011-09-121-1/+4
|
* Packages: Fix traceback when sources.xml is missing (#1043)Sol Jerome2011-09-121-1/+6
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* fixed indentation bug in SSHbase introduced in ↵Chris St. Pierre2011-09-061-26/+24
| | | | cb8b988774c573bb8f6840aa60be0ced60323940
* fix traceback when packages.conf doesn't exist or there is no [global]Joe Digilio2011-09-021-0/+2
| | | | | section. (cherry picked from commit 54e70421bd1aea5bdd495cf48767b88cfe82b3b1)
* Cfg : doesn't add a LineFeed after patching of filesKioob2011-09-021-3/+1
|
* Cfg : do not strip() end of lines before applying .diff filesKioob2011-09-011-2/+1
|
* fixed tracebacks introduced by 5360af9fe752850b1647Chris St. Pierre2011-09-011-1/+2
|
* fixed traceback introduced by 5360af9fe752850b1647Chris St. Pierre2011-09-011-2/+3
|
* anchor rules regexes at both ends to avoid bogus matchesChris St. Pierre2011-08-311-7/+3
|
* added regex support to RulesChris St. Pierre2011-08-311-1/+31
|
* Metadata: Add missing sys import (Resolves #1032)Sol Jerome2011-08-281-0/+2
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Cfg: Fix traceback in bcfg2-admin pullSol Jerome2011-08-271-3/+3
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* fixed comparisons for probe dataChris St. Pierre2011-08-261-0/+18
|
* SSHbase: Create only requested key typesHolger Weiß2011-08-261-38/+41
| | | | | | | | | | Instead of always creating DSA, RSA, and RSA1 key pairs when any of them is missing, create only the key pair currently requested via Bcfg2. That is, the abstract configuration entries now determine which key types are generated (and therefore included in the ssh_known_hosts files). The rationale is that many sites don't use RSA1 keys anymore.
* Cfg: Fix traceback caused by previous commitSol Jerome2011-08-221-1/+1
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Cfg: Log error when base file missing (reported by Ana Guerrero)Sol Jerome2011-08-211-5/+8
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Decisions: Add missing import (reported by Rob Lemley)Sol Jerome2011-08-201-0/+2
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* set path in Ohai probeChris St. Pierre2011-08-191-0/+2
|
* Metadata: Better handling of floating cert-authenticated clients (Ticket #1030)Sol Jerome2011-08-111-2/+18
| | | | | | | | | | | | | | | | | | | From the ticket: A floating, cert-authenticated client can be not recognized properly by hostname if it resolves to an arbitrary name in reverse DNS. Background: Metadata.resolve_client, called from @exposed Core's methods, falls back to reverse DNS lookup for client's name, because the name is not preserved thanks to bailing off early from Metadata.AuthenticateConnection. (This issue can be related to #936.) This patch enables caching of client names for cert-based floating clients. Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Be more patient for notifications about generated SSHkeys.Mike McCallister2011-08-091-8/+13
| | | | | | | Previously, we wanted one second for the FileMonitor to notify us about newly generated SSHkeys. Now, we wait up to ten seconds before logging a warning and giving up. (cherry picked from commit 204ddcddea55b1f8eed5f6dfe4dd2967bac5bad7)
* fixed backtrace if Packages downloads a bogus GPG keyChris St. Pierre2011-08-051-6/+13
|
* fixed more unescaped shell commandsChris St. Pierre2011-08-052-13/+24
|
* made packages.conf optionalChris St. Pierre2011-08-051-1/+5
|
* Removed the explicit calls to AddEntry from SSHbase.py in favor ofMike McCallister2011-08-051-3/+7
| | | | | | | | | | | | | | | allowing the normal FileMonitor events to populate the data structures. We now call the File Monitor's handle_events_in_interval() method after generating new host keys, so that the normal code paths can populate the data structures used for binding to file data. We need the explicit call because we can't wait for the server's normal event queue processing to discover the changes; we need the newly-generated keys available immediately for binding during the current connection with the client. (cherry picked from commit 74a6e4707725710f6629b292902f2312710e4980)
* fixed security bugs with unescaped input to the shellChris St. Pierre2011-08-054-24/+18
|
* fix broken assembling of yum repo urlJoe Digilio2011-08-031-1/+1
|
* don't add gpg-pubkey package unless there are instances to installChris St. Pierre2011-08-021-35/+36
|
* fixed error message to avoid tracebackChris St. Pierre2011-08-011-1/+1
|
* Lots of improvements to Packages plugin:Chris St. Pierre2011-08-011-247/+652
| | | | | | | | | | | | | | | | | | | | | | | * Better config handling: Split into packages.conf (which contains one-time configuration directives) and sources.xml (which contains the actual package sources.) The config file looks like a StructFile, and supports <Client> tags and negated Client and Group tags. Packages.Reload (_not_ Refresh) is run on changes to the sources config. tools/packages-convert.py is provided to convert to the new format. * Automagic handling of GPG keys. The new config format handles association of GPG keys go with repos; Packages then Does The Right Thing and gets them to the clients, gets them installed properly, and handles them in the specification. At the moment this only works for yum repos, not APT (see below). * Automatic generation of yum configs using the sources and GPG keys supplied. APT configs are not done yet (see below). * The early vestiges of integration with Pulp (pulpproject.org). Yet to do: * Better support for Pulp; documentation on Pulp integration. * APT support for key handling and config generation.
* added write() method to Properties to write back persistent changesChris St. Pierre2011-07-271-4/+43
|
* Rewrote DirectoryBacked so it handles files contained in an arbitrary ↵Mike McCallister2011-07-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory layout. Previously, DirectoryBacked (and as a result Bundler, Deps, Rules, Base, Pkgmgr, and others) only recognized XML files contained in the top-level plugin directory, for example: Deps/foo.xml Deps/subdir/foo.xml # <--- Ignored Bundler/bar.xml Bundler/subdir/baz.xml # <--- Ignored Now it can support the following as well: Deps/debian-lenny/foo.xml Deps/debian-squeeze/foo.xml Bundler/group-a/bar.xml Bundler/group-b/baz.xml Note that the directories and filenames do not factor into the semantic meaning of the configuration specification. The contents of foo.xml must stand alone, as if they were in the same single-level directory as before. In the case of Deps, Rules, Pkgmgr, and Svcmgr, you must use Groups and priorities within the XML files as needed to ensure that Bcfg2 can correctly resolve the configuration for your hosts. For example, prior to this change you would use a single file like the following: Deps/foo.xml: <Dependencies priority="0"> <Group name="debian-lenny"> <Package name="foo"> <Path name="/etc/foo.conf"/> </Package> </Group> <Group name="debian-squeeze"> <Package name="foo"> <Path name="/etc/foo.conf"/> <Path name="/etc/bar.conf"/> </Package> </Group> </Dependencies> Now you can use a pair of files in separate directories like the following. Note how the groups within each file prevent there from being two sources for a single package: Deps/debian-lenny/foo.xml: <Dependencies priority="0"> <Group name="debian-lenny"> <Package name="foo"> <Path name="/etc/foo.conf"/> </Package> </Group> </Dependencies> Deps/debian-squeeze/foo.xml: <Dependencies priority="0"> <Group name="debian-squeeze"> <Package name="foo"> <Path name="/etc/foo.conf"/> <Path name="/etc/bar.conf"/> </Package> </Group> </Dependencies> In the case of Bundler, individual filenames must remain unique throughout the directory hierarchy, and they must match the bundle name.
* Update to Deps to eliminate "Failed to add dep entry for <built-in function ↵Mike McCallister2011-07-251-1/+6
| | | | | | | | Comment>:None" warning. Comments in the Deps file (inside a Package element) will cause the above error. In generating the prerequisites, we can eliminate this by looking for callable() items and excluding them.
* Treat Bound entries like unbound entries for calculating prerequisites in Deps.Mike McCallister2011-07-231-5/+7
|
* Refactor the validate_structure() method into two.Mike McCallister2011-07-231-25/+45
| | | | | | | | | | | | | New method named calculate_prereqs() handles pre-req calculation. Existing validate_structure() method now only handles memoization of the prereqs and use of the prereqs to update the configuration. Also added a sort_order value to cause this plugin to run after Packages, so we can use Deps to add dependencies to implicitly added Packages. NOTE: This doesn't work yet, as Packages adds BoundPackage entries, and Deps doesn't yet realize they are equivalent to the Package entries it knows about. This will be fixed in a future commit.
* Created a new method to return a sorted list of plugins by type.Mike McCallister2011-07-221-0/+1
| | | | | | | | | | | | | | | | | | | | Replaced many list comprehensions in Core.py with a new method named plugins_by_type(), which does the same thing with an added twist: this new method also sorts the list of plugins by a new field named sort_order. It also uses the name of the plugin where the sort_order values are the same. This lets us control the processing sequence of plugins that need to build on the results of a plugin that runs prior to them. The immediate example is Deps, which should run after Packages has generated the full list of packages to be installed. Prior to this commit, it was impossible to control the order in which they ran. A future commit will (hopefully) take advantage of this capability. This commit also splits the Core.validate_data() method into two: one for validate_structures() and one for validate_goals(), instead of passing in a base class and using if logic. This approach seemed a little clearer to me.
* Fixed to accommodate changes made to Plugin.py in changeset ↵Mike McCallister2011-07-221-3/+4
| | | | | | | | | | | 3291a875339a7e5569d4. The changes to the INode.Match() function in changeset 3291a875339a7e5569d4 caused breakage in the Deps plugin, as it inherits from INode. This commit adjusts the definition of the predicate function in Deps.py to mirror the changes made to INode in Plugin.py, eliminating the error about the wrong number of parameters being passed to the lambda function.