summaryrefslogtreecommitdiffstats
path: root/src/lib
Commit message (Collapse)AuthorAgeFilesLines
* Client: Fix client cache for py3kSol Jerome2014-08-011-2/+2
| | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Client: fix handling of important entriesAlexander Sulfrian2014-08-011-2/+2
| | | | | The condition of the if should match the case, if the entry should be skipped.
* Options: Fix default "Log to syslog" valueSol Jerome2014-07-311-1/+1
| | | | | | | This changes makes the default value match what is specified by the documentation. Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* Use setdefault instead of a conditionalMichael Fenn2014-07-151-3/+1
|
* Correctly handle config-file-only BooleanOptions which default to TrueMichael Fenn2014-07-141-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Bcfg2.Options.Parser._parse_config_options, if the "default" of the option (perhaps set by the config file) evaluates to True, then it runs the actions associated with the option. Otherwise, it just sets the option to the default directly with setattr. Since the default of a store_false action is True, the code will run argparse's _StoreFalseAction function. Well, _StoreFalseAction, is a subclass of _StoreConstAction where const=False. _StoreConstAction has a call method which looks like this: def __call__(self, parser, namespace, values, option_string=None): setattr(namespace, self.dest, self.const) So it completely ignores the value passed in and just sets the value of the option to const (i.e. False). Looking at fam_blocking {None: _StoreFalseAction(option_strings='fam_blocking', dest='fam_blocking', nargs=0, const=False, default=True, type=None, choices=None, help='FAM blocks on startup until all events are processed', metavar=None)} start phase 3 fam_blocking config val is True start phase 3 _parse_config_options: fam_blocking default is True _parse_config_options: calling argparse.<class 'argparse._StoreFalseAction'> with value True on fam_blocking _parse_config_options: after calling argparse.<class 'argparse._StoreFalseAction'> fam_blocking is False after _parse_config_options fam_blocking is False after phase 3 fam_blocking is False after phase 4 fam_blocking is False end of parser fam_blocking is False CLI init fam_blocking is False So how to fix it? Define a new Action? That seems like the most direct approach since the problem really is that _StoreFalseAction does what it says on the tin, it stores false no matter what. The new action BooleanOptionAction works like store_true and store_false, except that it stores the value that was passed in, or the default if there was no value passed in.
* Add a --no-fam-blocking command-line argument to bcfg2-serverMichael Fenn2014-07-071-1/+2
| | | | | | | There is a quirk in the configuration parser where a BooleanOption with default=True will always return false __unless_ a command-line option is provided. Not sure why that's the case, but this is a work- around
* Change fam_blocking default to TrueMichael Fenn2014-07-071-1/+1
| | | | | | | Based on discussion in #bcfg2, the consensus seems to be that the behavior provided by fam_blocking = True is the least surprising of the two options (i.e. the server should not process data until it is ready). 1.4 seems like a good time to make this change.
* Merge branch 'more-highlights-in-gridview' of ↵Sol Jerome2014-06-191-0/+4
|\ | | | | | | https://github.com/AlexanderS/bcfg2
| * Reports/templatetags: mark special hosts in grid viewAlexander Sulfrian2014-06-181-0/+4
| | | | | | | | | | Highligh additional special hosts in the grid view. Stale hosts get a grey background and clean hosts with extra packages get a blue background.
* | Client: Handle ^C when in interactive modeSol Jerome2014-06-191-2/+2
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Merge branch 'reports-add-stale-col' of https://github.com/AlexanderS/bcfg2Sol Jerome2014-06-181-0/+2
|\ \
| * | Reporting: add column staleAlexander Sulfrian2014-06-181-0/+2
| |/ | | | | | | | | | | Add a new column "stale", that displays if a host is stale or not. It could be determined by parsing the date column, but it would be more convenient to have a separate column for that.
* | doc: Fix 1.4.0pre1 release notesSol Jerome2014-06-161-2/+2
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Version bump to 1.4.0pre1v1.4.0pre1Sol Jerome2014-06-162-2/+2
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Metadata: Fix merge from 70d618bSol Jerome2014-06-151-2/+2
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Fix admins and managers in django configMatt Kemp2014-06-121-2/+2
| | | | | | This should eventually be a configurable.
* | Merge branch 'maint'Sol Jerome2014-06-102-9/+28
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com> Conflicts: doc/server/plugins/structures/bundler/index.txt src/lib/Bcfg2/Server/Admin/Init.py src/lib/Bcfg2/Server/Plugins/GroupLogic.py src/lib/Bcfg2/Server/Plugins/Properties.py src/lib/Bcfg2/Server/Plugins/Reporting.py
| * | Setup reporting transport before starting threadsTim Laszlo2014-06-101-1/+4
| | |
| * | GroupLogic: parse generated template properly to allow xincludeChris St. Pierre2014-05-221-1/+1
| | |
| * | Init: Remove stray whitespaceSol Jerome2014-05-171-1/+1
| | | | | | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
| * | Metadata: Reread clients.xml/groups.xml more carefullyChris St. Pierre2014-05-151-8/+21
| | | | | | | | | | | | | | | Avoid building client metadata while rereading those files, and expire the metadata cache afterwards.
| * | XMLFileBacked: Watch XIncluded files that do not existChris St. Pierre2014-05-151-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes a best effort to watch XIncluded files that do not exist. Assume that you have XIncluded ``foo.xml``, the following (currently) fails: mv foo.xml /tmp mv /tmp/foo.xml . Bcfg2 processes the deletion event, and stops watching ``foo.xml``; consequently, it receives no creation event when you put ``foo.xml`` back. This does not fix the situation where you add a new file that is matched by a wildcard XInclude, which turns out to be much more difficult, and will likely require a significant restructuring of how wildcard XIncludes are processed. (I.e., we'll need to place a monitor on the directory or directories where the wildcard XInclude is looking, and then filter events according to the wildcard.)
| * | catch errors base64 decoding encrypted properties dataChris St. Pierre2014-05-121-1/+1
| | |
* | | Setup reporting transport before starting threadsTim Laszlo2014-06-101-1/+5
| |/ |/|
* | Packages: Fix pylint testsSol Jerome2014-05-174-6/+9
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Merge branch 'recommended-per-package' of https://github.com/AlexanderS/bcfg2Sol Jerome2014-05-175-21/+66
|\ \
| * | Plugins/Packages: ability to overwrite recommended flag per packageAlexander Sulfrian2014-05-115-21/+66
| | |
* | | Client/Tools/FreeBSDInit: rework the whole toolAlexander Sulfrian2014-05-161-12/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new FreeBSDInit tool uses the service and sysrc tools to manage the FreeBSD rc.d services. There are no hardcoded paths to /usr/local/etc/rc.d/ anymore and the service tool handles rc.d scripts in /etc/rc.d/ as well. Additional to that, the new tool also gathers information about extra services that are enabled (using service -e) and can enable new services with sysrc. This is a frontend for /etc/rc.conf and therefore changes that file.
* | | Client/Tool/Pkgng: fix format string concatenationAlexander Sulfrian2014-05-151-1/+1
| | |
* | | Client/Tools/Pkgng: fail if pkg does not existsAlexander Sulfrian2014-05-071-1/+5
| | |
* | | Client/Tools/Pkgng: add client tool for pkgngAlexander Sulfrian2014-04-271-0/+222
| | |
* | | Packages/Pkgng: add new pkgng packages pluginAlexander Sulfrian2014-04-271-0/+87
|/ /
* | more unit test fixesChris St. Pierre2014-04-252-2/+1
| |
* | DjangoORM: Add missing importSol Jerome2014-04-251-0/+1
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Cfg: py3k fixSol Jerome2014-04-251-1/+1
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Merge branch 'maint'Chris St. Pierre2014-04-2521-64/+86
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: misc/bcfg2.spec src/lib/Bcfg2/Client/Client.py src/lib/Bcfg2/Client/Tools/APK.py src/lib/Bcfg2/Client/Tools/MacPorts.py src/lib/Bcfg2/Client/Tools/Pacman.py src/lib/Bcfg2/Client/Tools/YUM.py src/lib/Bcfg2/Server/Admin/Minestruct.py src/lib/Bcfg2/Server/Admin/Pull.py src/lib/Bcfg2/Server/Admin/Viz.py src/lib/Bcfg2/Server/Core.py src/lib/Bcfg2/Server/Plugins/Cfg/CfgEncryptedGenerator.py src/lib/Bcfg2/Server/Plugins/Cfg/CfgPrivateKeyCreator.py src/lib/Bcfg2/Server/Plugins/Properties.py src/lib/Bcfg2/settings.py src/sbin/bcfg2-crypt src/sbin/bcfg2-info src/sbin/bcfg2-lint src/sbin/bcfg2-yum-helper testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestCfg/TestCfgEncryptedGenerator.py testsuite/Testsrc/Testlib/TestServer/TestPlugins/TestProperties.py
| * fixed pylint/pep-8 testsChris St. Pierre2014-04-2514-45/+44
| |
| * do not bruteforce Properties decrypts with unknown passphraseChris St. Pierre2014-04-251-12/+5
| | | | | | | | | | this greatly decreases startup time with lots of data encrypted with missing passphrases
| * reduce logging from failed decryption with decrypt=laxChris St. Pierre2014-04-253-30/+25
| |
| * Enable bcfg2-yum-helper to depsolve for arches incompatible with serverJohn Morris2014-04-211-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, the yum dependency resolver uses the host's architecture to filter compatible packages. This prevents dependency resolution when the bcfg2 client's architecture is incompatible with the server's. This workaround checks the <Arch/> element for each of the client's yum sources, and if they are all identical, passes that architecture to bcfg2-yum-helper to override the default. The rpmUtils.arch module may only be configured for a single architecture. If multiple architectures are configured in yum sources, we don't know which one to pick, so use the default behavior instead.
| * Reporting: Log to debug to prevent spam in logsSol Jerome2014-04-161-2/+2
| | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
* | Default to only (En|De)crypt vars that need itChris Brinker2014-04-241-2/+1
| | | | | | | | | | | | | | | | | | | | | | For both Encrypting and Decrypting of Properties files, we should by default only attempt to execute on elements that have an "encrypted" attribute defined. The code will already attempt to encrypt every element if nothing in the current document matches this xpath, which catches the case of a user trying to fully encrypt a completely new properties file.
* | Merge branch 'maint' into masterSol Jerome2014-04-1625-108/+375
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Sol Jerome <sol.jerome@gmail.com> Conflicts: doc/appendix/guides/import-existing-ssh-keys.txt misc/bcfg2.spec src/lib/Bcfg2/Client/Tools/VCS.py src/lib/Bcfg2/Client/Tools/YUM.py src/lib/Bcfg2/Encryption.py src/lib/Bcfg2/Reporting/Collector.py src/lib/Bcfg2/Reporting/Storage/DjangoORM.py src/lib/Bcfg2/Server/Core.py src/lib/Bcfg2/Server/FileMonitor/__init__.py src/lib/Bcfg2/Server/Lint/RequiredAttrs.py src/lib/Bcfg2/Server/Plugin/helpers.py src/lib/Bcfg2/Server/Plugins/Metadata.py src/lib/Bcfg2/Server/Plugins/Packages/Yum.py src/lib/Bcfg2/Server/Plugins/Packages/__init__.py src/lib/Bcfg2/settings.py src/sbin/bcfg2-crypt src/sbin/bcfg2-reports src/sbin/bcfg2-yum-helper testsuite/Testsrc/Testlib/TestClient/TestTools/TestPOSIX/TestAugeas.py
| * Correctly upgrade or downgrade yum packagesChris St. Pierre2014-04-081-15/+36
| | | | | | | | | | | | | | | | | | | | | | | | Formerly, yum did an 'update' to install the correct version of a package, even if the desired package was older than the installed package. This is wrong; it needs to do a downgrade. This changes it to downgrade when the desired package is older, and upgrade if it is newer. There is still the possibility of upgrading a package that should be downgraded if the desired package is only partially specified, but this should be very rare.
| * Revert "Systemd: systemd is a replacement for chkconfig"Sol Jerome2014-04-061-2/+0
| | | | | | | | | | | | | | | | This reverts commit 690a18b5bb61516e5c11f6da3d788332373c196b. While systemd is meant to replace chkconfig, it appears that RHEL7 has both and does not provide systemd alternatives for certain SYSV init scripts by default.
| * Core: better error messages when altsrc bind failsChris St. Pierre2014-03-141-3/+4
| |
| * bcfg2-report-collector: better error messages when failing to daemonizeChris St. Pierre2014-03-041-0/+13
| |
| * cleared pylint error on PluginDatabaseModel metadata optionsChris St. Pierre2014-03-031-1/+2
| |
| * Core: close all database connections at the end of XML-RPC requestsChris St. Pierre2014-03-031-6/+26
| |
| * Reporting: properly close db connectionChris St. Pierre2014-02-282-4/+6
| | | | | | | | | | | | | | | | | | Close the db connection at the end of each DjangoORM import, not when the reporting collector shuts down. The collector may not have even opened a connection, in the case of a storage backend other than DjangoORM. Fixes #157