diff --git a/trove/common/apischema.py b/trove/common/apischema.py index fdf01f2def..f9cca8636d 100644 --- a/trove/common/apischema.py +++ b/trove/common/apischema.py @@ -197,9 +197,14 @@ users_list = { } } +null_configuration_id = { + "type": "null" +} + configuration_id = { 'oneOf': [ - uuid + uuid, + null_configuration_id ] } @@ -301,10 +306,12 @@ instance = { "instance": { "type": "object", "required": [], + "additionalProperties": False, "properties": { "slave_of": {}, + "replica_of": {}, "name": non_empty_string, - "configuration_id": configuration_id, + "configuration": configuration_id, } } } diff --git a/trove/instance/service.py b/trove/instance/service.py index 911df79b6d..bb1129c2ae 100644 --- a/trove/instance/service.py +++ b/trove/instance/service.py @@ -304,7 +304,9 @@ class InstanceController(wsgi.Controller): instance = models.Instance.load(context, id) args = {} - args['detach_replica'] = 'slave_of' in body['instance'] + args['detach_replica'] = ('replica_of' in body['instance'] or + 'slave_of' in body['instance']) + if 'name' in body['instance']: args['name'] = body['instance']['name'] if 'configuration' in body['instance']: