Brewtils Changelog¶
3.4.0¶
6/24/21
Bug Fixes¶
- Changed duplicate event enum value (Issue #932 / PR #330)
- Better handling of non-json error responses (Issue #1033 / PR #324)
- No longer ignoring max_attempts, max_timeout, and starting_timeout values (Issue #1028 / PR #323)
- A plugin Client instance can now be reused (Issue #1014 / PR #321)
- Charset in content-type header no longer breaks URL-based display resource loading (Issue #1010 / PR #319)
- URL-based template resolution respects connection configuration (Issue #1009 / PR #318)
- System attributes (like description) can now be cleared (Issue #1002 / PR #317)
New Features¶
- Jobs now have a timeout field (Issue #1046 / PR #329)
- Added bg_system and bg_default_instance properties to SystemClient (Issue #279 / PR #273)
- Forwarding REST calls now support blocking and timeout parameters (Issue #895 / PR #325)
- Added support for lambdas as a Choices source (Issue #1004 / PR #322)
- Bytes-type parameters are now supported (Issue #991 / PR #316)
- Systems can now have UI templates (Issue #997 / PR #315)
- Commands now have a metadata field (Issue #358 / PR #314)
Other Changes¶
- Removed support for pika versions below 1.0 (Issue #651 / PR #328)
- SystemClient now has a __str__ method (Issue #76 / PR #327)
- Dropped official support for Python 3.5 (Issue #1043 / PR #326)
- Added INVALID Request status (PR #325)
3.3.0¶
4/23/21
Bug Fixes¶
- Better error messages for incorrect parameter definitions (Issue #986 / PR #309)
- Fixed a case where reusing a parameter model could break (Issue #987 / PR #310)
New Features¶
- Support for scheduled job modification (Issue #294 / PR #308)
3.2.1¶
4/16/21
Bug Fixes¶
- Nullable multi parameters with a model no longer set a problematic default (Issue #769, #983 / PR #305)
- End date is now set correctly for cron-type jobs (Issue #963 / PR #306)
- Order of parameters in the UI now matches the order of decorators (Issue #267, #981 / PR #304)
Other Changes¶
- More type hints for SystemClient and EasyClient methods (Issue #957 / PR #303)
3.2.0¶
4/1/21
New Features¶
- SystemClient with no parameters will default to the current plugin (Issue #780 / PR #293)
- Added methods to RestClient and EasyClient for using the /api/v1/forward API (PR #301)
- New and improved decorators module (Issue #777 / PR #290)
Other Changes¶
- The @system decorator has been renamed to @client (Issue #927 / PR #297)
- @parameters (plural, with an “s”) is now deprecated (Issue #924, PR #299)
- Easier to specify logger name when creating a StoppableThread (Issue #874 / PR #291)
3.1.0¶
2/5/21
Bug Fixes¶
- SystemClient parameter resolution no longer always fails if no system is assigned (Issue #859 / PR #289)
- Added positional arguments back-compatibility for EasyClient and SystemClient creation (Issue #836 / PR #286)
- Fixed regression relating to old decorator deprecations (Issue #835 / PR #285)
Other Changes¶
- Added ‘hidden’ field to Request ile model (Issue #414 / PR #288)
- Added ‘job’ and ‘request’ fields to File model (Issue #833 / PR #284)
3.0.2¶
Date: 1/11/21
Bug Fixes¶
- SystemClient no longer disallows creating a Request for a System without a namespace (Issue #827 / PR #281)
- Logs are now written correctly when a Plugin encounters an uncaught exception after initialization (Issue #787 / PR #276)
- Plugin registration will now behave as expected when the list of plugin Commands is empty (Issue #806 / PR #277)
New Features¶
- Added a Rescan method to the EasyClient (Issue #815 / PR #278)
Other Changes¶
- The decorators
command_registrar
,register
, andplugin_param
are officially deprecated (Issue #825 / PR #280)
3.0.1¶
Date: 12/15/20
New Features¶
- Added
client_key
parameter to support separate key and cert files (beer-garden#785) - Better
SystemClient
error message if a positional parameter is used (beer-garden#775) - Plugins will now work when connected to a v2 Beer Garden (beer-garden#751)
- Support for file-type parameters (beer-garden#368)
Bug Fixes¶
- Using nested models when defining Parameters now works correctly (beer-garden#354)
Other Changes¶
- Plugins now register a SIGTERM handler for shutdown consistency (beer-garden/#745)
3.0.0¶
Date: 11/10/20
Note: This is a major upgrade with several breaking changes. Please see the Upgrade Guide for all changes.
New Features¶
- Plugins now automatically load configuration from CLI and environment variables
- Logging configuration is loaded automatically when Plugins are created
- No longer need to pass connection information to System/Easy/Rest Clients
- Parameter choices definition can be a non-list iterable (beer-garden/#512)
- It’s now easier to specify an alternate parent when making a request (beer-garden/#336)
- SchemaParser can now directly serialize dicts and Boxes (#239)
Bug Fixes¶
- EasyClient.get_instance_status is deprecated but now actually returns the instance status
Other Changes¶
- Plugins are now multi-threaded by default (#47)
- Better error messages when using SystemClient with raise_on_error=True (beer-garden/#689)
- Various deprecated names have been removed
- Can now defer setting a Plugin client
- EasyClient.get_version returns actual version information instead of Response object
- Using a pika version <1 is deprecated
2.4.15¶
Date: 10/13/20
Bug Fixes¶
- Fixing command invocation error when request has no parameters (beer-garden/#351)
2.4.14¶
Date: 1/30/20
Bug Fixes¶
- Better error handling if a request exceeds 16MB size limit (beer-garden/#308)
2.4.13¶
Date: 1/13/20
Bug Fixes¶
- Requests republished to rabbit are now persistent (beer-garden/#397)
2.4.11¶
Date: 12/9/19
Other Changes¶
- Plugins always attempt to notify Beer-garden when terminating (beer-garden/#376)
2.4.10¶
Date: 11/12/19
Bug Fixes¶
- Plugins can now survive a rabbitmq broker restart (beer-garden/#353, beer-garden/#359)
2.4.9¶
Date: 10/30/19
Bug Fixes¶
- Fixed issue with callbacks in RequestConsumer when using Pika v1 (beer-garden/#328)
2.4.8¶
Date: 9/5/19
New Features¶
- Better control over how specific error types are logged (beer-garden/#285)
Bug Fixes¶
- Decorators now work with non-JSON resources loaded from a URL (beer-garden/#310)
2.4.7¶
Date: 6/27/19
New Features¶
- Can now specify a name and version in the
system
decorator (beer-garden/#290)
Bug Fixes¶
- SystemClient now correctly handles versions with suffixes (beer-garden/#283)
Other Changes¶
- Added compatability with Pika v1 (#130)
2.4.6¶
Date: 4/19/19
Bug Fixes¶
- Using new pika heartbeat instead of heartbeat_interval (#118)
- @parameters now accepts any iterable, not just lists (beer-garden/#237)
Other Changes¶
- Support for new header-style authentication token (#122)
- Added EasyClient.get_instance, deprecated get_instance_status (beer-garden/#231)
- Parameters with is_kwarg on command without **kwargs will raise (beer-garden/#216)
2.4.5¶
Date: 2/14/19
Bug Fixes¶
- Fixed a warning occuring with newer versions of Marshmallow (#111)
Other Changes¶
- Adding EasyClient to __all__ (beer-garden/#233)
2.4.4¶
Date: 1/7/19
Bug Fixes¶
- RabbitMQ connections now deal with blocked connections (beer-garden/#203)
- Plugin will use url_prefix kwarg if bg_url_prefix not given (beer-garden/#186)
- Always respecting parameter choices definition changes (beer-garden/#58)
2.4.3¶
Date: 11/16/18
New Features¶
- Added instance retrieve and delete methods to clients (#91)
Bug Fixes¶
- Logging API now respects all connection parameters (#94)
2.4.2¶
Date: 10/7/18
New Features¶
- Ability to specify a timeout for Beergarden communication (beer-garden/#87)
parameters
decorator for cleaner command definitions (beer-garden/#82)
Bug Fixes¶
- Fixed error when republishing a message to RabbitMQ (beer-garden/#88)
2.4.1¶
Date: 09/11/18
Other Changes¶
- Changed Plugin warning type so it won’t be displayed by default
2.4.0¶
Date: 09/5/18
New Features¶
- Added job scheduling capability (beer-garden/#10)
- Added support for authentication / users (beer-garden/#35)
- Plugins will load log level from the environment (bartender/#4)
- RestClient now exposes
base_url
(#58) - SystemClient can wait for a request to complete instead of polling (#54)
- Allowing custom argument parser when loading configuration (#67)
- Support for TLS connections to RabbitMQ (#74)
- Warning for future change to plugin max_concurrent default value (#79)
- Added methods
get_config
to RestClient,can_connect
to EasyClient
Other Changes¶
- Renamed PluginBase to Plugin (old name is aliased)
2.3.7¶
Date: 07/11/18
New Features¶
- Current request can be accessed using
self._current_request
(beer-garden/#78)
Bug Fixes¶
- Updating import problem from lark-parser #61
- Pinning setup.py versions to prevent future breaks
2.3.5¶
Date: 4/17/18
Bug Fixes¶
- Using simplejson package to fix JSON parsing issue in Python 3.4 & 3.5 (#48, #49)
2.3.4¶
Date: 4/5/18
New Features¶
- Python 3.4 is now supported (#43)
- Now using Yapconf for configuration parsing (#34)
- Parameter types can now be specified as native Python types (#29)
- Added flag to raise an exception if a request created with
SystemClient
completes with an ‘ERROR’ status (#28)
Other Changes¶
- All exceptions now inherit from
BrewtilsException
(#45) - Removed references to
Brewmaster
exception classes (#44) - Requests with JSON
command_type
are smarter about formatting exceptions (#27) - Decorators,
RemotePlugin
, andSystemClient
can now be imported directly from thebrewtils
package
2.3.2¶
Date: 3/7/18
Bug Fixes¶
- Fixed issue with multi-instance remote plugins failing to initialize (#35)
2.3.0¶
Date: 1/26/18
New Features¶
- Added methods for interacting with the Queue API to RestClient and EasyClient
- Clients and Plugins can now be configured to skip server certificate verification when making HTTPS requests
- Timestamps now have true millisecond precision on platforms that support it
- Added
form_input_type
to Parameter model - Plugins can now be stopped correctly by calling their
_stop
method - Added Event model
Bug Fixes¶
- Plugins now additionally look for
ca_cert
andclient_cert
inBG_CA_CERT
andBG_CLIENT_CERT
Other Changes¶
- Better data integrity by only allowing certain Request status transitions
2.2.1¶
Date: 1/11/18
Bug Fixes¶
- Nested requests that reference a different beer-garden no longer fail
2.2.0¶
Date: 10/23/17
New Features¶
- Command descriptions can now be changed without updating the System version
- Standardized Remote Plugin logging configuration
- Added domain-specific language for dynamic choices configuration
- Added
metadata
field to Instance model
Bug Fixes¶
- Removed some default values from model
__init__
functions - System descriptors (description, display name, icon name, metadata) now always updated during startup
- Requests with output type ‘JSON’ will now have JSON error messages
Other changes¶
- Added license file
2.1.1¶
Date: 8/25/17
New Features¶
- Added
updated_at
field toRequest
model SystemClient
now allows specifying aclient_cert
RestClient
now reuses the same session for subsequent connectionsSystemClient
can now make non-blocking requestsRestClient
andEasyClient
now support PATCHing aSystem
Deprecations / Removals¶
multithreaded
argument toPluginBase
has been superseded bymax_concurrent
- These decorators are now deprecated
-
@command_registrar
, instead use@system
-@plugin_param
, instead use@parameter
-@register
, instead use@command
- These classes are now deprecated
-
BrewmasterSchemaParser
, instead useSchemaParser
-BrewmasterRestClient
, instead useRestClient
-BrewmasterEasyClient
, instead useEasyClient
-BrewmasterSystemClient
, instead useSystemClient
Bug Fixes¶
- Reworked message processing to remove the possibility of a failed request being stuck in
IN_PROGRESS
- Correctly handle custom form definitions with a top-level array
- Smarter reconnect logic when the RabbitMQ connection fails
Other changes¶
- Removed dependency on
pyopenssl
so there’s need to compile any Python extensions - Request processing now occurs inside of a
ThreadPoolExecutor
thread - Better serialization handling for epoch fields