| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
|
|
|
| |
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.
(cherry picked from commit e496fb95eaf9200f78248106f9fd7ec6b7d9e530)
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
|
|
|
|
|
| |
* Fixed mode argument parsing when a config file is supplied
* Fixed loading help messages when Reports is not configured
* Improved option parsing; used Bcfg2.Options.OptionParser
|
|
|
|
| |
piping stderr to /dev/null to prevent failure
|
| |
|
| |
|
|
|
|
| |
altsrc'd files
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also added missing definition for client.
|
|
|
|
|
| |
Has the benefit that environment variable names will now be visible in
the documentation index.
|
|
|
|
| |
Add "interactive_only" to the list of supported <Service> mode values.
|
|
|
|
|
|
|
|
|
|
| |
For some reason, using an XIncluded file with more than one Client
on my RHEL5 systems would generate an invalid schema, even though
it was acceptable to bcfg2-server, and would pass on my Fedora 15
workstation.
This change will make bcfg2-lint on RHEL5 accept XIncluded files
with more than one Client entry.
|
| |
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
|\ |
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 146a7a633bc3a36de21f589af0eec10755b0cae5.
We don't really need this since we have already solved the version bits
using sys.hexversion where needed. Also, this won't work on python3, so
we won't be able to use it there.
|
|\ \
| |/
|/| |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Because of restrictions in Mac OS X packaging, Bcfg2's
Micro and Minor version numbers must be combined into an
integer in the OS X package (IFMinorVersion attribute).
In order for this to work, the micro version must be an
integer, otherwise we'll run into cases where the·
IFMinorVersion will not be in sequence with the Bcfg2
Micro and Minor versions.
|
| |\ |
|
| |\ \ |
|
| | | | |
|
| | | | |
|
| |/ / |
|
| | | |
|
| | |
| | |
| | |
| | | |
osx/Makefile will now have the version variables set when the repo is tagged like other package directories.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|