mirror of
https://github.com/peeringdb/peeringdb.git
synced 2024-05-11 05:55:09 +00:00
Better error message when user tries to add a record (basically network) with status "deleted" (github-288) (#603)
This commit is contained in:
@@ -1106,6 +1106,16 @@ class TestJSON(unittest.TestCase):
|
||||
"asn": 9999999
|
||||
}}, test_success=False)
|
||||
|
||||
##########################################################################
|
||||
def test_org_admin_002_POST_net_deleted(self):
|
||||
data = self.make_data_net(asn=SHARED["net_rw_dupe_deleted"].asn)
|
||||
|
||||
with self.assertRaises(InvalidRequestException) as exc:
|
||||
r_data = self.db_org_admin.create("net", data, return_response=True)
|
||||
|
||||
assert exc.exception.extra["asn"].find("Network has been deleted. Please contact") == 0
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
def test_org_admin_002_POST_PUT_DELETE_as_set(self):
|
||||
|
||||
@@ -1385,6 +1385,14 @@ class NetworkSerializer(ModelSerializer):
|
||||
# this happens here so it is done before the validators run
|
||||
if "suggest" in data:
|
||||
data["org_id"] = settings.SUGGEST_ENTITY_ORG
|
||||
|
||||
# if an asn exists already but is currently deleted, fail
|
||||
# with a specific error message indicating it (#288)
|
||||
|
||||
if Network.objects.filter(asn=data.get("asn"), status="deleted").exists():
|
||||
errmsg = _("Network has been deleted. Please contact {}").format(settings.DEFAULT_FROM_EMAIL)
|
||||
raise RestValidationError({"asn":errmsg})
|
||||
|
||||
return super(NetworkSerializer, self).to_internal_value(data)
|
||||
|
||||
def has_create_perms(self, user, data):
|
||||
@@ -1446,6 +1454,7 @@ class NetworkSerializer(ModelSerializer):
|
||||
ticket_queue_rdap_error(*rdap_error)
|
||||
|
||||
|
||||
|
||||
class IXLanPrefixSerializer(ModelSerializer):
|
||||
"""
|
||||
Serializer for peeringdb_server.models.IXLanPrefix
|
||||
|
||||
Reference in New Issue
Block a user