Skip to content
This repository has been archived by the owner on Dec 9, 2020. It is now read-only.

Latest commit

 

History

History
100 lines (78 loc) · 3.43 KB

cwf_process.markdown

File metadata and controls

100 lines (78 loc) · 3.43 KB
layout page_title sidebar_current description
rightscale
Rightscale: CWF Process
docs-rightscale-resource-cwf_process
Create and maintain a RightScale CloudWorkFlow process.

rightscale_cwf_process

Use this resource to create or destroy RightScale CloudWorkFlow processes.

Creating the CWF process runs it synchronously and returns the output values (if any). If the CWF process fails, the Terraform script fails too.

Destroying the resource deletes the corresponding CWF process. Destroying a running process causes it to end in error.

It is NOT possible to update a CWF process.

Example Usage

This example CWF process looks for all servers whose names start with "db-slave-" and executes the specified RightScript on them, returning the number of servers that have been affected.

resource "rightscale_cwf_process" "run_executable_by_prefix" {

  parameters = [
     { "kind" = "string"
       "value" = "db-slave-" },
     { "kind" = "string"
       "value" = "/api/right_scripts/1018361003" }
     ]

  source = <<EOF
define main($instance_prefix, $rightscript_href) return $instances_affected do
  @instances = rs_cm.instances.get(filter: ["name==" + $instance_prefix, "state==operational"])
  @instances.run_executable(right_script_href: $rightscript_href)
  $instances_affected = size(@instances)
end
EOF

}

output "cwf_status" {
  value = "${rightscale_cwf_process.run_executable_by_prefix.status}"
}

output "cwf_servers_affected" {
  value = "${rightscale_cwf_process.run_executable_by_prefix.outputs["$instances_affected"]}"
}

Argument Reference

The following arguments are supported:

  source = <<EOF
define adder($n1, $n2) return $res do
  $res = $n1 + $n2
end
define main($a, $b) return $result do
  call adder($a, $b) retrieve $tmp
  $result = "The total is " + $tmp
end
EOF
  • parameters - Parameters for the RCL function. It consists of an array of values corresponding to the values being passed to the function defined in the "source" field in order of declaration. The values are defined as string maps with the "kind" and "value" keys. "kind" contains the type of the value being passed, could be one of "array", "boolean", "collection", "datetime", "declaration", "null", "number", "object", "string". The "value" key contains the value For example:
  parameters = [
     { "kind" = "string"
       "value" = "db-slave-" },
     { "kind" = "number"
       "value" = "42" }
     ]

Note that the "value" key should always be a string (regardless of the type specified in "kind"). These are several examples on how to pass arrays:

  parameters = [
     { "kind"  = "array"
       "value" = "[ 22.3, 9.7, 10 ]" },
     { "kind"  = "array"
       "value" = "[ \"It\", \" works!\" ]" },
     { "kind"  = "array"
       "value" = "${jsonencode(var.zones)}" },
     ]

Attributes Reference

The following attributes are exported:

  • status - Process status, one of "completed", "failed", "canceled" or "aborted".

  • error - Process execution error if any.

  • outputs - Process outputs if any. This is a TypeMap, one particular output can be accessed via outputs["$var"], see "Example Usage" section.