Commit Graph

819 Commits

Author SHA1 Message Date
Peter Huene bb1c7457cc
Update README.md 2020-06-01 11:10:40 -07:00
Peter Huene 51d521eb66
Merge pull request #573 from demoray/patch-1
add demoray
2020-05-15 11:41:09 -07:00
demoray 566596c512
add demoray 2020-05-15 10:53:34 -04:00
Peter Huene 8657935897
Merge pull request #511 from peterhuene/all-contributors/add-dbcfd
docs: add dbcfd as a contributor
2020-01-22 23:59:13 -08:00
allcontributors[bot] 41c564229d
docs: update .all-contributorsrc [skip ci] 2020-01-23 07:58:40 +00:00
allcontributors[bot] b3974499f8
docs: update README.md [skip ci] 2020-01-23 07:58:39 +00:00
Peter Huene e1f6276b38
Merge pull request #498 from rtyler/patch-2
Clarify which type of "Function App" should be created
2020-01-12 22:56:58 -08:00
R Tyler Croy c3591e36d4
Clarify which type of "Function App" should be created
I was unable to make anything work with the "Function App" in the current portal, but these instructions do work properly for "Function App (Classic)"
2020-01-12 11:53:58 -08:00
Peter Huene 8791f20881
Merge pull request #493 from dbcfd/dbcfd-cla
Add to cla
2019-12-30 09:56:08 -08:00
dbcfd ee14e776ef Add to cla 2019-12-30 08:33:07 -07:00
Peter Huene c902c7cb1a
Merge pull request #490 from peterhuene/all-contributors/add-cbrevik
docs: add cbrevik as a contributor
2019-12-29 14:30:38 -08:00
Peter Huene 29860efb83
Merge pull request #489 from cbrevik/patch-1
Add cbrevik to .clabot
2019-12-29 14:29:57 -08:00
allcontributors[bot] dd83d4fe29
docs: update .all-contributorsrc [skip ci] 2019-12-29 22:29:40 +00:00
allcontributors[bot] c887940d7b
docs: update README.md [skip ci] 2019-12-29 22:29:39 +00:00
Christian Brevik 6014631aff
Add cbrevik to .clabot 2019-12-29 21:12:26 +01:00
Peter Huene eba35102b7
Update README.md
Update the branch for the CI badge.
2019-11-12 01:48:10 -08:00
Peter Huene 3a0e842e2f
Merge pull request #456 from peterhuene/dev
Merge dev to master.
2019-11-12 01:36:49 -08:00
Peter Huene 3a316191ce
Merge pull request #454 from peterhuene/bump-versions
Bump version to 0.11.0.
2019-11-12 01:23:39 -08:00
Peter Huene d810b44af6
Bump version to 0.11.0. 2019-11-12 01:07:58 -08:00
Peter Huene 6fdb22b353
Merge pull request #453 from peterhuene/master-to-dev
Merge master to dev
2019-11-12 00:34:43 -08:00
Peter Huene 9261c558eb
Merge branch 'master' into dev 2019-11-12 00:19:37 -08:00
Peter Huene 0ed5169257
Merge pull request #452 from peterhuene/durable-functions
Merge the Durable Functions implementation to dev.
2019-11-11 20:29:28 -08:00
Peter Huene 1e9e507a57
Update README documentation for async functions.
Remove the mention of using a nightly compiler for async functions.
2019-11-11 20:16:49 -08:00
Peter Huene ba8965b231
Fix Durable Functions tests on Windows.
This commit fixes the Durable Function tests on Windows where `Utc::now` has a
lower resolution that's required for an inequality check.

This simply adds a monotonic number of nanoseconds to the current timestamp for
each history event created for the tests.
2019-11-11 20:02:45 -08:00
Peter Huene 688bea2913
Fix SDK with latest dev changes.
This commit fixes the SDK based on the latest changes that were made to the
`dev` branch.
2019-11-11 19:44:55 -08:00
Peter Huene 5197c2b2d6
Remove nightly clippy lint that is not yet available in stable. 2019-11-11 19:04:07 -08:00
Peter Huene c9d09796ab
Update the Durable Functions example documentation.
This commit updates the Durable Functions example documentation.

It also adds missing documentation examples.
2019-11-11 19:04:07 -08:00
Peter Huene f3480ae6e2
Implement DurableOrchestrationContext.wait_for_event.
This commit implements `DurableOrchestrationContext.wait_for_event`.

Additionally, it fully implements `DurableOrchestrationClient` to expose all of
the underlying durable `Client` functions.
2019-11-11 19:04:06 -08:00
Peter Huene 18ba432294
Refactor Durable Functions HTTP client.
This commit refactors the Durable Functions HTTP client and exposes more of it
as an API.
2019-11-11 19:04:06 -08:00
Peter Huene 68e3730d2a
Implement DurableOrchestrationContext.new_guid.
This commit implements `DurableOrchestrationContext.new_guid`.
2019-11-11 19:04:06 -08:00
Peter Huene 42abd01ba2
Implement DurableOrchestrationContext.set_custom_status.
This commit implements `DurableOrchestrationContext.set_custom_status`.

