summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* First pass at Jinja2 support for Cfg.Gordon Messmer2014-09-115-2/+120
|
* Clean up unicode diff handling a little more.Matt Kemp2014-08-201-1/+1
|
* Fixed lint test error.Matt Kemp2014-08-151-1/+1
|
* udiff doesn't mean unified diff, it means unicode diffMatt Kemp2014-08-151-4/+4
|
* Removed ndiff from POSIXFile, only attempt unified diff.Matt Kemp2014-08-151-35/+15
| | | | | | | | | | This removes the ndiff, which is a bit extraneous and can cause up to 30 second timeouts on larger files with many changes. unified_diff is faster and generally more applicable, and is already what is shown to the admin on interactive mode. This can save up to 30 seconds per file, per run. A future commit can take the resulting unified diff and recreate the ndiff specifically for the reporting if that is desired.
* Merge pull request #185 from AlexanderS/only-importantChris St. Pierre2014-08-041-7/+22
|\ | | | | Add only important flag
| * Client: support dryrun mode and only-importantAlexander Sulfrian2014-08-011-1/+11
| | | | | | | | | | Add support for displaying the skipped entries in dryrun mode when using the --only-important command line flag.
| * Client: add --only-important command line optionAlexander Sulfrian2014-08-011-6/+11
| | | | | | | | | | | | Add the new --only-important (-i) command line option. With this option bcfg2 will only configure the important entries and exits clean afterwards.
* | Reporting: do not duplicate isstale functionalityAlexander Sulfrian2014-08-012-15/+2
| | | | | | | | | | | | | | | | | | | | | | The interaction entries have a isstale() method, we do not need a template tag, that tries to figure out this on its own. The isstale() method works even better: It knows, if the interaction is the current interaction and compares the timestamp to the current time or (if it is not the current one) it compares the timestamp to the timestamp of the next interaction. So using the method of the model, you can browse the interaction history and see, if the host was stale some time in the past. Previously all interactions more than 24h ago were marked stale.
* | 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-2517-50/+47
| |
| * Default to only (En|De)crypt vars that need itChris Brinker2014-04-251-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. Conflicts: src/lib/Bcfg2/Server/Encryption.py
| * 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-212-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.