Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-aws-xray-sdk for 
openSUSE:Factory checked in at 2021-08-02 15:41:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-aws-xray-sdk (Old)
 and      /work/SRC/openSUSE:Factory/.python-aws-xray-sdk.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-aws-xray-sdk"

Mon Aug  2 15:41:02 2021 rev:8 rq:908601 version:2.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-aws-xray-sdk/python-aws-xray-sdk.changes  
2021-04-08 21:32:54.335855865 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-aws-xray-sdk.new.1899/python-aws-xray-sdk.changes
        2021-08-02 15:41:06.539168460 +0200
@@ -1,0 +2,17 @@
+Tue Jul 27 10:19:14 UTC 2021 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- Update to 2.8.0
+  * improvement: feat(sqla-core): Add support for rendering Database Specific 
queries.
+    `PR291 <https://github.com/aws/aws-xray-sdk-python/pull/291>`_.
+  * bugfix: Fixing broken instrumentation for sqlalchemy >= 1.4.0.
+    `PR289 <https://github.com/aws/aws-xray-sdk-python/pull/289>`_.
+  * feature: no op trace id generation.
+    `PR293 <https://github.com/aws/aws-xray-sdk-python/pull/293>`_.
+  * bugfix: Handle exception when sending entity to Daemon.
+    `PR292 <https://github.com/aws/aws-xray-sdk-python/pull/292>`_.
+  * bugfix: Fixed serialization issue when cause is a string.
+    `PR284 <https://github.com/aws/aws-xray-sdk-python/pull/284>`_.
+  * improvement: Publish metric on distribution availability.
+    `PR279 <https://github.com/aws/aws-xray-sdk-python/pull/279>`_.
+
+-------------------------------------------------------------------

Old:
----
  aws-xray-sdk-2.7.0.tar.gz

New:
----
  aws-xray-sdk-2.8.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-aws-xray-sdk.spec ++++++
--- /var/tmp/diff_new_pack.4ziRvs/_old  2021-08-02 15:41:07.239167474 +0200
+++ /var/tmp/diff_new_pack.4ziRvs/_new  2021-08-02 15:41:07.243167468 +0200
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-aws-xray-sdk
-Version:        2.7.0
+Version:        2.8.0
 Release:        0
 Summary:        The AWS X-Ray SDK for Python
 License:        Apache-2.0

++++++ aws-xray-sdk-2.7.0.tar.gz -> aws-xray-sdk-2.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-xray-sdk-2.7.0/PKG-INFO 
new/aws-xray-sdk-2.8.0/PKG-INFO
--- old/aws-xray-sdk-2.7.0/PKG-INFO     2021-03-24 18:06:14.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/PKG-INFO     2021-04-29 02:03:01.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: aws-xray-sdk
-Version: 2.7.0
+Version: 2.8.0
 Summary: The AWS X-Ray SDK for Python (the SDK) enables Python developers to 
record and emit information from within their applications to the AWS X-Ray 
service.
 Home-page: https://github.com/aws/aws-xray-sdk-python
 Author: Amazon Web Services
@@ -14,7 +14,7 @@
         
         ## Installing
         
-        The AWS X-Ray SDK for Python is compatible with Python 2.7, 3.4, 3.5, 
3.6, 3.7, and 3.8.
+        The AWS X-Ray SDK for Python is compatible with Python 2.7, 3.4, 3.5, 
3.6, 3.7, 3.8, and 3.9.
         
         Install the SDK using the following command (the SDK's non-testing 
dependencies will be installed).
         
@@ -199,6 +199,9 @@
             xray_recorder.put_metadata('mykey', metadata)
         ```
         
+        ### Generate NoOp Trace and Entity Id
+        X-Ray Python SDK will by default generate no-op trace and entity id 
for unsampled requests and secure random trace and entity id for sampled 
requests. If customer wants to enable generating secure random trace and entity 
id for all the (sampled/unsampled) requests (this is applicable for trace id 
injection into logs use case) then they should set the `AWS_XRAY_NOOP_ID` 
environment variable as False.
+        
         ### Disabling X-Ray
         Often times, it may be useful to be able to disable X-Ray for specific 
use cases, whether to stop X-Ray from sending traces at any moment, or to test 
code functionality that originally depended on X-Ray instrumented packages to 
begin segments prior to the code call. For example, if your application relied 
on an XRayMiddleware to instrument incoming web requests, and you have a method 
which begins subsegments based on the segment generated by that middleware, it 
would be useful to be able to disable X-Ray for your unit tests so that 
`SegmentNotFound` exceptions are not thrown when you need to test your method.
         
@@ -529,4 +532,5 @@
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
 Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-xray-sdk-2.7.0/README.md 
new/aws-xray-sdk-2.8.0/README.md
--- old/aws-xray-sdk-2.7.0/README.md    2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/README.md    2021-04-29 02:01:38.000000000 +0200
@@ -7,7 +7,7 @@
 
 ## Installing
 
-The AWS X-Ray SDK for Python is compatible with Python 2.7, 3.4, 3.5, 3.6, 
3.7, and 3.8.
+The AWS X-Ray SDK for Python is compatible with Python 2.7, 3.4, 3.5, 3.6, 
3.7, 3.8, and 3.9.
 
 Install the SDK using the following command (the SDK's non-testing 
dependencies will be installed).
 
@@ -192,6 +192,9 @@
     xray_recorder.put_metadata('mykey', metadata)
 ```
 
