From ce5fbaf053b748d631f0265f481ee1746e0c6b2e Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Wed, 20 Jan 2016 19:39:17 +0100 Subject: [PATCH] Implements resource attribute bool This change allows to create resource attributes of type bool. Blueprint resource-type-rest-api Change-Id: I70be54554b05a6991a0ef9db52de820995239ef6 --- doc/source/rest.yaml | 3 ++- gnocchi/indexer/sqlalchemy_extension.py | 4 ++++ gnocchi/resource_type.py | 5 +++++ gnocchi/tests/gabbi/gabbits/resource_type.yaml | 6 ++++++ setup.cfg | 1 + 5 files changed, 18 insertions(+), 1 deletion(-) diff --git a/doc/source/rest.yaml b/doc/source/rest.yaml index 158713d2..abe62166 100644 --- a/doc/source/rest.yaml +++ b/doc/source/rest.yaml @@ -321,7 +321,8 @@ "myid": {"type": "uuid"}, "display_name": {"type": "string", "required": true}, "prefix": {"type": "string", "required": false, "max_length": 8, "min_length": 3}, - "size": {"type": "number", "min": 5, "max": 32.8} + "size": {"type": "number", "min": 5, "max": 32.8}, + "enabled": {"type": "bool", "required": false} } } diff --git a/gnocchi/indexer/sqlalchemy_extension.py b/gnocchi/indexer/sqlalchemy_extension.py index a071326c..c627d9ff 100644 --- a/gnocchi/indexer/sqlalchemy_extension.py +++ b/gnocchi/indexer/sqlalchemy_extension.py @@ -81,3 +81,7 @@ class UUIDSchema(resource_type.UUIDSchema): class NumberSchema(resource_type.NumberSchema): satype = sqlalchemy.Float(53) + + +class BoolSchema(resource_type.BoolSchema): + satype = sqlalchemy.Boolean diff --git a/gnocchi/resource_type.py b/gnocchi/resource_type.py index 91356022..093f3acf 100644 --- a/gnocchi/resource_type.py +++ b/gnocchi/resource_type.py @@ -138,6 +138,11 @@ class NumberSchema(CommonAttributeSchema): return d +class BoolSchema(CommonAttributeSchema): + typename = "bool" + schema_ext = bool + + class ResourceTypeAttributes(list): def jsonify(self): d = {} diff --git a/gnocchi/tests/gabbi/gabbits/resource_type.yaml b/gnocchi/tests/gabbi/gabbits/resource_type.yaml index c704a8ff..d35b01dc 100644 --- a/gnocchi/tests/gabbi/gabbits/resource_type.yaml +++ b/gnocchi/tests/gabbi/gabbits/resource_type.yaml @@ -77,6 +77,9 @@ tests: type: number required: false min: -2.3 + bool: + type: bool + required: false status: 201 response_json_paths: $.name: my_custom_resource @@ -104,6 +107,9 @@ tests: required: false min: -2.3 max: + bool: + type: bool + required: false response_headers: location: $SCHEME://$NETLOC/v1/resource_type/my_custom_resource diff --git a/setup.cfg b/setup.cfg index 68f073df..5d13e79f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -89,6 +89,7 @@ gnocchi.indexer.sqlalchemy.resource_type_attribute = string = gnocchi.indexer.sqlalchemy_extension:StringSchema uuid = gnocchi.indexer.sqlalchemy_extension:UUIDSchema number = gnocchi.indexer.sqlalchemy_extension:NumberSchema + bool = gnocchi.indexer.sqlalchemy_extension:BoolSchema gnocchi.indexer.resources = generic = gnocchi.indexer.sqlalchemy_base:Resource