Skip to content

Commit 2473eff

Browse files
committed
Fix lint
1 parent 591a21f commit 2473eff

File tree

2 files changed

+50
-56
lines changed

2 files changed

+50
-56
lines changed

instrumentation/opentelemetry-instrumentation-botocore/src/opentelemetry/instrumentation/botocore/__init__.py

+23-14
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def _instrument(self, **kwargs):
8888
def _uninstrument(self, **kwargs):
8989
unwrap(BaseClient, "_make_api_call")
9090

91+
# pylint: disable=too-many-branches
9192
def _patched_api_call(self, original_func, instance, args, kwargs):
9293

9394
# pylint: disable=protected-access
@@ -105,35 +106,43 @@ def _patched_api_call(self, original_func, instance, args, kwargs):
105106
span.set_attribute("aws.region", instance.meta.region_name)
106107
span.set_attribute("aws.service", service_name)
107108
if "QueueUrl" in api_params:
108-
span.set_attribute(
109-
"aws.queue_url",
110-
api_params["QueueUrl"]
111-
)
109+
span.set_attribute("aws.queue_url", api_params["QueueUrl"])
112110
if "TableName" in api_params:
113111
span.set_attribute(
114-
"aws.table_name",
115-
api_params["TableName"]
112+
"aws.table_name", api_params["TableName"]
116113
)
117114

118115
try:
119116
result = original_func(*args, **kwargs)
120-
except ClientError as e:
121-
error = e
117+
except ClientError as ex:
118+
error = ex
122119

123120
if error:
124121
result = error.response
125122

126123
if span.is_recording():
127124
if "ResponseMetadata" in result:
128-
if "RequestId" in result["ResponseMetadata"]:
125+
metadata = result["ResponseMetadata"]
126+
req_id = None
127+
if "RequestId" in metadata:
128+
req_id = metadata["RequestId"]
129+
elif "HTTPHeaders" in metadata:
130+
headers = metadata["HTTPHeaders"]
131+
if "x-amzn-RequestId" in headers:
132+
req_id = headers["x-amzn-RequestId"]
133+
elif "x-amz-request-id" in headers:
134+
req_id = headers["x-amz-request-id"]
135+
elif "x-amz-id-2" in headers:
136+
req_id = headers["x-amz-id-2"]
137+
138+
if req_id:
129139
span.set_attribute(
130-
"aws.request_id",
131-
result["ResponseMetadata"]["RequestId"],
140+
"aws.request_id", req_id,
132141
)
133-
if "HTTPStatusCode" in result["ResponseMetadata"]:
142+
143+
if "HTTPStatusCode" in metadata:
134144
span.set_attribute(
135-
"http.status_code",
136-
result["ResponseMetadata"]["HTTPStatusCode"],
145+
"http.status_code", metadata["HTTPStatusCode"],
137146
)
138147

139148
if error:

instrumentation/opentelemetry-instrumentation-botocore/tests/test_botocore_instrumentation.py

