Merge "Prevent update/delete of managed records in v1 API"
This commit is contained in:
@@ -180,14 +180,14 @@ def update_record(domain_id, record_id):
|
||||
criterion = {'domain_id': domain_id, 'id': record_id}
|
||||
record = get_central_api().find_record(context, criterion)
|
||||
|
||||
# Cannot update a managed record via the API.
|
||||
if record['managed'] is True:
|
||||
raise exceptions.BadRequest('Managed records may not be updated')
|
||||
|
||||
# Find the associated recordset
|
||||
recordset = get_central_api().get_recordset(
|
||||
context, domain_id, record.recordset_id)
|
||||
|
||||
# Cannot manually update a SOA record
|
||||
if recordset['type'] == 'SOA':
|
||||
raise exceptions.BadRequest('SOA records cannot be manually updated.')
|
||||
|
||||
# Prepare a dict of fields for validation
|
||||
record_data = record_schema.filter(_format_record_v1(record, recordset))
|
||||
record_data.update(values)
|
||||
@@ -232,11 +232,9 @@ def delete_record(domain_id, record_id):
|
||||
criterion = {'domain_id': domain_id, 'id': record_id}
|
||||
record = get_central_api().find_record(context, criterion)
|
||||
|
||||
# SOA records cannot be deleted
|
||||
recordset = get_central_api().get_recordset(context, domain_id,
|
||||
record['recordset_id'])
|
||||
if recordset['type'] == 'SOA':
|
||||
raise exceptions.BadRequest('SOA records cannot be manually deleted.')
|
||||
# Cannot delete a managed record via the API.
|
||||
if record['managed'] is True:
|
||||
raise exceptions.BadRequest('Managed records may not be deleted')
|
||||
|
||||
get_central_api().delete_record(
|
||||
context, domain_id, record['recordset_id'], record_id)
|
||||
|
||||
@@ -347,7 +347,7 @@ class Service(service.RPCService):
|
||||
|
||||
soa_values = [self._build_soa_record(zone, servers)]
|
||||
recordlist = objects.RecordList(objects=[
|
||||
objects.Record(data=r) for r in soa_values])
|
||||
objects.Record(data=r, managed=True) for r in soa_values])
|
||||
values = {
|
||||
'name': zone['name'],
|
||||
'type': "SOA",
|
||||
@@ -380,7 +380,7 @@ class Service(service.RPCService):
|
||||
for s in servers:
|
||||
ns_values.append(s.name)
|
||||
recordlist = objects.RecordList(objects=[
|
||||
objects.Record(data=r) for r in ns_values])
|
||||
objects.Record(data=r, managed=True) for r in ns_values])
|
||||
values = {
|
||||
'name': zone['name'],
|
||||
'type': "NS",
|
||||
|
||||
Reference in New Issue
Block a user