+### Generate NoOp Trace and Entity Id
+X-Ray Python SDK will by default generate no-op trace and entity id for 
unsampled requests and secure random trace and entity id for sampled requests. 
If customer wants to enable generating secure random trace and entity id for 
all the (sampled/unsampled) requests (this is applicable for trace id injection 
into logs use case) then they should set the `AWS_XRAY_NOOP_ID` environment 
variable as False.
+
 ### Disabling X-Ray
 Often times, it may be useful to be able to disable X-Ray for specific use 
cases, whether to stop X-Ray from sending traces at any moment, or to test code 
functionality that originally depended on X-Ray instrumented packages to begin 
segments prior to the code call. For example, if your application relied on an 
XRayMiddleware to instrument incoming web requests, and you have a method which 
begins subsegments based on the segment generated by that middleware, it would 
be useful to be able to disable X-Ray for your unit tests so that 
`SegmentNotFound` exceptions are not thrown when you need to test your method.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/emitters/udp_emitter.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/emitters/udp_emitter.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/emitters/udp_emitter.py    
2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/emitters/udp_emitter.py    
2021-04-29 02:01:38.000000000 +0200
@@ -32,12 +32,15 @@
 
         :param entity: a trace entity to send to the X-Ray daemon
         """
-        message = "%s%s%s" % (PROTOCOL_HEADER,
-                              PROTOCOL_DELIMITER,
-                              entity.serialize())
+        try:
+            message = "%s%s%s" % (PROTOCOL_HEADER,
+                                  PROTOCOL_DELIMITER,
+                                  entity.serialize())
 
-        log.debug("sending: %s to %s:%s." % (message, self._ip, self._port))
-        self._send_data(message)
+            log.debug("sending: %s to %s:%s." % (message, self._ip, 
self._port))
+            self._send_data(message)
+        except Exception:
+            log.exception("Failed to send entity to Daemon.")
 
     def set_daemon_address(self, address):
         """
@@ -57,12 +60,7 @@
         return self._port
 
     def _send_data(self, data):
-
-        try:
-            self._socket.sendto(data.encode('utf-8'), (self._ip,
-                                self._port))
-        except Exception:
-            log.exception('failed to send data to X-Ray daemon.')
+        self._socket.sendto(data.encode('utf-8'), (self._ip, self._port))
 
     def _parse_address(self, daemon_address):
         try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/models/dummy_entities.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/models/dummy_entities.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/models/dummy_entities.py   
2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/models/dummy_entities.py   
2021-04-29 02:01:38.000000000 +0200
@@ -1,3 +1,5 @@
+import os
+from .noop_traceid import NoOpTraceId
 from .traceid import TraceId
 from .segment import Segment
 from .subsegment import Subsegment
@@ -12,9 +14,13 @@
     A dummy segment will not be sent to the X-Ray daemon. Manually create
     dummy segments is not recommended.
     """
-    def __init__(self, name='dummy'):
 
-        super(DummySegment, self).__init__(name=name, 
traceid=TraceId().to_id())
+    def __init__(self, name='dummy'):
+        no_op_id = os.getenv('AWS_XRAY_NOOP_ID')
+        if no_op_id and no_op_id.lower() == 'false':
+            super(DummySegment, self).__init__(name=name, 
traceid=TraceId().to_id())
+        else:
+            super(DummySegment, self).__init__(name=name, 
traceid=NoOpTraceId().to_id(), entityid='0000000000000000')
         self.sampled = False
 
     def set_aws(self, aws_meta):
@@ -79,9 +85,14 @@
     to a dummy subsegment becomes no-op. Dummy subsegment will not
     be sent to the X-Ray daemon.
     """
