Merge "Enforce schema for admin endpoints"
This commit is contained in:
commit
15f2093d22
|
@ -18,12 +18,13 @@ from poppy.transport.validators import schema_base
|
|||
|
||||
class BackgroundJobSchema(schema_base.SchemaBase):
|
||||
|
||||
"""JSON Schema validation for /admin/provider/akamai/background_jobs"""
|
||||
"""JSON Schema validation for /admin/provider/akamai/background_job"""
|
||||
|
||||
schema = {
|
||||
'background_jobs': {
|
||||
'POST': {
|
||||
'type': [{
|
||||
'type': 'object',
|
||||
'additionalProperties': False,
|
||||
'properties': {
|
||||
'job_type': {
|
||||
|
@ -38,6 +39,7 @@ class BackgroundJobSchema(schema_base.SchemaBase):
|
|||
}
|
||||
},
|
||||
{
|
||||
'type': 'object',
|
||||
'additionalProperties': False,
|
||||
'properties': {
|
||||
'job_type': {
|
||||
|
|
|
@ -20,12 +20,13 @@ from poppy.transport.validators import schema_base
|
|||
|
||||
class ServiceStatusSchema(schema_base.SchemaBase):
|
||||
|
||||
"""JSON Schema validation for /admin/services/{service_id}/status."""
|
||||
"""JSON Schema validation for /admin/services/status."""
|
||||
|
||||
schema = {
|
||||
'service_status': {
|
||||
'POST': {
|
||||
'type': [{
|
||||
'type': 'object',
|
||||
'additionalProperties': False,
|
||||
'properties': {
|
||||
'status': {
|
||||
|
|
|
@ -86,3 +86,88 @@ class AdminControllerTest(base.FunctionalTest):
|
|||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
def test_post_background_job_negative(self):
|
||||
response = self.app.post(
|
||||
'/v1.0/admin/provider/akamai/background_job',
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-Project-ID': self.project_id
|
||||
},
|
||||
params=json.dumps([]),
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
def test_post_service_status_negative(self):
|
||||
response = self.app.post(
|
||||
'/v1.0/admin/services/status',
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-Project-ID': self.project_id
|
||||
},
|
||||
params=json.dumps([]),
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
def test_post_migrate_domain_invalid_domain_name(self):
|
||||
payload = {
|
||||
"project_id": self.project_id,
|
||||
"service_id": "abcdef",
|
||||
"domain_name": "invalid",
|
||||
"new_cert": "scdn1.secure6.raxcdn.com.edgekey.net",
|
||||
"cert_status": "create_in_progress"
|
||||
}
|
||||
|
||||
# post with bad data
|
||||
response = self.app.post(
|
||||
'/v1.0/admin/provider/akamai/service',
|
||||
params=json.dumps(payload),
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-Project-ID': self.project_id
|
||||
},
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(400, response.status_code)
|
||||
|
||||
def test_post_migrate_domain_non_existant_service(self):
|
||||
payload = {
|
||||
"project_id": self.project_id,
|
||||
"service_id": "does_not_exist",
|
||||
"domain_name": "www.test.com",
|
||||
"new_cert": "scdn1.secure6.raxcdn.com",
|
||||
"cert_status": "create_in_progress"
|
||||
}
|
||||
|
||||
response = self.app.post(
|
||||
'/v1.0/admin/provider/akamai/service',
|
||||
params=json.dumps(payload),
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-Project-ID': self.project_id
|
||||
},
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(404, response.status_code)
|
||||
|
||||
def test_post_migrate_domain_new_cert_with_edge_key(self):
|
||||
payload = {
|
||||
"project_id": self.project_id,
|
||||
"service_id": "does_not_exist",
|
||||
"domain_name": "www.test.com",
|
||||
"new_cert": "scdn1.secure6.raxcdn.com.edgekey.net",
|
||||
"cert_status": "create_in_progress"
|
||||
}
|
||||
|
||||
response = self.app.post(
|
||||
'/v1.0/admin/provider/akamai/service',
|
||||
params=json.dumps(payload),
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-Project-ID': self.project_id
|
||||
},
|
||||
expect_errors=True
|
||||
)
|
||||
self.assertEqual(404, response.status_code)
|
||||
|
|
Loading…
Reference in New Issue