Isilon / isilon_sdk

Official repository for isilon_sdk. All language bindings are available for download under the 'Releases' tab.
MIT License
50 stars 21 forks source link

StoragepoolStatusUnhealthyItem fails spec file validation #8

Closed cbrainerd closed 6 years ago

cbrainerd commented 8 years ago

Data does not match any schemas from 'oneOf' at #/paths//platform/1/storagepool/status/get/responses/200 Data does not match any schemas from 'oneOf' at #/paths//platform/1/storagepool/status/get/responses/200/schema Data does not match any schemas from 'anyOf' at #/schema/properties/unhealthy/items Data does not match any schemas from 'anyOf' at #/properties/unhealthy/items/properties/health_flags/items Expected type array but found type boolean at #/properties/health_flags/items/required Expected type array but found type object at #/properties/health_flags/items Expected type array but found type object at #/properties/unhealthy/items Additional properties not allowed: properties at #/schema Missing required property: $ref at #/paths//platform/1/storagepool/status/get/responses/200

A draft 3 style "required": <boolean> attribute is the source of the failure. Swagger spec requires draft 4 style required attributes "required": ["<attr1>", "<attr2>", ... ]. This is compounded by the fact that the required attribute appears to be misplaced in the PAPI GET_output_schema. It is applied to the item definition, but it should be applied to the array. The PAPI schema is fixed in a later OneFS build.

As it appears in spec file (v0.1.2 isi_sdk_7_2/output.json):

                "health_flags": {
                    "description": "The disk pool health status.",
                    "items": {
                        "enum": [
                            "underprovisioned",
                            "missing_drives",
                            "devices_down",
                            "devices_smartfailed",
                            "waiting_repair"
                        ],
                        "required": true,
                        "type": "string"
                    },
                    "type": "array"
                }
Atomicology commented 6 years ago

This issue is only affecting the isi_sdk_7_2 Python package.