public void RegisterWorkflow(string name) { var listWorkflowRequest = new ListWorkflowTypesRequest() { Name = name, Domain = domainName, RegistrationStatus = RegistrationStatus.REGISTERED }; var results = swfClient.ListWorkflowTypesAsync(listWorkflowRequest).Result; if (results.WorkflowTypeInfos.TypeInfos.FirstOrDefault(x => x.WorkflowType.Name == name) == null) { RegisterWorkflowTypeRequest request = new RegisterWorkflowTypeRequest() { DefaultChildPolicy = ChildPolicy.TERMINATE, DefaultExecutionStartToCloseTimeout = "350", DefaultTaskList = new TaskList() { Name = deciderPollingKey }, DefaultTaskStartToCloseTimeout = "150", Domain = domainName, Name = name, Version = "1.0" }; swfClient.RegisterWorkflowTypeAsync(request); Console.WriteLine("Registerd Workflow: " + request.Name); } }
static void RegisterWorkflow(string name) { // Register workflow type if not already registered var listWorkflowRequest = new ListWorkflowTypesRequest() { Name = name, Domain = domainName, RegistrationStatus = RegistrationStatus.REGISTERED }; if (swfClient.ListWorkflowTypes(listWorkflowRequest).WorkflowTypeInfos.TypeInfos.FirstOrDefault( x => x.WorkflowType.Version == "2.0") == null) { RegisterWorkflowTypeRequest request = new RegisterWorkflowTypeRequest() { DefaultChildPolicy = ChildPolicy.TERMINATE, DefaultExecutionStartToCloseTimeout = "300", DefaultTaskList = new TaskList() { Name = "HelloWorld" // Decider need to poll for this task }, DefaultTaskStartToCloseTimeout = "150", Domain = domainName, Name = name, Version = "2.0" }; swfClient.RegisterWorkflowType(request); Console.WriteLine("Setup: Registerd Workflow Name - " + request.Name); } }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonSimpleWorkflowConfig config = new AmazonSimpleWorkflowConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonSimpleWorkflowClient client = new AmazonSimpleWorkflowClient(creds, config); WorkflowTypeInfos resp = new WorkflowTypeInfos(); do { ListWorkflowTypesRequest req = new ListWorkflowTypesRequest { NextPageToken = resp.NextPageToken , MaximumPageSize = maxItems }; resp = client.ListWorkflowTypes(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.TypeInfos) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextPageToken)); }
private async Task CreateWorkflowType() { //Get the list of workflow types for the specified domain ListWorkflowTypesRequest listWorkflowRequest = new ListWorkflowTypesRequest() { Domain = this.SwfConfiguration.DomainName, Name = this.SwfConfiguration.WorkflowName, RegistrationStatus = RegistrationStatus.REGISTERED }; ListWorkflowTypesResponse listWorkflowTypesResponse = await this.SwfClient.ListWorkflowTypesAsync(listWorkflowRequest); //Check if our activity exists if (listWorkflowTypesResponse.WorkflowTypeInfos.TypeInfos.Count > 0) { return; } //If doesn't exist -> create RegisterWorkflowTypeRequest registerWorkflowTypeRequest = new RegisterWorkflowTypeRequest() { DefaultChildPolicy = ChildPolicy.TERMINATE, DefaultExecutionStartToCloseTimeout = this.SwfConfiguration.ExecutionStartToCloseTimeout, DefaultTaskList = new TaskList() { Name = this.SwfConfiguration.ActivityTasksList }, DefaultTaskStartToCloseTimeout = this.SwfConfiguration.TaskStartToCloseTimeout, Domain = this.SwfConfiguration.DomainName, Name = this.SwfConfiguration.WorkflowName, Version = this.SwfConfiguration.WorkflowVersion }; await this.SwfClient.RegisterWorkflowTypeAsync(registerWorkflowTypeRequest); }
private async Task <IEnumerable <WorkflowTypeInfo> > ListWorkflowsFromAmazonBy(string workflowName) { var listRequest = new ListWorkflowTypesRequest(); listRequest.Name = workflowName; listRequest.Domain = _name; listRequest.MaximumPageSize = 1000; listRequest.RegistrationStatus = RegistrationStatus.REGISTERED; var response = await _simpleWorkflowClient.ListWorkflowTypesAsync(listRequest); return(response.WorkflowTypeInfos.TypeInfos); }
private string GetLatestWorkflowTypeVersion() { var request = new ListWorkflowTypesRequest { Domain = Constants.SWF_DOMAIN, Name = Constants.SWF_WORKFLOW_TYPE_NAME, RegistrationStatus = RegistrationStatus.REGISTERED }; var listResponse = _instance._swfClient.ListWorkflowTypesAsync(request).Result; return(listResponse.WorkflowTypeInfos.TypeInfos[0].WorkflowType.Version); }
static void RegisterWorkflow(string name) { // Register workflow type if not already registered var listWorkflowRequest = new ListWorkflowTypesRequest() { Name = name, Domain = domainName, RegistrationStatus = RegistrationStatus.REGISTERED }; if (SwfClient.ListWorkflowTypes(listWorkflowRequest) .WorkflowTypeInfos .TypeInfos .FirstOrDefault(x => x.WorkflowType.Version == "2.0") == null) { var request = new RegisterWorkflowTypeRequest() { DefaultChildPolicy = ChildPolicy.TERMINATE, DefaultExecutionStartToCloseTimeout = "300", DefaultTaskList = new TaskList() { Name = "SwfDemo" // Decider need to poll for this task }, DefaultTaskStartToCloseTimeout = "150", Domain = domainName, Name = name, Version = "2.0" }; try { } catch (TypeAlreadyExistsException tex) { SwfClient.RegisterWorkflowType(request); } Console.WriteLine($"INITIATOR: Registerd Workflow Name - {request.Name}"); } }
public static string GetServiceOutput() { var sb = new StringBuilder(1024); using (var sr = new StringWriter(sb)) { sr.WriteLine("==============================="); sr.WriteLine("| AWS Simple Workflow Service |"); sr.WriteLine("==============================="); try { // Print the available domains, workflows and activities. Region endpoint depends on where // you chose to set up your workflow domain var swfClient = new AmazonSimpleWorkflowClient(RegionEndpoint.USWest2); sr.WriteLine(); var listDomainRequest = new ListDomainsRequest { RegistrationStatus = "REGISTERED" }; var listDomainResponse = swfClient.ListDomains(listDomainRequest); foreach (var domain in listDomainResponse.DomainInfos.Infos) { sr.WriteLine("[" + domain.Name + "]"); sr.WriteLine("status: " + domain.Status); sr.WriteLine("description: " + domain.Description); sr.WriteLine("\n WORKFLOWS"); var listWorkflowRequest = new ListWorkflowTypesRequest { Domain = domain.Name, RegistrationStatus = "REGISTERED" }; var listWorkflowTypesResponse = swfClient.ListWorkflowTypes(listWorkflowRequest); foreach ( var workflow in listWorkflowTypesResponse.WorkflowTypeInfos.TypeInfos) { sr.WriteLine(" [" + workflow.WorkflowType.Name + "] (" + workflow.WorkflowType.Version + ") " + workflow.Status); sr.WriteLine(" creation: " + workflow.CreationDate); sr.WriteLine(" deprecation: " + workflow.DeprecationDate); sr.WriteLine(" description:" + TrimStringToLength(workflow.Description, 60, "", " ")); sr.WriteLine(); } sr.WriteLine("\n ACTIVITIES"); var listActivityRequest = new ListActivityTypesRequest { Domain = domain.Name, RegistrationStatus = "REGISTERED" }; var listActivityResponse = swfClient.ListActivityTypes(listActivityRequest); foreach ( var activity in listActivityResponse.ActivityTypeInfos.TypeInfos) { sr.WriteLine(" [" + activity.ActivityType.Name + "] (" + activity.ActivityType.Version + ") " + activity.Status); sr.WriteLine(" creation: " + activity.CreationDate); sr.WriteLine(" deprecation: " + activity.DeprecationDate); sr.WriteLine(" description:" + TrimStringToLength(activity.Description, 60, "", " ")); sr.WriteLine(); } } } catch (AmazonSimpleWorkflowException ex) { if (ex.ErrorCode != null && ex.ErrorCode.Equals("AuthFailure")) { sr.WriteLine("The account you are using is not signed up for Amazon SWF."); sr.WriteLine("You can sign up for Amazon SWF at http://aws.amazon.com/swf"); } else { sr.WriteLine("Caught Exception: " + ex.Message); sr.WriteLine("Response Status Code: " + ex.StatusCode); sr.WriteLine("Error Code: " + ex.ErrorCode); sr.WriteLine("Error Type: " + ex.ErrorType); sr.WriteLine("Request ID: " + ex.RequestId); sr.WriteLine("Data: " + ex.Data); sr.WriteLine("Stacktrace: " + ex.StackTrace); } } sr.WriteLine(); } return(sb.ToString()); }