| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
fixed loading of sources at server startup
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
| |
|
|
|
|
| |
changes OS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
DirectoryBacked plugins
|
|
|
|
| |
when the Svn2.Update procedure is called
|
|
|
|
| |
GroupPatterns uses SingleXMLFileBacked correctly
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
| |
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
|
|
|
| |
cb8b988774c573bb8f6840aa60be0ced60323940
|
|
|
|
|
| |
section.
(cherry picked from commit 54e70421bd1aea5bdd495cf48767b88cfe82b3b1)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
|
|
|
| |
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|