o ckF[3@sdZddlZddlmZddlmZddlmZdddZddZ Gd d d e Z Gd d d e Z Gd dde Z Gddde ZGddde ZGddde ZGddde ZGddde ZdS)z@Object-oriented interface to SWF wrapping boto.swf.layer1.Layer1N)wraps)Layer1)Layer1Decisionsaws_access_key_idaws_secret_access_keycCst||ddS)zSet default credentials.rN)DEFAULT_CREDENTIALSupdaterr 1/usr/lib/python3/dist-packages/boto/swf/layer2.pyset_default_credentials s r c@s0eZdZdZdZdZdZdZddZddZ dS)SWFBaseNcKsXdD]}t|rt||t|q|D] }t||||qt|j|j|jd|_dS)Nr)region)rgetsetattrrrrr_swf)selfkwargscredkeykwargr r r __init__s  zSWFBase.__init__cCs@t|j}t|dr|dtt|d7}d|jj|t|fS)Nversion-z<%s %r at 0x%x>)strnamehasattrgetattr __class____name__id)rrep_strr r r __repr__)s  zSWFBase.__repr__) r __module__ __qualname__rdomainrrrrr!r r r r r s r c@seZdZdZdZdZeejddZ eej ddZ eej dd Z eejdd d Zeejdd dZdddZeejddZeejddZdS)DomainzSimple Workflow Domain.NcCs|j|jS)zDescribeDomain.)rdescribe_domainrrr r r describe5szDomain.describecCs|j|jdS)DeprecateDomainN)rdeprecate_domainrr(r r r deprecate:szDomain.deprecatecCs|j|jt|j|jdS)zRegisterDomain.N)rregister_domainrr retention descriptionr(r r r register?szDomain.register REGISTEREDcKv|jj|j|fi|}g}|dD]&}|d}|d=||||j|j|j|jd|tdi|q|S)zListActivityTypes. typeInfos activityTyperrr$rNr ) rlist_activity_typesrr rrrappend ActivityType)rstatusr act_types act_objectsact_args act_identr r r activitiesEs  zDomain.activitiescKr2)zListWorkflowTypes.r3 workflowTyper5Nr ) rlist_workflow_typesrr rrrr7 WorkflowType)rr9rwf_types wf_objectswf_argswf_identr r r workflowsWs  zDomain.workflowsFcKs|r|jj|jfi|}nd|vrtd|d<|jj|jfi|}g}|dD]+}dD]}||}||=||q/||j|j|j|jd| t di|q+|S)zList list open/closed executions. For a full list of available parameters refer to :py:func:`boto.swf.layer1.Layer1.list_closed_workflow_executions` and :py:func:`boto.swf.layer1.Layer1.list_open_workflow_executions` oldest_dateiQexecutionInfos) executionr?r5Nr ) rlist_closed_workflow_executionsrtimelist_open_workflow_executionsr rrrr7WorkflowExecution)rclosedr executions exe_objectsexe_args nested_key nested_dictr r r rOjs.  zDomain.executionscC|j|j|S)zCountPendingActivityTasks.)rcount_pending_activity_tasksrr task_listr r r rUz#Domain.count_pending_activity_taskscCrT)zCountPendingDecisionTasks.)rcount_pending_decision_tasksrrVr r r rYrXz#Domain.count_pending_decision_tasks)r1)F)rr"r#__doc__r/r.rrr'r)r+r,r-r0r6r>r@rFrOrUrYr r r r r%/s&      ! r%c@s eZdZdZdZdZddZdS)ActorNcCst)zTo be overloaded by subclasses.)NotImplementedErrorr(r r r runsz Actor.run)rr"r#rWlast_tasktokenr$r]r r r r r[s  r[c@sreZdZdZeejd ddZeejd ddZ eej dddZ eej d d d Z eejd d ZdS)ActivityWorkerz/Base class for SimpleWorkflow activity workers.NcC|dur|j}|j||S)zRespondActivityTaskCanceled.N)r^rrespond_activity_task_canceledr task_tokendetailsr r r cancelzActivityWorker.cancelcCr`)zRespondActivityTaskCompleted.N)r^rrespond_activity_task_completed)rrcresultr r r completerfzActivityWorker.completecCs|dur|j}|j|||S)zRespondActivityTaskFailed.N)r^rrespond_activity_task_failed)rrcrdreasonr r r fails  zActivityWorker.failcCr`)zRecordActivityTaskHeartbeat.N)r^rrecord_activity_task_heartbeatrbr r r heartbeatrfzActivityWorker.heartbeatcKF|j}d|vr|d}|d=|jj|j|fi|}|d|_|S)zPollForActivityTask.rW taskToken)rWrrpoll_for_activity_taskr$r^)rrrWtaskr r r poll  zActivityWorker.pollNN)NNN)rr"r#rZrrrarergrirjrlrmrnrqrsr r r r r_s    r_c@s6eZdZdZeejdddZeejddZ dS)Deciderz'Base class for SimpleWorkflow deciders.NcKs4t|tr|j}|dur|j}|jj||fi|S)zRespondDecisionTaskCompleted.N) isinstancer_datar^rrespond_decision_task_completed)rrc decisionsrr r r ris zDecider.completecKro)zPollForDecisionTask.rWrp)rWrrpoll_for_decision_taskr$r^)rrrW decision_taskr r r rsrtz Decider.pollru) rr"r#rZrrryrir{rsr r r r rvs   rvc@sdeZdZdZdZdZdZeej ddZ eej ddZ eej dd Zeejd d ZdS) rAzA versioned workflow type.N TERMINATEcC|j|j|j|jS)zDescribeWorkflowType.)rdescribe_workflow_typer$rrr(r r r r)zWorkflowType.describecKs8dddd}|||jj|j|j|jfi|dS)zRegisterWorkflowType.3600300r})(default_execution_start_to_close_timeout#default_task_start_to_close_timeoutdefault_child_policyN)r rregister_workflow_typer$rrrrargsr r r r0s  zWorkflowType.registercCs|j|j|j|jdS)zDeprecateWorkflowType.N)rdeprecate_workflow_typer$rrr(r r r r,szWorkflowType.deprecatec Ksd|vr |d}|d=n d|j|jtf}dD] }||t||||<q|jj|j||j|jfi|d}t|j|j||j||j |j dS)zStartWorkflowExecution. workflow_idz%s-%s-%i)rW child_policyrunId)rrrr$ workflowIdrr) rrrKrrrstart_workflow_executionr$rMrr)rrrdef_attrrun_idr r r starts$  zWorkflowType.start)rr"r#rZrrWrrrrr)rr0rr,rrr r r r rAs   rAc@sreZdZdZdZdZeejddZ eej ddZ eej ddZ eejd d Zeejd d ZdS) rMzAn instance of a workflow.NcKs |jj|j||jfi|dS)zSignalWorkflowExecution.N)rsignal_workflow_executionr$r)rsignamerr r r signals  zWorkflowExecution.signalcKs|jj|j|jfi|S)z$TerminateWorkflowExecution (p. 103).)rterminate_workflow_executionr$rrrr r r terminate%s zWorkflowExecution.terminatecKs"|jj|j|j|jfi|dS)zGetWorkflowExecutionHistory.events)rget_workflow_execution_historyr$rrrr r r history+szWorkflowExecution.historycCr~)zDescribeWorkflowExecution.)rdescribe_workflow_executionr$rrr(r r r r)1rzWorkflowExecution.describecCr~)zRequestCancelWorkflowExecution.)r!request_cancel_workflow_executionr$rrr(r r r request_cancel7s z WorkflowExecution.request_cancel)rr"r#rZrrrrrrrrrrrr)rrr r r r rMs    rMc@sJeZdZdZdZeejddZeej ddZ eej ddZ dS) r8zA versioned activity type.NcCr~)zDeprecateActivityType.)rdeprecate_activity_typer$rrr(r r r r,DrzActivityType.deprecatecCr~)zDescribeActivityType.)rdescribe_activity_typer$rrr(r r r r)JrzActivityType.describecKs:ddddd}|||jj|j|j|jfi|dS)zRegisterActivityType.6003900rr)default_task_heartbeat_timeout&default_task_schedule_to_close_timeout&default_task_schedule_to_start_timeoutrN)r rregister_activity_typer$rrrr r r r0Ps  zActivityType.register) rr"r#rZrrrrr,rr)rr0r r r r r8>s  r8)rZrK functoolsrboto.swf.layer1rboto.swf.layer1_decisionsrrr objectr r%r[r_rvrArMr8r r r r s"   g -0&