temporalio 0.0.2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +25 -23
- data/bridge/Cargo.lock +168 -59
- data/bridge/Cargo.toml +4 -2
- data/bridge/sdk-core/README.md +19 -6
- data/bridge/sdk-core/client/src/lib.rs +215 -39
- data/bridge/sdk-core/client/src/metrics.rs +17 -8
- data/bridge/sdk-core/client/src/raw.rs +4 -4
- data/bridge/sdk-core/client/src/retry.rs +32 -20
- data/bridge/sdk-core/core/Cargo.toml +22 -9
- data/bridge/sdk-core/core/src/abstractions.rs +203 -14
- data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +76 -41
- data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
- data/bridge/sdk-core/core/src/core_tests/local_activities.rs +204 -83
- data/bridge/sdk-core/core/src/core_tests/queries.rs +3 -4
- data/bridge/sdk-core/core/src/core_tests/workers.rs +1 -3
- data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +397 -54
- data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
- data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
- data/bridge/sdk-core/core/src/lib.rs +16 -9
- data/bridge/sdk-core/core/src/telemetry/log_export.rs +1 -1
- data/bridge/sdk-core/core/src/telemetry/metrics.rs +69 -35
- data/bridge/sdk-core/core/src/telemetry/mod.rs +29 -13
- data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +17 -12
- data/bridge/sdk-core/core/src/test_help/mod.rs +62 -12
- data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
- data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
- data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +352 -122
- data/bridge/sdk-core/core/src/worker/activities.rs +233 -157
- data/bridge/sdk-core/core/src/worker/client/mocks.rs +22 -2
- data/bridge/sdk-core/core/src/worker/client.rs +18 -2
- data/bridge/sdk-core/core/src/worker/mod.rs +165 -58
- data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
- data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +856 -277
- data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +100 -43
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +7 -7
- data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +87 -27
- data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +5 -4
- data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +137 -62
- data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +25 -17
- data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +7 -6
- data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +103 -152
- data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +7 -7
- data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -9
- data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
- data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -7
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +5 -16
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +201 -121
- data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +11 -14
- data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +30 -15
- data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1026 -376
- data/bridge/sdk-core/core/src/worker/workflow/mod.rs +460 -384
- data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
- data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
- data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
- data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +448 -718
- data/bridge/sdk-core/core-api/Cargo.toml +2 -1
- data/bridge/sdk-core/core-api/src/errors.rs +1 -34
- data/bridge/sdk-core/core-api/src/lib.rs +6 -2
- data/bridge/sdk-core/core-api/src/telemetry.rs +0 -6
- data/bridge/sdk-core/core-api/src/worker.rs +14 -1
- data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
- data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
- data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +5 -17
- data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +11 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +1 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +6 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +5 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +22 -6
- data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +48 -19
- data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +3 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/{enums/v1/interaction_type.proto → protocol/v1/message.proto} +29 -11
- data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +111 -0
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +59 -28
- data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +7 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +1 -0
- data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
- data/bridge/sdk-core/sdk/Cargo.toml +3 -2
- data/bridge/sdk-core/sdk/src/lib.rs +87 -20
- data/bridge/sdk-core/sdk/src/workflow_future.rs +9 -8
- data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- data/bridge/sdk-core/sdk-core-protos/build.rs +36 -1
- data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +100 -87
- data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +5 -1
- data/bridge/sdk-core/sdk-core-protos/src/lib.rs +175 -57
- data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- data/bridge/sdk-core/test-utils/Cargo.toml +3 -1
- data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
- data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
- data/bridge/sdk-core/test-utils/src/lib.rs +82 -23
- data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
- data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
- data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
- data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
- data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
- data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -3
- data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
- data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
- data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
- data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +72 -191
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
- data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
- data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +10 -11
- data/bridge/sdk-core/tests/main.rs +3 -13
- data/bridge/sdk-core/tests/runner.rs +75 -36
- data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
- data/bridge/src/connection.rs +41 -25
- data/bridge/src/lib.rs +269 -14
- data/bridge/src/runtime.rs +1 -1
- data/bridge/src/test_server.rs +153 -0
- data/bridge/src/worker.rs +89 -16
- data/lib/gen/temporal/api/command/v1/message_pb.rb +4 -18
- data/lib/gen/temporal/api/common/v1/message_pb.rb +4 -0
- data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +1 -3
- data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +3 -3
- data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +2 -0
- data/lib/gen/temporal/api/enums/v1/update_pb.rb +6 -4
- data/lib/gen/temporal/api/history/v1/message_pb.rb +27 -19
- data/lib/gen/temporal/api/namespace/v1/message_pb.rb +1 -0
- data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +3 -0
- data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
- data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
- data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
- data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
- data/lib/gen/temporal/api/update/v1/message_pb.rb +72 -0
- data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +26 -16
- data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
- data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
- data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
- data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
- data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +27 -21
- data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +28 -24
- data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
- data/lib/temporalio/activity/context.rb +13 -8
- data/lib/temporalio/activity/info.rb +1 -1
- data/lib/temporalio/bridge/connect_options.rb +15 -0
- data/lib/temporalio/bridge/retry_config.rb +24 -0
- data/lib/temporalio/bridge/tls_options.rb +19 -0
- data/lib/temporalio/client/implementation.rb +8 -8
- data/lib/temporalio/connection/retry_config.rb +44 -0
- data/lib/temporalio/connection/service.rb +20 -0
- data/lib/temporalio/connection/test_service.rb +92 -0
- data/lib/temporalio/connection/tls_options.rb +51 -0
- data/lib/temporalio/connection/workflow_service.rb +731 -0
- data/lib/temporalio/connection.rb +55 -720
- data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
- data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
- data/lib/temporalio/interceptor/chain.rb +5 -5
- data/lib/temporalio/interceptor/client.rb +8 -4
- data/lib/temporalio/interceptor.rb +22 -0
- data/lib/temporalio/retry_policy.rb +13 -3
- data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
- data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
- data/lib/temporalio/testing/workflow_environment.rb +112 -0
- data/lib/temporalio/testing.rb +175 -0
- data/lib/temporalio/version.rb +1 -1
- data/lib/temporalio/worker/activity_runner.rb +26 -4
- data/lib/temporalio/worker/activity_worker.rb +44 -18
- data/lib/temporalio/worker/sync_worker.rb +47 -11
- data/lib/temporalio/worker.rb +27 -21
- data/lib/temporalio/workflow/async.rb +46 -0
- data/lib/temporalio/workflow/future.rb +138 -0
- data/lib/temporalio/workflow/info.rb +76 -0
- data/temporalio.gemspec +4 -3
- metadata +67 -17
- data/bridge/sdk-core/Cargo.lock +0 -2606
- data/bridge/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +0 -87
- data/lib/bridge.so +0 -0
- data/lib/gen/temporal/api/enums/v1/interaction_type_pb.rb +0 -25
- data/lib/gen/temporal/api/interaction/v1/message_pb.rb +0 -49
- data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
module Temporalio
|
|
2
|
+
class Connection
|
|
3
|
+
class RetryConfig
|
|
4
|
+
# Initial backoff interval.
|
|
5
|
+
# @default 100
|
|
6
|
+
attr_reader :initial_interval_millis
|
|
7
|
+
|
|
8
|
+
# Randomization jitter to add.
|
|
9
|
+
# @default 0.2
|
|
10
|
+
attr_reader :randomization_factor
|
|
11
|
+
|
|
12
|
+
# Backoff multiplier.
|
|
13
|
+
# @default 1.5
|
|
14
|
+
attr_reader :multiplier
|
|
15
|
+
|
|
16
|
+
# Maximum backoff interval.
|
|
17
|
+
# @default 5000
|
|
18
|
+
attr_reader :max_interval_millis
|
|
19
|
+
|
|
20
|
+
# Maximum total time (optional).
|
|
21
|
+
attr_reader :max_elapsed_time_millis
|
|
22
|
+
|
|
23
|
+
# Maximum number of retries.
|
|
24
|
+
# @default 10
|
|
25
|
+
attr_reader :max_retries
|
|
26
|
+
|
|
27
|
+
def initialize(
|
|
28
|
+
initial_interval_millis: nil,
|
|
29
|
+
randomization_factor: nil,
|
|
30
|
+
multiplier: nil,
|
|
31
|
+
max_interval_millis: nil,
|
|
32
|
+
max_elapsed_time_millis: nil,
|
|
33
|
+
max_retries: nil
|
|
34
|
+
)
|
|
35
|
+
@initial_interval_millis = initial_interval_millis || 100
|
|
36
|
+
@randomization_factor = randomization_factor || 0.2
|
|
37
|
+
@multiplier = multiplier || 1.5
|
|
38
|
+
@max_interval_millis = max_interval_millis || 5_000
|
|
39
|
+
@max_elapsed_time_millis = max_elapsed_time_millis
|
|
40
|
+
@max_retries = max_retries || 10
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Temporalio
|
|
2
|
+
class Connection
|
|
3
|
+
# @abstract A superclass for defining services to interact with the Temporal API
|
|
4
|
+
class Service
|
|
5
|
+
# @api private
|
|
6
|
+
def initialize(core_connection, service)
|
|
7
|
+
@core_connection = core_connection
|
|
8
|
+
@service = service
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
attr_reader :core_connection, :service
|
|
14
|
+
|
|
15
|
+
def call(rpc, bytes, metadata, timeout)
|
|
16
|
+
core_connection.call(rpc, service, bytes, metadata, timeout)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
require 'temporal/api/testservice/v1/request_response_pb'
|
|
2
|
+
require 'temporalio/connection/service'
|
|
3
|
+
|
|
4
|
+
module Temporalio
|
|
5
|
+
class Connection
|
|
6
|
+
# A class for making TestService RPCs
|
|
7
|
+
#
|
|
8
|
+
# This is normally accessed via {Temoralio::Connection#test_service}.
|
|
9
|
+
class TestService < Service
|
|
10
|
+
# @api private
|
|
11
|
+
def initialize(core_connection)
|
|
12
|
+
super(core_connection, :test_service)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @param request [Temporalio::Api::TestService::V1::LockTimeSkippingRequest]
|
|
16
|
+
# @param metadata [Hash<String, String>] Headers used on the RPC call.
|
|
17
|
+
# Keys here override client-level RPC metadata keys.
|
|
18
|
+
# @param timeout [Integer] Optional RPC deadline to set for each RPC call.
|
|
19
|
+
#
|
|
20
|
+
# @return [Temporalio::Api::TestService::V1::LockTimeSkippingResponse]
|
|
21
|
+
def lock_time_skipping(request, metadata: {}, timeout: nil)
|
|
22
|
+
encoded = Temporalio::Api::TestService::V1::LockTimeSkippingRequest.encode(request)
|
|
23
|
+
response = call(:lock_time_skipping, encoded, metadata, timeout)
|
|
24
|
+
|
|
25
|
+
Temporalio::Api::TestService::V1::LockTimeSkippingResponse.decode(response)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# @param request [Temporalio::Api::TestService::V1::UnlockTimeSkippingRequest]
|
|
29
|
+
# @param metadata [Hash<String, String>] Headers used on the RPC call.
|
|
30
|
+
# Keys here override client-level RPC metadata keys.
|
|
31
|
+
# @param timeout [Integer] Optional RPC deadline to set for each RPC call.
|
|
32
|
+
#
|
|
33
|
+
# @return [Temporalio::Api::TestService::V1::UnlockTimeSkippingResponse]
|
|
34
|
+
def unlock_time_skipping(request, metadata: {}, timeout: nil)
|
|
35
|
+
encoded = Temporalio::Api::TestService::V1::UnlockTimeSkippingRequest.encode(request)
|
|
36
|
+
response = call(:unlock_time_skipping, encoded, metadata, timeout)
|
|
37
|
+
|
|
38
|
+
Temporalio::Api::TestService::V1::UnlockTimeSkippingResponse.decode(response)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @param request [Temporalio::Api::TestService::V1::SleepRequest]
|
|
42
|
+
# @param metadata [Hash<String, String>] Headers used on the RPC call.
|
|
43
|
+
# Keys here override client-level RPC metadata keys.
|
|
44
|
+
# @param timeout [Integer] Optional RPC deadline to set for each RPC call.
|
|
45
|
+
#
|
|
46
|
+
# @return [Temporalio::Api::TestService::V1::SleepResponse]
|
|
47
|
+
def sleep(request, metadata: {}, timeout: nil)
|
|
48
|
+
encoded = Temporalio::Api::TestService::V1::SleepRequest.encode(request)
|
|
49
|
+
response = call(:sleep, encoded, metadata, timeout)
|
|
50
|
+
|
|
51
|
+
Temporalio::Api::TestService::V1::SleepResponse.decode(response)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @param request [Temporalio::Api::TestService::V1::SleepUntilRequest]
|
|
55
|
+
# @param metadata [Hash<String, String>] Headers used on the RPC call.
|
|
56
|
+
# Keys here override client-level RPC metadata keys.
|
|
57
|
+
# @param timeout [Integer] Optional RPC deadline to set for each RPC call.
|
|
58
|
+
#
|
|
59
|
+
# @return [Temporalio::Api::TestService::V1::SleepResponse]
|
|
60
|
+
def sleep_until(request, metadata: {}, timeout: nil)
|
|
61
|
+
encoded = Temporalio::Api::TestService::V1::SleepUntilRequest.encode(request)
|
|
62
|
+
response = call(:sleep_until, encoded, metadata, timeout)
|
|
63
|
+
|
|
64
|
+
Temporalio::Api::TestService::V1::SleepResponse.decode(response)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# @param request [Temporalio::Api::TestService::V1::SleepRequest]
|
|
68
|
+
# @param metadata [Hash<String, String>] Headers used on the RPC call.
|
|
69
|
+
# Keys here override client-level RPC metadata keys.
|
|
70
|
+
# @param timeout [Integer] Optional RPC deadline to set for each RPC call.
|
|
71
|
+
#
|
|
72
|
+
# @return [Temporalio::Api::TestService::V1::SleepResponse]
|
|
73
|
+
def unlock_time_skipping_with_sleep(request, metadata: {}, timeout: nil)
|
|
74
|
+
encoded = Temporalio::Api::TestService::V1::SleepRequest.encode(request)
|
|
75
|
+
response = call(:unlock_time_skipping_with_sleep, encoded, metadata, timeout)
|
|
76
|
+
|
|
77
|
+
Temporalio::Api::TestService::V1::SleepResponse.decode(response)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @param metadata [Hash<String, String>] Headers used on the RPC call.
|
|
81
|
+
# Keys here override client-level RPC metadata keys.
|
|
82
|
+
# @param timeout [Integer] Optional RPC deadline to set for each RPC call.
|
|
83
|
+
#
|
|
84
|
+
# @return [Temporalio::Api::TestService::V1::GetCurrentTimeResponse]
|
|
85
|
+
def get_current_time(metadata: {}, timeout: nil)
|
|
86
|
+
response = call(:get_current_time, '', metadata, timeout)
|
|
87
|
+
|
|
88
|
+
Temporalio::Api::TestService::V1::GetCurrentTimeResponse.decode(response)
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module Temporalio
|
|
2
|
+
class Connection
|
|
3
|
+
class TlsOptions
|
|
4
|
+
# Root CA certificate used by the server. If not set, the server's certificate will be
|
|
5
|
+
# validated against the operating system's root certificates.
|
|
6
|
+
#
|
|
7
|
+
# Leave unset for Temporal Cloud.
|
|
8
|
+
attr_reader :server_root_ca_cert
|
|
9
|
+
|
|
10
|
+
# Client certificate used to authenticate with the server. If set, a corresponding
|
|
11
|
+
# `client_private_key` must be provided.
|
|
12
|
+
#
|
|
13
|
+
# @default do not use client side authentication.
|
|
14
|
+
attr_reader :client_cert
|
|
15
|
+
|
|
16
|
+
# Client private key used to authenticate with the server. Required if `client_cert` is set.
|
|
17
|
+
attr_reader :client_private_key
|
|
18
|
+
|
|
19
|
+
# Overrides the target name used for validation of the server SSL certificate. If not
|
|
20
|
+
# specified, the server certificate will be checked against the host part of the connection
|
|
21
|
+
# target address. This _should_ be used for testing only.
|
|
22
|
+
#
|
|
23
|
+
# Leave unset for Temporal Cloud.
|
|
24
|
+
#
|
|
25
|
+
# @default Validate the server certificate against the host part of the connection target address.
|
|
26
|
+
attr_reader :server_name_override
|
|
27
|
+
|
|
28
|
+
# @param [String?] server_root_ca_cert Root CA certificate used by the server.
|
|
29
|
+
# @param [String?] client_cert Client certificate used to authenticate with the server.
|
|
30
|
+
# @param [String?] client_private_key Client private key used to authenticate with the server.
|
|
31
|
+
# @param [String?] server_name_override Overrides the target name used for validation of the
|
|
32
|
+
# server SSL certificate.
|
|
33
|
+
# @raise [ArgumentError] if `client_cert` and `client_private_key` are not both set or both unset
|
|
34
|
+
def initialize(
|
|
35
|
+
server_root_ca_cert: nil,
|
|
36
|
+
client_cert: nil,
|
|
37
|
+
client_private_key: nil,
|
|
38
|
+
server_name_override: nil
|
|
39
|
+
)
|
|
40
|
+
if (client_cert && !client_private_key) || (!client_cert && client_private_key)
|
|
41
|
+
raise ArgumentError, 'client_cert and client_private_key must be either both set or both unset'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
@server_root_ca_cert = server_root_ca_cert
|
|
45
|
+
@client_cert = client_cert
|
|
46
|
+
@client_private_key = client_private_key
|
|
47
|
+
@server_name_override = server_name_override
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|