+27-42
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import botocore.session
1818
from botocore.exceptions import ParamValidationError
1919
from moto import ( # pylint: disable=import-error
20-
mock_ec2,
2120
mock_dynamodb2,
21+
mock_ec2,
2222
mock_kinesis,
2323
mock_kms,
2424
mock_lambda,
@@ -203,22 +203,21 @@ def test_sqs_client(self):
203203
def test_sqs_send_message(self):
204204
sqs = self.session.create_client("sqs", region_name="us-east-1")
205205

206-
TEST_QUEUE_NAME = 'test_queue_name'
206+
test_queue_name = "test_queue_name"
207207

208-
response = sqs.create_queue(
209-
QueueName=TEST_QUEUE_NAME
210-
)
208+
response = sqs.create_queue(QueueName=test_queue_name)
211209

212210
sqs.send_message(
213-
QueueUrl=response["QueueUrl"],
214-
MessageBody="Test SQS MESSAGE!"
211+
QueueUrl=response["QueueUrl"], MessageBody="Test SQS MESSAGE!"
215212
)
216213

217214
spans = self.memory_exporter.get_finished_spans()
218215
assert spans
219216
self.assertEqual(len(spans), 2)
220217
create_queue_attributes = dict(spans[0].attributes)
221-
self.assertRegex(create_queue_attributes["aws.request_id"], r"[A-Z0-9]{52}")
218+
self.assertRegex(
219+
create_queue_attributes["aws.request_id"], r"[A-Z0-9]{52}"
220+
)
222221
del create_queue_attributes["aws.request_id"]
223222
self.assertEqual(
224223
create_queue_attributes,
@@ -230,7 +229,9 @@ def test_sqs_send_message(self):
230229
},
231230
)
232231
send_msg_attributes = dict(spans[1].attributes)
233-
self.assertRegex(send_msg_attributes["aws.request_id"], r"[A-Z0-9]{52}")
232+
self.assertRegex(
233+
send_msg_attributes["aws.request_id"], r"[A-Z0-9]{52}"
234+
)
234235
del send_msg_attributes["aws.request_id"]
235236
self.assertEqual(
236237
send_msg_attributes,
@@ -361,51 +362,31 @@ def test_sts_client(self):
361362
def test_dynamodb_client(self):
362363
ddb = self.session.create_client("dynamodb", region_name="us-west-2")
363364

364-
TEST_TABLE_NAME = "test_table_name"
365+
test_table_name = "test_table_name"
365366

366367
ddb.create_table(
367368
AttributeDefinitions=[
368-
{
369-
'AttributeName': 'id',
370-
'AttributeType': 'S',
371-
},
372-
],
373-
KeySchema=[
374-
{
375-
'AttributeName': 'id',
376-
'KeyType': 'HASH',
377-
},
369+
{"AttributeName": "id", "AttributeType": "S"},
378370
],
371+
KeySchema=[{"AttributeName": "id", "KeyType": "HASH"}],
379372
ProvisionedThroughput={
380-
'ReadCapacityUnits': 5,
381-
'WriteCapacityUnits': 5,
373+
"ReadCapacityUnits": 5,
374+
"WriteCapacityUnits": 5,
382375
},
383-
TableName=TEST_TABLE_NAME,
376+
TableName=test_table_name,
384377
)
385378

386-
ddb.put_item(
387-
TableName=TEST_TABLE_NAME,
388-
Item={
389-
'id': {
390-
'S': 'test_key'
391-
}
392-
}
393-
)
379+
ddb.put_item(TableName=test_table_name, Item={"id": {"S": "test_key"}})
394380

395-
ddb.get_item(
396-
TableName=TEST_TABLE_NAME,
397-
Key={
398-
'id': {
399-
'S': 'test_key'
400-
}
401-
}
402-
)
381+
ddb.get_item(TableName=test_table_name, Key={"id": {"S": "test_key"}})
403382

404383
spans = self.memory_exporter.get_finished_spans()
405384
assert spans
406385
self.assertEqual(len(spans), 3)
407386
create_table_attributes = dict(spans[0].attributes)
408-
self.assertRegex(create_table_attributes["aws.request_id"], r"[A-Z0-9]{52}")
387+
self.assertRegex(
388+
create_table_attributes["aws.request_id"], r"[A-Z0-9]{52}"
389+
)
409390
del create_table_attributes["aws.request_id"]
410391
self.assertEqual(
411392
create_table_attributes,
@@ -418,7 +399,9 @@ def test_dynamodb_client(self):
418399
},
419400
)
420401
put_item_attributes = dict(spans[1].attributes)
421-
self.assertRegex(put_item_attributes["aws.request_id"], r"[A-Z0-9]{52}")
402+
self.assertRegex(
403+
put_item_attributes["aws.request_id"], r"[A-Z0-9]{52}"
404+
)
422405
del put_item_attributes["aws.request_id"]
423406
self.assertEqual(
424407
put_item_attributes,
@@ -431,7 +414,9 @@ def test_dynamodb_client(self):
431414
},
432415
)
433416
get_item_attributes = dict(spans[2].attributes)
434-
self.assertRegex(get_item_attributes["aws.request_id"], r"[A-Z0-9]{52}")
417+
self.assertRegex(
418+
get_item_attributes["aws.request_id"], r"[A-Z0-9]{52}"
419+
)
435420
del get_item_attributes["aws.request_id"]
436421
self.assertEqual(
437422
get_item_attributes,

0 commit comments

Comments
 (0)