It also refactors the examples to break the `hello_world` example into a `join`
and `select` example function.
2019-11-11 19:04:06 -08:00
Peter Huene 63a97d96a6
Fix breaking change with Durable Functions 2.0.
This fixes the binding name change for the orchestration client when using
Durable Functions 2.0.

Also fixes Ctrl-C handling for `cargo func run` so that a 3.0 Azure Functions
Core Tools can properly shutdown gracefully.
2019-11-11 19:04:05 -08:00
Peter Huene 7a832a978b
Remove the use of the `result_map_or_else` feature.
This commit ensures everything can be built with stable 1.39.0 by default.
2019-11-11 19:04:05 -08:00
Peter Huene c3bda821d5
Implement DurableOrchestrationContext.create_timer.
This commit implements creating durable timers using
`DurableOrchestrationContext.create_timer`.
2019-11-11 19:04:05 -08:00
Peter Huene ac03068f74
Implement DurableOrchestrationContext.continue_as_new.
This commit implements the `continue_as_new` method for
`DurableOrchestrationContext`.

The `continue_as_new` method enables looping in orchestration functions.
2019-11-11 19:04:05 -08:00
Peter Huene 67e552353e
Fully move to std::future::Future and async/await.
This commit removes the need for using the "unstable" feature for async/await
support.

Additionally, this moves to a std::future::Future based Tokio and replaces
tower-grpc with tonic (a gRPC implementation that is based on
std::future::Future).
2019-11-11 19:04:05 -08:00
Peter Huene d405ee8655
Fix bad merge. 2019-11-11 19:04:04 -08:00
Peter Huene 33d6969ec1
Implement `DurableOrchestrationContext::call_sub_orchestrator`.
This commit implements `call_sub_orchestrator` and
`call_sub_orchestrator_with_retry` on `DurableOrchestrationContext`.
2019-11-11 19:04:04 -08:00
Peter Huene 4370842c2a
Make requested code review changes.
This commit makes the requested changes from the code review.
2019-11-11 19:04:04 -08:00
Peter Huene b96243f8e2
Implement DurableOrchestrationContext::call_activity_with_retry.
This commit implements the `call_activity_with_retry` method.

It refactors the code to return `ActionFuture` rather than `impl Future`.  This
will allow the `join_all` and `select_all` methods to use a mix of
`call_activity` and `call_activity_with_retry`, which is not possible if both
methods return `impl Future`.
2019-11-11 19:04:04 -08:00
Peter Huene 2e398ae6aa
Add unit test coverage to Durable Functions types.
This commit adds some unit test coverage for Durable Functions types.
2019-11-11 19:04:04 -08:00
Peter Huene 41f93702cb
Refactor types out of the orchestration context file.
This commit moves a bunch of auxiliary types out of the orchestration context
into their own modules.
2019-11-11 19:04:03 -08:00
Peter Huene 0a7b025ce3
Implement `DurableOrchestrationContext::select_all`.
This commit implements the `select_all` function on
`DurableOrchestrationContext`.

The function can be used to select from multiple futures, returning the ready
future's output, the index from the original sequence, and the remaining
pending futures.

Additionally, the orchestration state now properly moves to the correct
orchestration started / completed events when handling the resolution of a
future.
2019-11-11 19:04:03 -08:00
Peter Huene 60b5678248
Additional Durable Functions implementation.
This commit continues the Durable Functions implementation:

* Changes `azure-functions-durable` crate to use the released version of the
`hyper` crate, but with the 0.1.0 futures-compatibility layer.  This fixes the
issue where the reactor could not be found for the client with a 0.1.0
futures-based tokio reactor that is being used by the Azure Functions for Rust
runtime.

* Implement the `DurableOrchestrationClient` binding to wrap an
`OrchestrationClient` and provide the `start_new` method.  More methods will be
implemented later.

* Implement the `DurableActivityContext` binding to extract the instance
identifier and input from the binding data.

* Implemented a mechanism for outer orchestration futures to control inner
futures for updating the current orchestration event, which should occur
immediately after the future is ready.

* Implemented proper replay detection.

* Implemented the `join_all` method on `DurableOrchestrationContext`.

* Implemented the Durable Functions example (still needs documentation).

* Various clippy and code clean up fixes.
2019-11-11 19:04:03 -08:00
Denis Molokanov e1dd374796
Implement current_time method (#375)
- Initializes current_time field with the first OrchestrationStarted event in the constructor.
- Updates current_time field with the next OrchestrationStarted in history.
2019-11-11 19:04:03 -08:00
t-eckert 4a7b7509f2
Make `context` mutable 2019-11-11 19:04:03 -08:00
t-eckert 4ada8d54ad
Add newline to `orchestration` template. 2019-11-11 19:04:03 -08:00
t-eckert c5623aec27
Add `cargo func new orchestration` command 2019-11-11 19:04:02 -08:00
t-eckert a19af7ad76
Add orchestration.rs template 2019-11-11 19:04:02 -08:00
Scott Lyons fd6772f845
Code complete of orchestration client 2019-11-11 19:04:02 -08:00