Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions servicex_app/servicex_app/resources/transformation/submit.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,13 @@ def make_api(
location="json",
help="Static list of Root Files. Provide this or Dataset Identifier.",
)
cls.parser.add_argument(
"client-version",
type=str,
default="unknown",
location="json",
help="The client-version submitting the transformation.",
)
cls.parser.add_argument("selection", help="Query string")
cls.parser.add_argument("codegen")
cls.parser.add_argument("tree-name")
Expand Down Expand Up @@ -186,6 +193,7 @@ def post(self):
did = args.get("did")
file_list = args.get("file-list")
user_codegen_name = args.get("codegen")
client_version = args.get("client-version")

code_gen_image_name = config["CODE_GEN_IMAGES"].get(user_codegen_name, None)
namespace = config["TRANSFORMER_NAMESPACE"]
Expand Down Expand Up @@ -316,6 +324,10 @@ def post(self):
current_app.logger.info(
"Transformation request submitted!", extra={"request_id": request_id}
)
current_app.logger.info(
f"Transformation submitted with client version: {client_version}",
extra={"request_id": request_id},
)
return {"request_id": str(request_id)}
except Exception as eek:
current_app.logger.exception(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -635,6 +635,42 @@ def _side_effect(selection_string, request_id, namespace, user_codegen_name):
assert saved_obj
assert saved_obj.image == image

def test_submit_transformation_logs_client_version(
self, mocker, mock_dataset_manager_from_did, mock_codegen
):
client = self._test_client(code_gen_service=mock_codegen)
mock_info = mocker.patch.object(client.application.logger, "info")
with client.application.app_context():
request = self._generate_transformation_request(
**{"client-version": "3.0.1"}
)
response = client.post(
"/servicex/transformation", json=request, headers=self.fake_header()
)
assert response.status_code == 200
request_id = response.json["request_id"]
mock_info.assert_any_call(
"Transformation submitted with client version: 3.0.1",
extra={"request_id": request_id},
)

def test_submit_transformation_logs_unknown_client_version(
self, mocker, mock_dataset_manager_from_did, mock_codegen
):
client = self._test_client(code_gen_service=mock_codegen)
mock_info = mocker.patch.object(client.application.logger, "info")
with client.application.app_context():
request = self._generate_transformation_request()
response = client.post(
"/servicex/transformation", json=request, headers=self.fake_header()
)
assert response.status_code == 200
request_id = response.json["request_id"]
mock_info.assert_any_call(
"Transformation submitted with client version: unknown",
extra={"request_id": request_id},
)


class TestValidateCustomDockerImage:
"""Tests for the validate_custom_docker_image function"""
Expand Down