Brewtils Changelog¶
3.0.2¶
Date: 1/11/21
Bug Fixes¶
- Fixed Plugin Logging hook to ensure logs are written when Plugin shuts down unexptendetly (Issue #787 / PR #276)
- Properly handle empty command list (PR #277)
New Features¶
- Adding check for PyPi before building Docker Images in Github Actions (PR #275)
- Addes ReScan Method the Easy Client (Issue #815 / PR #278)
- Deprecation warnings for annotations command_registrar, register, and plugin_param (Issue #825 / PR #280)
- Removes requirement for Namespace when submitting Request through the Easy Client (Issue #827 / PR #281)
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