10/23/17
Added Features
- Added popover icon with an explanation for a Request's status to the Request
View page
- 'Make it Happen!' buttons are now middle-clickable
- Added sorting to Queue Management table
- ACTION-type requests can now be aged off similar to INFO-type requests
- Command descriptions can now be changed without updating the System version
- Added `updated_at` field to `Request` model
- Added `admin`, `queues`, and `config` endpoints to Swagger
- Brewtils: `SystemClient` now allows specifying a `client_cert`
- Brewtils: `RestClient` now reuses the same session for subsequent connections
- Typeaheads immediately display choices when focused
- Standardized Remote Plugin logging configuration
- Choices providers can now return a simple list
- PATCH requests no longer need to be wrapped in an `operations` envelope
- UI will display a warning banner when attempting to make a request on a
non-RUNNING instance
- Request creation endpoint now includes a header with the instance status in
the response
- Available choices for one parameter can now depend on the current value of
another parameter
- Brewtils: Added domain-specific language for dynamic choices configuration
- Brewtils: `SystemClient` can now make non-blocking requests
- Search functionality on the Command Index page
- Added `metadata` field to Instance model
- Brewtils: `RestClient` and `EasyClient` now support PATCHing a `System`
Bug Fixes
- Link to RabbitMQ Admin page now works correctly with non-default virtual host
- Large (>4MB) output no longer causes a Request to fail to complete
- Better handling of timeout failures during Request creation
- Number types no longer need be be selected in a Typeahead
- Removed default model values that could cause serialization inconsistencies
- System descriptors (description, display name, icon name, metadata) now always
updated during startup
- Corrected display for a multi string Parameter with choices
- Stricter type validation when making a request with string, integer, or
boolean parameters
- Added TTL to Admin messages so they don't persist forever
- Better handling of null values in the frontend
- Validating instance_name during request creation
- 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
- Increased startup reliability for Systems with many (>15) Instances
- Bartender helper threads can no longer hang shutdown
- POST and PATCH requests without a `content-type` header now return status code
400
- Better select control placeholder text
- Requests with output type 'JSON' will now have JSON error messages
- Smarter reconnect logic when the RabbitMQ connection fails
- Attempting to remove 'orphaned' commands if any are found during a query
Deprecations / Removals
- The following API endpoints are deprecated:
- POST `/api/v1/admin/system`
- GET `/api/v1/admin/queues`
- DELETE `/api/v1/admin/queues`
- DELETE `/api/v1/admin/queues/{queue_name}`
- Brewtils: `multithreaded` argument to `PluginBase` has been superseded by
`max_concurrent`
- Brewtils: 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 use `SchemaParser`
- `BrewmasterRestClient`, instead use `RestClient`
- `BrewmasterEasyClient`, instead use `EasyClient`
- `BrewmasterSystemClient`, instead use `SystemClient`
Other Changes
- Searching on Request Index page no longer searches request output
- Reset button on the Command View page ignore 'Pour it Again' values and always
reset to defaults
- Brewtils: Request processing now occurs inside of a `ThreadPoolExecutor`
thread
- Using Webpack to bundle frontend resources
- Removed dependencies on compiled Python packages (196) and Flask
- Using the `subprocess32` module to run Local Plugins
- Local plugins no longer run in their own separate process groups
- Local and Remote plugins are now functionally identical
- Improved concurrency by making all Thrift calls asynchronous