Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(814)

Unified Diff: third_party/gsutil/boto/boto/swf/layer1_decisions.py

Issue 12317103: Added gsutil to depot tools (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: added readme Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/boto/boto/swf/layer1_decisions.py
diff --git a/third_party/gsutil/boto/boto/swf/layer1_decisions.py b/third_party/gsutil/boto/boto/swf/layer1_decisions.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c273aa14d349f42ea7939d7407f396b4e4a50f1
--- /dev/null
+++ b/third_party/gsutil/boto/boto/swf/layer1_decisions.py
@@ -0,0 +1,287 @@
+"""
+Helper class for creating decision responses.
+"""
+
+
+class Layer1Decisions:
+ """
+ Use this object to build a list of decisions for a decision response.
+ Each method call will add append a new decision. Retrieve the list
+ of decisions from the _data attribute.
+
+ """
+ def __init__(self):
+ self._data = []
+
+ def schedule_activity_task(self,
+ activity_id,
+ activity_type_name,
+ activity_type_version,
+ task_list=None,
+ control=None,
+ heartbeat_timeout=None,
+ schedule_to_close_timeout=None,
+ schedule_to_start_timeout=None,
+ start_to_close_timeout=None,
+ input=None):
+ """
+ Schedules an activity task.
+
+ :type activity_id: string
+ :param activity_id: The activityId of the type of the activity
+ being scheduled.
+
+ :type activity_type_name: string
+ :param activity_type_name: The name of the type of the activity
+ being scheduled.
+
+ :type activity_type_version: string
+ :param activity_type_version: The version of the type of the
+ activity being scheduled.
+
+ :type task_list: string
+ :param task_list: If set, specifies the name of the task list in
+ which to schedule the activity task. If not specified, the
+ defaultTaskList registered with the activity type will be used.
+ Note: a task list for this activity task must be specified either
+ as a default for the activity type or through this field. If
+ neither this field is set nor a default task list was specified
+ at registration time then a fault will be returned.
+ """
+ o = {}
+ o['decisionType'] = 'ScheduleActivityTask'
+ attrs = o['scheduleActivityTaskDecisionAttributes'] = {}
+ attrs['activityId'] = activity_id
+ attrs['activityType'] = {
+ 'name': activity_type_name,
+ 'version': activity_type_version,
+ }
+ if task_list is not None:
+ attrs['taskList'] = {'name': task_list}
+ if control is not None:
+ attrs['control'] = control
+ if heartbeat_timeout is not None:
+ attrs['heartbeatTimeout'] = heartbeat_timeout
+ if schedule_to_close_timeout is not None:
+ attrs['scheduleToCloseTimeout'] = schedule_to_close_timeout
+ if schedule_to_start_timeout is not None:
+ attrs['scheduleToStartTimeout'] = schedule_to_start_timeout
+ if start_to_close_timeout is not None:
+ attrs['startToCloseTimeout'] = start_to_close_timeout
+ if input is not None:
+ attrs['input'] = input
+ self._data.append(o)
+
+ def request_cancel_activity_task(self, activity_id):
+ """
+ Attempts to cancel a previously scheduled activity task. If
+ the activity task was scheduled but has not been assigned to a
+ worker, then it will be canceled. If the activity task was
+ already assigned to a worker, then the worker will be informed
+ that cancellation has been requested in the response to
+ RecordActivityTaskHeartbeat.
+ """
+ o = {}
+ o['decisionType'] = 'RequestCancelActivityTask'
+ attrs = o['requestCancelActivityTaskDecisionAttributes'] = {}
+ attrs['activityId'] = activity_id
+ self._data.append(o)
+
+ def record_marker(self, marker_name, details=None):
+ """
+ Records a MarkerRecorded event in the history. Markers can be
+ used for adding custom information in the history for instance
+ to let deciders know that they do not need to look at the
+ history beyond the marker event.
+ """
+ o = {}
+ o['decisionType'] = 'RecordMarker'
+ attrs = o['recordMarkerDecisionAttributes'] = {}
+ attrs['markerName'] = marker_name
+ if details is not None:
+ attrs['details'] = details
+ self._data.append(o)
+
+ def complete_workflow_execution(self, result=None):
+ """
+ Closes the workflow execution and records a WorkflowExecutionCompleted
+ event in the history
+ """
+ o = {}
+ o['decisionType'] = 'CompleteWorkflowExecution'
+ attrs = o['completeWorkflowExecutionDecisionAttributes'] = {}
+ if result is not None:
+ attrs['result'] = result
+ self._data.append(o)
+
+ def fail_workflow_execution(self, reason=None, details=None):
+ """
+ Closes the workflow execution and records a
+ WorkflowExecutionFailed event in the history.
+ """
+ o = {}
+ o['decisionType'] = 'FailWorkflowExecution'
+ attrs = o['failWorkflowExecutionDecisionAttributes'] = {}
+ if reason is not None:
+ attrs['reason'] = reason
+ if details is not None:
+ attrs['details'] = details
+ self._data.append(o)
+
+ def cancel_workflow_executions(self, details=None):
+ """
+ Closes the workflow execution and records a WorkflowExecutionCanceled
+ event in the history.
+ """
+ o = {}
+ o['decisionType'] = 'CancelWorkflowExecution'
+ attrs = o['cancelWorkflowExecutionsDecisionAttributes'] = {}
+ if details is not None:
+ attrs['details'] = details
+ self._data.append(o)
+
+ def continue_as_new_workflow_execution(self,
+ child_policy=None,
+ execution_start_to_close_timeout=None,
+ input=None,
+ tag_list=None,
+ task_list=None,
+ start_to_close_timeout=None,
+ workflow_type_version=None):
+ """
+ Closes the workflow execution and starts a new workflow execution of
+ the same type using the same workflow id and a unique run Id. A
+ WorkflowExecutionContinuedAsNew event is recorded in the history.
+ """
+ o = {}
+ o['decisionType'] = 'ContinueAsNewWorkflowExecution'
+ attrs = o['continueAsNewWorkflowExecutionDecisionAttributes'] = {}
+ if child_policy is not None:
+ attrs['childPolicy'] = child_policy
+ if execution_start_to_close_timeout is not None:
+ attrs['executionStartToCloseTimeout'] = execution_start_to_close_timeout
+ if input is not None:
+ attrs['input'] = input
+ if tag_list is not None:
+ attrs['tagList'] = tag_list
+ if task_list is not None:
+ attrs['taskList'] = {'name': task_list}
+ if start_to_close_timeout is not None:
+ attrs['startToCloseTimeout'] = start_to_close_timeout
+ if workflow_type_version is not None:
+ attrs['workflowTypeVersion'] = workflow_type_version
+ self._data.append(o)
+
+ def start_timer(self,
+ start_to_fire_timeout,
+ timer_id,
+ control=None):
+ """
+ Starts a timer for this workflow execution and records a TimerStarted
+ event in the history. This timer will fire after the specified delay
+ and record a TimerFired event.
+ """
+ o = {}
+ o['decisionType'] = 'StartTimer'
+ attrs = o['startTimerDecisionAttributes'] = {}
+ attrs['startToFireTimeout'] = start_to_fire_timeout
+ attrs['timerId'] = timer_id
+ if control is not None:
+ attrs['control'] = control
+ self._data.append(o)
+
+ def cancel_timer(self, timer_id):
+ """
+ Cancels a previously started timer and records a TimerCanceled
+ event in the history.
+ """
+ o = {}
+ o['decisionType'] = 'CancelTimer'
+ attrs = o['cancelTimerDecisionAttributes'] = {}
+ attrs['timerId'] = timer_id
+ self._data.append(o)
+
+ def signal_external_workflow_execution(self,
+ workflow_id,
+ signal_name,
+ run_id=None,
+ control=None,
+ input=None):
+ """
+ Requests a signal to be delivered to the specified external workflow
+ execution and records a SignalExternalWorkflowExecutionInitiated
+ event in the history.
+ """
+ o = {}
+ o['decisionType'] = 'SignalExternalWorkflowExecution'
+ attrs = o['signalExternalWorkflowExecutionDecisionAttributes'] = {}
+ attrs['workflowId'] = workflow_id
+ attrs['signalName'] = signal_name
+ if run_id is not None:
+ attrs['runId'] = run_id
+ if control is not None:
+ attrs['control'] = control
+ if input is not None:
+ attrs['input'] = input
+ self._data.append(o)
+
+ def request_cancel_external_workflow_execution(self,
+ workflow_id,
+ control=None,
+ run_id=None):
+ """
+ Requests that a request be made to cancel the specified
+ external workflow execution and records a
+ RequestCancelExternalWorkflowExecutionInitiated event in the
+ history.
+ """
+ o = {}
+ o['decisionType'] = 'RequestCancelExternalWorkflowExecution'
+ attrs = o['requestCancelExternalWorkflowExecutionDecisionAttributes'] = {}
+ attrs['workflowId'] = workflow_id
+ if control is not None:
+ attrs['control'] = control
+ if run_id is not None:
+ attrs['runId'] = run_id
+ self._data.append(o)
+
+ def start_child_workflow_execution(self,
+ workflow_type_name,
+ workflow_type_version,
+ workflow_id,
+ child_policy=None,
+ control=None,
+ execution_start_to_close_timeout=None,
+ input=None,
+ tag_list=None,
+ task_list=None,
+ task_start_to_close_timeout=None):
+ """
+ Requests that a child workflow execution be started and
+ records a StartChildWorkflowExecutionInitiated event in the
+ history. The child workflow execution is a separate workflow
+ execution with its own history.
+ """
+ o = {}
+ o['decisionType'] = 'StartChildWorkflowExecution'
+ attrs = o['startChildWorkflowExecutionDecisionAttributes'] = {}
+ attrs['workflowType'] = {
+ 'name': workflow_type_name,
+ 'version': workflow_type_version,
+ }
+ attrs['workflowId'] = workflow_id
+ if child_policy is not None:
+ attrs['childPolicy'] = child_policy
+ if control is not None:
+ attrs['control'] = control
+ if execution_start_to_close_timeout is not None:
+ attrs['executionStartToCloseTimeout'] = execution_start_to_close_timeout
+ if input is not None:
+ attrs['input'] = input
+ if tag_list is not None:
+ attrs['tagList'] = tag_list
+ if task_list is not None:
+ attrs['taskList'] = {'name': task_list}
+ if task_start_to_close_timeout is not None:
+ attrs['taskStartToCloseTimeout'] = task_start_to_close_timeout
+ self._data.append(o)

Powered by Google App Engine
This is Rietveld 408576698