Skip to content
Snippets Groups Projects
Commit f9e0a1a4 authored by Nikolay Stanchev's avatar Nikolay Stanchev
Browse files

Adds validation for the service function chain instance ID when using the build graph API endpoint

parent aed08842
No related branches found
No related tags found
No related merge requests found
...@@ -141,6 +141,21 @@ class TestGraphAPI(object): ...@@ -141,6 +141,21 @@ class TestGraphAPI(object):
error_raised = True error_raised = True
assert error_raised, "A bad request error must have been raised in case of invalid URL parameters." assert error_raised, "A bad request error must have been raised in case of invalid URL parameters."
service_functions = dict(nginx={"measurement_name": "nginx", "response_time_field": "mean(avg_processing_time)"},
minio={"measurement_name": "minio_http", "response_time_field": "mean(total_processing_time)/mean(total_requests_count)"})
build_json_body = dict(database=test_db_name, retention_policy="autogen", service_function_chain_instance="testsfc1", service_functions=service_functions)
body = dumps(build_json_body)
request = testing.DummyRequest()
request.params["from"] = from_timestamp
request.params["to"] = to_timestamp
request.body = body.encode(request.charset)
error_raised = False
try:
GraphAPI(request).build_temporal_graph()
except HTTPBadRequest:
error_raised = True
assert error_raised, "A bad request error must have been raised in case of invalid SFC ID."
service_functions = dict(nginx={"measurement_name": "nginx", "response_time_field": "mean(avg_processing_time)"}, service_functions = dict(nginx={"measurement_name": "nginx", "response_time_field": "mean(avg_processing_time)"},
minio={"measurement_name": "minio_http", "response_time_field": "mean(total_processing_time)/mean(total_requests_count)"}) minio={"measurement_name": "minio_http", "response_time_field": "mean(total_processing_time)/mean(total_requests_count)"})
build_json_body = dict(database=test_db_name, retention_policy="autogen", service_function_chain_instance="test_sfc1_1", service_functions=service_functions) build_json_body = dict(database=test_db_name, retention_policy="autogen", service_function_chain_instance="test_sfc1_1", service_functions=service_functions)
......
...@@ -70,6 +70,9 @@ def validate_json_queries_body(body): ...@@ -70,6 +70,9 @@ def validate_json_queries_body(body):
assert GRAPH_BUILD_QUERY_PARAMS == set(body.keys()), "Invalid JSON query document." assert GRAPH_BUILD_QUERY_PARAMS == set(body.keys()), "Invalid JSON query document."
sfc_i = body["service_function_chain_instance"]
assert len(sfc_i.split('_')) > 1, "Incorrect format of service function chain instance ID - use format <sfcID>_<instanceNum>"
assert type(body["service_functions"]) == dict, "The service function description should be represented with a dictionary." assert type(body["service_functions"]) == dict, "The service function description should be represented with a dictionary."
for sf in body["service_functions"]: for sf in body["service_functions"]:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment