diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5bd1fbeb..c4fc99cb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,7 @@ Brewtils Changelog ------ TBD +- Update Parameter and Resolvable to add file_name - Added support for display name to command decorator - Updated Wait Timeout Exception expected HTTP code from 408 to 504 - Dropping Official Python 2.7 Support diff --git a/brewtils/decorators.py b/brewtils/decorators.py index a395893f..1d9d8ed8 100644 --- a/brewtils/decorators.py +++ b/brewtils/decorators.py @@ -250,6 +250,7 @@ def parameter( display_name=None, # type: Optional[str] optional=None, # type: Optional[bool] default=None, # type: Optional[Any] + file_name=None, # type: Optional[str] description=None, # type: Optional[str] choices=None, # type: Optional[Union[Callable, Dict, Iterable, str]] parameters=None, # type: Optional[List[Parameter]] @@ -288,6 +289,7 @@ def echo(self, message): optional: Boolean indicating if this parameter must be specified. default: The value this parameter will be assigned if not overridden when creating a request. + file_name: Default string value for file input. description: An additional string that will be displayed in the user interface. choices: List or dictionary specifying allowed values. See documentation for more information. @@ -335,6 +337,7 @@ def echo(self, message): display_name=display_name, optional=optional, default=default, + file_name=file_name, description=description, choices=choices, parameters=parameters, @@ -355,6 +358,7 @@ def echo(self, message): display_name=display_name, optional=optional, default=default, + file_name=file_name, description=description, choices=choices, parameters=parameters, @@ -890,6 +894,7 @@ def _initialize_parameter( display_name=None, optional=None, default=None, + file_name=None, description=None, choices=None, parameters=None, @@ -931,6 +936,7 @@ def _initialize_parameter( display_name=display_name, optional=optional, default=default, + file_name=file_name, description=description, choices=choices, parameters=parameters, diff --git a/brewtils/models.py b/brewtils/models.py index 635634e4..392b30be 100644 --- a/brewtils/models.py +++ b/brewtils/models.py @@ -327,6 +327,7 @@ def __init__( display_name=None, optional=None, default=None, + file_name=None, description=None, choices=None, parameters=None, @@ -345,6 +346,7 @@ def __init__( self.display_name = display_name self.optional = optional self.default = default + self.file_name = file_name self.description = description self.choices = choices self.parameters = parameters or [] @@ -1697,11 +1699,13 @@ def __init__( self, id=None, # noqa # shadows built-in type=None, # noqa # shadows built-in + file_name=None, storage=None, details=None, ): self.id = id self.type = type + self.file_name = file_name self.storage = storage self.details = details or {} diff --git a/brewtils/schemas.py b/brewtils/schemas.py index fe3828f5..a2760624 100644 --- a/brewtils/schemas.py +++ b/brewtils/schemas.py @@ -177,6 +177,7 @@ class ParameterSchema(BaseSchema): display_name = fields.Str(allow_none=True) optional = fields.Bool(allow_none=True) default = fields.Raw(allow_none=True) + file_name = fields.Str(allow_none=True) description = fields.Str(allow_none=True) choices = fields.Nested("ChoicesSchema", allow_none=True, many=False) parameters = fields.Nested("self", many=True, allow_none=True) @@ -577,6 +578,7 @@ class ResolvableSchema(BaseSchema): type = fields.Str(allow_none=True) storage = fields.Str(allow_none=True) details = fields.Dict(allow_none=True) + file_name = fields.Str(allow_none=True) class RoleSchema(BaseSchema): diff --git a/brewtils/test/fixtures.py b/brewtils/test/fixtures.py index 321e393a..13a56a11 100644 --- a/brewtils/test/fixtures.py +++ b/brewtils/test/fixtures.py @@ -122,6 +122,7 @@ def nested_parameter_dict(): "display_name": "nested", "optional": True, "default": None, + "file_name": None, "description": None, "choices": None, "parameters": [], @@ -144,6 +145,7 @@ def parameter_dict(nested_parameter_dict, choices_dict): "display_name": "display", "optional": True, "default": "default", + "file_name": None, "description": "desc", "choices": choices_dict, "parameters": [nested_parameter_dict], @@ -1106,6 +1108,7 @@ def resolvable_dict(): "type": "bytes", "storage": "gridfs", "details": {"random": "detail"}, + "file_name": None, }