-    def __init__(self, segment, name='dummy'):
 
+    def __init__(self, segment, name='dummy'):
         super(DummySubsegment, self).__init__(name, 'dummy', segment)
+        no_op_id = os.getenv('AWS_XRAY_NOOP_ID')
+        if no_op_id and no_op_id.lower() == 'false':
+            super(Subsegment, self).__init__(name)
+        else:
+            super(Subsegment, self).__init__(name, 
entity_id='0000000000000000')
         self.sampled = False
 
     def set_aws(self, aws_meta):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/models/entity.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/models/entity.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/models/entity.py   2021-03-24 
17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/models/entity.py   2021-04-29 
02:01:38.000000000 +0200
@@ -12,7 +12,6 @@
 from . import http
 from ..exceptions.exceptions import AlreadyEndedException
 
-
 log = logging.getLogger(__name__)
 
 # Valid characters can be found at 
http://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html
@@ -27,10 +26,14 @@
     The parent class for segment/subsegment. It holds common properties
     and methods on segment and subsegment.
     """
-    def __init__(self, name):
+
+    def __init__(self, name, entity_id=None):
+        if not entity_id:
+            self.id = self._generate_random_id()
+        else:
+            self.id = entity_id
 
         # required attributes
-        self.id = self._generate_random_id()
         self.name = name
         self.name = ''.join([c for c in name if c not in 
_common_invalid_name_characters])
         self.start_time = time.time()
@@ -259,10 +262,7 @@
         Serialize to JSON document that can be accepted by the
         X-Ray backend service. It uses json to perform serialization.
         """
-        try:
-            return json.dumps(self.to_dict(), default=str)
-        except Exception:
-            log.exception("Failed to serialize %s", self.name)
+        return json.dumps(self.to_dict(), default=str)
 
     def to_dict(self):
         """
@@ -270,7 +270,7 @@
         with required properties that have non-empty values. 
         """
         entity_dict = {}
-            
+
         for key, value in vars(self).items():
             if isinstance(value, bool) or value:
                 if key == 'subsegments':
@@ -280,18 +280,21 @@
                         subsegments.append(subsegment.to_dict())
                     entity_dict[key] = subsegments
                 elif key == 'cause':
-                    entity_dict[key] = {}
-                    entity_dict[key]['working_directory'] = 
self.cause['working_directory']
-                    # exceptions are stored as List
-                    throwables = []
-                    for throwable in value['exceptions']:
-                        throwables.append(throwable.to_dict())
-                    entity_dict[key]['exceptions'] = throwables
+                    if isinstance(self.cause, dict):
+                        entity_dict[key] = {}
+                        entity_dict[key]['working_directory'] = 
self.cause['working_directory']
+                        # exceptions are stored as List
+                        throwables = []
+                        for throwable in value['exceptions']:
+                            throwables.append(throwable.to_dict())
+                        entity_dict[key]['exceptions'] = throwables
+                    else:
+                        entity_dict[key] = self.cause
                 elif key == 'metadata':
                     entity_dict[key] = metadata_to_dict(value)
                 elif key != 'sampled' and key != ORIGIN_TRACE_HEADER_ATTR_KEY:
