Commit Graph

20 Commits

Author SHA1 Message Date
Anton Kolesnyk
6da4d9649d
FIx typos (#5185)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-11-27 13:55:27 -08:00
Larry Osterman
1b2e58f743
Moved all uAMQP types out of public headers into _impl headers (#5171)
* Moved all uAMQP types out of public headers into _impl headers

* SocketListener is now in _detail
2023-11-17 09:32:06 -08:00
Larry Osterman
37e1952f71
Fixed Linux AMQP crash and many other fixes. (#5166)
* Return pointer to message rather than message; cleaned up API surface to remove uAMQP details

* ASAN configuration via CMAKE preset, not environment variable

* clang-tidy fixes
2023-11-14 23:45:24 +00:00
Larry Osterman
7b8d324540
Fixed AMQP Link Credits hang; fixed several AMQP memory leaks. (#5119)
* Add link pollable; Fixed several memory leaks

* Rule of 5 fixes for AMQP and EventHubs types; moved message handle type to _detail namespace.

* Update sdk/core/azure-core-amqp/CHANGELOG.md

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

---------

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2023-11-09 15:55:54 -08:00
Larry Osterman
9d14632f1c
Isolate headers for AMQP internal types into an internal-only header directory. Fixes #5069 (#5079)
* Moved internal AMQP types to internal header directory

* Updated consumers of AMQP headers to match moved headers

* Updated changelog to reflect breaking change in AMQP

* Made includes explicit in event_data.hpp

* Reference non-package headers with angle braces not quotes
2023-10-30 18:04:24 +00:00
Larry Osterman
102c6f3d95
Port uAMQPPython fixes to uAMQP to vendored uAMQP (#5059)
* Port uAMQPPython fixes to uAMQP to vendored uAMQP

* Fixed unit test failures

* Diff ported fixes against python codebase
2023-10-27 09:17:26 -07:00
Anton Kolesnyk
50c18516df
Ensure CMakeLists don't miss any files (#5065)
* Ensure CMakeLists don't miss any files

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-10-26 18:15:03 -07:00
Larry Osterman
51c8955d85
Vendor AMQP at commit 52942afb1a4b48a1d8af7a3ac37d3211661e3423 (#5049)
* Vendored version of uamqp

* Exclude vendored modules from cspell

* Code coverage

* Code coverage improvements

* Removed more coverage exclusions
2023-10-25 11:19:20 -07:00
Larry Osterman
ccddc7f3ed
Fully functioning eventhubs processor. (#5018)
* Functioning processor; reliability changes to azure core

* Eventhubs test fixes

* Functioning processor; cleaned up some memory leaks

* 

---------

Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2023-10-24 10:45:43 -07:00
Larry Osterman
5f579513c2
Enable partial reads on EventHubs. (#4950)
* Added eventhubs test collateral to create and destroy eventhubs namespaces and eventhubs; Added peek message functionality to AMQP

* Use HTTP to talk to management APIs instead of az cli
2023-09-21 15:36:54 -07:00
Larry Osterman
165eace629
AMQP Stack polls for operations in a background thread. (#4914)
There are two significant parts to this fix. The first is that the Connection object now has a method EnableAsyncOperation which registers the connection with a background thread which polls the connection. The EnableAsyncOperation needs to be callable from outside the connection because in normal client operation, the calls to open the connection are all internal to uAMQP. That means that the message sender and receiver need to call it when they're opened (and closed).

The other major part of this change is that the AsyncOperationQueue now has a WaitForRequest API which does not normally poll (there is a test hook which enables polling but that is not normally used in most scenarios).

The other part of this change fixes some concurrency issues associated with the Log::Stream functionality.

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

* Update sdk/core/azure-core/src/logger.cpp

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

* Update sdk/core/azure-core/test/ut/CMakeLists.txt

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

* Update sdk/core/azure-core/test/ut/logging_test.cpp

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>

* Added ASAN as an option, converted transports to be bases to ensure consistancy

---------

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2023-09-13 11:12:46 -07:00
Larry Osterman
9fbc3856ad
Create EventHubs stress and performance test basics. (#4818)
* Scaffolding for eventhubs perf test

* Added eventhubs 'stress' test, which is really a totally broken perf test'

* Added stress test skeleton

* EventHubs Stress test is an actual eventhubs test now

* EventHubs throws exceptions on producer client failure. Rationalized error reporting from AMQP - message sender and receiver generate the same errors.

* Rationalize AMQP error results; throw exceptions on eventhubs errors

* Fixed amqp management test; added HTTP status code for management triggered exceptions

* Event Data binary no longer takes an AMQP binary; Preliminary readme.md for eventhubs (still many go constructs in the readme)

* Created the first eventhubs samples - they don't do much but they work

Co-authored-by: Ahson Khan <ahkha@microsoft.com>

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

* API Review feedback

* Added isTransient flag to eventhubs exception based on Java implementation

* Updated AMQP changelog to reflect recent changes

---------

Co-authored-by: Ahson Khan <ahkha@microsoft.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2023-08-04 11:40:30 -07:00
Rick Winter
b54d509c72
Use standard syntax for MIT license (#4786)
* Use standard syntax for MIT license

* Stop appending "All rights reserved"
2023-07-12 22:37:36 -07:00
Larry Osterman
5a9106f2a5
Convert AMQP Management APIs to use MessageSender and MessageReceiver instead of uAMQP version. (#4706)
* Switched management implementation to use message sender and receiver instead of uAMQP implementation.

* Made value conversion to AmqpValue explicit to work around what appears to be a gcc9 bug

Co-authored-by: Ahson Khan <ahkha@microsoft.com>

* pull request feedback

---------

Co-authored-by: Ahson Khan <ahkha@microsoft.com>
2023-06-12 13:57:54 -07:00
Larry Osterman
0516518265
Hopefully final AMQP shape changes. (#4690)
* Added amqp_definitions_fields to list of 'special' uAMQP headers

* Tidy up x64-static-debug-perftests preset

* Moved test functions to private and use friend functions for tests; Renamed Management to ManagementClient and made it constructable from Session.

---------

Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2023-06-06 09:10:39 -07:00
Anton Kolesnyk
16a64ab3e9
Fix live tests CI compilation (unused variable warning - gets treated as error) (#4685)
* Fix live tests CI compilation (unused variable warning - gets treated as error)

* A warning popped up in opentelemetry due to header reordering

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2023-06-01 17:52:44 -07:00
Larry Osterman
fb240a4b25
Define a standardized header ordering for Azure SDK for C++ (#4632)
* Standardized header ordering for C++ repo

* Reordered categories to move private headers above public headers; added space between categories to enable future flexibility
2023-05-26 14:32:45 -07:00
Larry Osterman
99b1ef5500
Convert most AMQP types to read-only; Significant API surface cleanup. (#4640)
* Prep for readonly connection

* Added options for Connection and Session to enable read-only configuration

* Read-only connection and session objects; use message source and target for message sender and receiver

* Enabled read-only session; added tests for incorrect AMQPS port

* Added token reader sample; flushed out eventhubs properties sample, added some timeouts to send async test

* Moved AMQP samples to internal

* Moved samples to use GetEnvHelper

---------

Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2023-05-26 13:17:09 -07:00
Larry Osterman
7066f4c956
Disable warnings for AMQP tests (#4633)
* Disable warnings for AMQP tests

* Added cmake presets for linux for ease of use.
2023-05-15 11:35:10 -07:00
Larry Osterman
68d051fe72
Merge AMQP functionality to main. (#4596)
# This pull request moves the core AMQP functionality to main. It is still very much a work in progress, but moving it to main will reduce the complexity associated with working in feature branches.



---------

Co-authored-by: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Co-authored-by: Konrad Jamrozik <kojamroz@microsoft.com>
Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Ben Broderick Phillips <bebroder@microsoft.com>
Co-authored-by: George Arama <50641385+gearama@users.noreply.github.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
2023-05-10 20:58:39 +00:00