external volume disallows other config keys

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2016-01-13 13:52:59 -08:00
parent d601199eb5
commit e76b2679eb
2 changed files with 38 additions and 17 deletions

View File

@ -32,6 +32,7 @@
"definitions": {
"volume": {
"id": "#/definitions/volume",
"oneOf": [{
"type": "object",
"properties": {
"driver": {"type": "string"},
@ -41,7 +42,12 @@
"^.+$": {"type": ["string", "number"]}
},
"additionalProperties": false
}
},
"additionalProperties": false
}, {
"type": "object",
"properties": {
"external": {
"type": ["boolean", "object"],
"properties": {
@ -49,7 +55,9 @@
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}]
}
},
"additionalProperties": false

View File

@ -793,6 +793,19 @@ class ConfigTest(unittest.TestCase):
assert 'ext2' in volumes
assert volumes['ext2']['external']['name'] == 'aliased'
def test_external_volume_invalid_config(self):
config_details = build_config_details({
'version': 2,
'services': {
'bogus': {'image': 'busybox'}
},
'volumes': {
'ext': {'external': True, 'driver': 'foo'}
}
})
with self.assertRaises(ConfigurationError):
config.load(config_details)
class PortsTest(unittest.TestCase):
INVALID_PORTS_TYPES = [