-                   entity_dict[key] = value
-                
+                    entity_dict[key] = value
+
         return entity_dict
 
     def _check_ended(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/models/noop_traceid.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/models/noop_traceid.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/models/noop_traceid.py     
1970-01-01 01:00:00.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/models/noop_traceid.py     
2021-04-29 02:01:38.000000000 +0200
@@ -0,0 +1,23 @@
+class NoOpTraceId:
+    """
+    A trace ID tracks the path of a request through your application.
+    A trace collects all the segments generated by a single request.
+    A trace ID is required for a segment.
+    """
+    VERSION = '1'
+    DELIMITER = '-'
+
+    def __init__(self):
+        """
+        Generate a no-op trace id.
+        """
+        self.start_time = '00000000'
+        self.__number = '000000000000000000000000'
+
+    def to_id(self):
+        """
+        Convert TraceId object to a string.
+        """
+        return "%s%s%s%s%s" % (NoOpTraceId.VERSION, NoOpTraceId.DELIMITER,
+                               self.start_time,
+                               NoOpTraceId.DELIMITER, self.__number)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/plugins/ec2_plugin.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/plugins/ec2_plugin.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/core/plugins/ec2_plugin.py      
2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/core/plugins/ec2_plugin.py      
2021-04-29 02:01:38.000000000 +0200
@@ -28,6 +28,10 @@
 
 
 def get_token():
+    """
+    Get the session token for IMDSv2 endpoint valid for 60 seconds
+    by specifying the X-aws-ec2-metadata-token-ttl-seconds header.
+    """
     token = None
     try:
         headers = {"X-aws-ec2-metadata-token-ttl-seconds": "60"}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/ext/sqlalchemy/util/decorators.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/ext/sqlalchemy/util/decorators.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/ext/sqlalchemy/util/decorators.py       
2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/ext/sqlalchemy/util/decorators.py       
2021-04-29 02:01:38.000000000 +0200
@@ -1,4 +1,6 @@
 import re
+import types
+
 from aws_xray_sdk.core import xray_recorder
 from aws_xray_sdk.ext.util import strip_url
 from future.standard_library import install_aliases
@@ -13,7 +15,7 @@
             for name, obj in vars(c).items():
                 if name.startswith("_"):
                     continue
-                if callable(obj):
+                if isinstance(obj, types.FunctionType):
                     try:
                         obj = obj.__func__  # unwrap Python 2 unbound method
                     except AttributeError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/aws-xray-sdk-2.7.0/aws_xray_sdk/ext/sqlalchemy_core/patch.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/ext/sqlalchemy_core/patch.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/ext/sqlalchemy_core/patch.py    
2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/ext/sqlalchemy_core/patch.py    
2021-04-29 02:01:38.000000000 +0200
@@ -1,5 +1,6 @@
 import logging
 import sys
+
 if sys.version_info >= (3, 0, 0):
     from urllib.parse import urlparse, uses_netloc
 else:
@@ -12,11 +13,13 @@
 from aws_xray_sdk.core.utils import stacktrace
 from aws_xray_sdk.ext.util import unwrap
 
+from sqlalchemy.sql.expression import ClauseElement
+
 
-def _sql_meta(instance, args):
+def _sql_meta(engine_instance, args):
     try:
         metadata = {}
-        url = urlparse(str(instance.engine.url))
+        url = urlparse(str(engine_instance.engine.url))
         # Add Scheme to uses_netloc or // will be missing from url.
         uses_netloc.append(url.scheme)
         if url.password is None:
@@ -29,17 +32,23 @@
             metadata['url'] = parts.geturl()
             name = host_info
         metadata['user'] = url.username
-        metadata['database_type'] = instance.engine.name
+        metadata['database_type'] = engine_instance.engine.name
         try:
-            version = getattr(instance.dialect, 
'{}_version'.format(instance.engine.driver))
+            version = getattr(engine_instance.dialect, 
'{}_version'.format(engine_instance.engine.driver))
             version_str = '.'.join(map(str, version))
-            metadata['driver_version'] = 
"{}-{}".format(instance.engine.driver, version_str)
+            metadata['driver_version'] = 
"{}-{}".format(engine_instance.engine.driver, version_str)
         except AttributeError:
-            metadata['driver_version'] = instance.engine.driver
-        if instance.dialect.server_version_info is not None:
-            metadata['database_version'] = '.'.join(map(str, 
instance.dialect.server_version_info))
+            metadata['driver_version'] = engine_instance.engine.driver
+        if engine_instance.dialect.server_version_info is not None:
+            metadata['database_version'] = '.'.join(map(str, 
engine_instance.dialect.server_version_info))
         if xray_recorder.stream_sql:
-            metadata['sanitized_query'] = str(args[0])
+            try:
+                if isinstance(args[0], ClauseElement):
+                    metadata['sanitized_query'] = 
str(args[0].compile(engine_instance.engine))
+                else:
+                    metadata['sanitized_query'] = str(args[0])
+            except Exception:
+                logging.getLogger(__name__).exception('Error getting the 
sanitized query')
     except Exception:
         metadata = None
         name = None
@@ -48,7 +57,15 @@
 
 
 def _xray_traced_sqlalchemy_execute(wrapped, instance, args, kwargs):
-    name, sql = _sql_meta(instance, args)
+    return _process_request(wrapped, instance, args, kwargs)
+
+
+def _xray_traced_sqlalchemy_session(wrapped, instance, args, kwargs):
+    return _process_request(wrapped, instance.bind, args, kwargs)
+
+
+def _process_request(wrapped, engine_instance, args, kwargs):
+    name, sql = _sql_meta(engine_instance, args)
     if sql is not None:
         subsegment = xray_recorder.begin_subsegment(name, namespace='remote')
     else:
@@ -75,6 +92,12 @@
         _xray_traced_sqlalchemy_execute
     )
 
+    wrapt.wrap_function_wrapper(
+        'sqlalchemy.orm.session',
+        'Session.execute',
+        _xray_traced_sqlalchemy_session
+    )
+
 
 def unpatch():
     """
@@ -84,3 +107,4 @@
     _PATCHED_MODULES.discard('sqlalchemy_core')
     import sqlalchemy
     unwrap(sqlalchemy.engine.base.Connection, 'execute')
+    unwrap(sqlalchemy.orm.session.Session, 'execute')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-xray-sdk-2.7.0/aws_xray_sdk/version.py 
new/aws-xray-sdk-2.8.0/aws_xray_sdk/version.py
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk/version.py      2021-03-24 
17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk/version.py      2021-04-29 
02:01:38.000000000 +0200
@@ -1 +1 @@
-VERSION = '2.7.0'
+VERSION = '2.8.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-xray-sdk-2.7.0/aws_xray_sdk.egg-info/PKG-INFO 
new/aws-xray-sdk-2.8.0/aws_xray_sdk.egg-info/PKG-INFO
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk.egg-info/PKG-INFO       2021-03-24 
18:06:14.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk.egg-info/PKG-INFO       2021-04-29 
02:03:01.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: aws-xray-sdk
-Version: 2.7.0
+Version: 2.8.0
 Summary: The AWS X-Ray SDK for Python (the SDK) enables Python developers to 
record and emit information from within their applications to the AWS X-Ray 
service.
 Home-page: https://github.com/aws/aws-xray-sdk-python
 Author: Amazon Web Services
@@ -14,7 +14,7 @@
         
         ## Installing
         
-        The AWS X-Ray SDK for Python is compatible with Python 2.7, 3.4, 3.5, 
3.6, 3.7, and 3.8.
+        The AWS X-Ray SDK for Python is compatible with Python 2.7, 3.4, 3.5, 
3.6, 3.7, 3.8, and 3.9.
         
         Install the SDK using the following command (the SDK's non-testing 
dependencies will be installed).
         
@@ -199,6 +199,9 @@
             xray_recorder.put_metadata('mykey', metadata)
         ```
         
+        ### Generate NoOp Trace and Entity Id
+        X-Ray Python SDK will by default generate no-op trace and entity id 
for unsampled requests and secure random trace and entity id for sampled 
requests. If customer wants to enable generating secure random trace and entity 
id for all the (sampled/unsampled) requests (this is applicable for trace id 
injection into logs use case) then they should set the `AWS_XRAY_NOOP_ID` 
environment variable as False.
+        
         ### Disabling X-Ray
         Often times, it may be useful to be able to disable X-Ray for specific 
use cases, whether to stop X-Ray from sending traces at any moment, or to test 
code functionality that originally depended on X-Ray instrumented packages to 
begin segments prior to the code call. For example, if your application relied 
on an XRayMiddleware to instrument incoming web requests, and you have a method 
which begins subsegments based on the segment generated by that middleware, it 
would be useful to be able to disable X-Ray for your unit tests so that 
`SegmentNotFound` exceptions are not thrown when you need to test your method.
         
@@ -529,4 +532,5 @@
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
 Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
 Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-xray-sdk-2.7.0/aws_xray_sdk.egg-info/SOURCES.txt 
new/aws-xray-sdk-2.8.0/aws_xray_sdk.egg-info/SOURCES.txt
--- old/aws-xray-sdk-2.7.0/aws_xray_sdk.egg-info/SOURCES.txt    2021-03-24 
18:06:14.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/aws_xray_sdk.egg-info/SOURCES.txt    2021-04-29 
02:03:01.000000000 +0200
@@ -29,6 +29,7 @@
 aws_xray_sdk/core/models/entity.py
 aws_xray_sdk/core/models/facade_segment.py
 aws_xray_sdk/core/models/http.py
+aws_xray_sdk/core/models/noop_traceid.py
 aws_xray_sdk/core/models/segment.py
 aws_xray_sdk/core/models/subsegment.py
 aws_xray_sdk/core/models/throwable.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/aws-xray-sdk-2.7.0/setup.py 
new/aws-xray-sdk-2.8.0/setup.py
--- old/aws-xray-sdk-2.7.0/setup.py     2021-03-24 17:45:53.000000000 +0100
+++ new/aws-xray-sdk-2.8.0/setup.py     2021-04-29 02:01:38.000000000 +0200
@@ -41,6 +41,7 @@
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
     ],
 
     install_requires=[

Reply via email to