Skip to main content
System StatusContact Support
VersionOne Community

Continuum Automate Task Development

This feature is available in Ultimate edition only.

editions-u.png

Overview

This page covers various Task development topics and assumes that you have gone through the Getting Started section and Task Overview pages.

A Task is an automation routine that performs work on 'assets' in the cloud or on the local network. Tasks can interact directly with APIs of supported virtualization platforms such as Amazon AWS, VMWare, Eucalyptus and OpenStack. Within the cloud or on the local network, Tasks can interact with virtually any software system: operating systems, databases, applications, and so on.

A Task performs this work using a fairly consistent workflow:

  • connecting to one or more 'assets' (real or virtual)

  • interacting with that asset, either gathering, pushing or manipulating data.

  • interacting with virtualization platform APIs if needed

Pages for creating and managing Tasks can be accessed from the top menu by selecting Tasks from the top Admin menu (cog wheel).

Creating a New Task

To create a new Task, simply click Add New Tasks at the top of the Manage Tasks page. A New Task dialog box appears requesting the following information:

  • Team - the team for which the task is being created. Select a team from the drop-down list.

  • Task Code (required) - a short code used to uniquely identify the Task. The code can be no longer than 32 characters. The code is a useful organizational mechanism.

  • Task Name (required) - a unique name for the Task. The name can be up to 256 characters long, and should be a clear and concise identifier.

  • Description (optional) - The description can be as long as necessary to fully describe the purpose of the Task.

Complete the required fields and select Save. After a few seconds the screen will refresh and your new Task will appear in editing mode.

Determine and implement a suitable best practice naming convention for your Tasks. Once you have a few hundred, things can get messy if you don't think ahead!

Adding Commands

Tasks perform their work by following a series of Commands, or 'Steps'. A complete library of Commands exists for interacting with a virtualization platform APIs, managing connections, interacting with systems, manipulating variables, controlling flow logic, logging information, and sending alerts. While there are many Command types, building a Task is an identical process regardless of the actual Command types used.

For a complete tutorial of all Command Types, see Command Reference.

The Task Editor uses drag and drop editing. Notice the main section of the page, on the right hand side. The Name of the Task appears at the top of the page. Below that appears a list of Commands, or Steps. If this is a new Task, a small bordered area contains the text "No Commands have been defined in this Codeblock. Drag a Command here to add it." This is the drop zone for adding a Command.

If Commands already exist, you can drop a new Command above, below, or in between any existing Commands. When a Task runs, Commands are executed in the order that they appear, except when a looping, conditional, or Subtask type of Command affects the flow of logic.

To add a Command, select the Commands tab from the toolbox on the upper left side of the screen. The toolbox panel will change and present options.

  1. Commands are grouped into categories. A list of Categories will appear in the toolbox. There are many Categories, and more can be added via the Extensions module.

  2. Upon selection, a list of Commands in that Category will appear.

  3. Grab a Command with your mouse, and drag it over the drop zone on the right side of the page. A blank area will appear, indicating you can drop the command.

  4. Notice each Command has one or more properties to be completed. Many Commands contain required properties. An indicator will identify required fields.

Codeblocks

A Codeblock is a subset of Commands within a Task. Those familiar with procedural programming languages can think of a Codeblock as a subroutine or function.

Tasks have several Commands for controlling flow logic, such as If and Loop. In cases where this conditional or iterative logic would need to execute several Commands, a Codeblock is a perfect solution. If a sequence of commands should be executed a number of times, put those commands in a Codeblock used with a Loop. If the Commands should be executed only if a certain condition is true (or false), organize them into a Codeblock used with an If.

By default, every Task has a MAIN Codeblock. This Codeblock cannot be deleted. Additionally, if there is more than one Codeblock on a Task, the MAIN Codeblock will always be executed first.

To create a new Codeblock, hover over the Codeblock name at the top of the Editor and click the Add New button.

  • Enter a Codeblock name in the field and click the Add button.

A new Codeblock is added. Focus of the Command list is changed to the new Codeblock. Commands can now be added to the new Codeblock.

  • To remove an existing Codeblock, click the [x] icon to the right of the Codeblock name. A confirmation dialog will appear. Click Delete to remove the Codeblock. The page will refresh with focus on the MAIN Codeblock.

 Grab a Codeblock from the selector and drop it on the Step editor to create a Codeblock command!

Task Details

The Details tab in the toolbox shows the basic details of the Task, including Code, Name, and Description. These fields can be changed at any time on a Task that is still in development status.

The Task Name can be changed.

From the Details tab, you may also open a print friendly version of the Task. This is often useful for review purposes. The printable version is one of the few ways to see the entire body of code for a Task, including all Codeblocks and Commands.

From the Details tab, you may additionally view the Change Log for the Task. The Change Log shows a history of important changes that occurred through the development life cycle of this Task.

Task editing is dynamic, meaning all changes are saved as you work. There is no "Save" button. Additionally, there is no "Undo" functionality, so care should be taken when making complex changes.

Task Status

When first created, a Task is by default in "Development" status. While in Development status, changes to the Task are allowed.

When a Task is ready, and the approval process has been completed, the Task can be moved to the "Approved" status.

To Approve a Task:

  1. Select the task.

  2. Click the Approve button. A confirmation dialog will appear. Be aware, this process cannot be undone. Once approved, a Task can never again be edited, or reset back into a development status.

  3. The page will refresh into a read-only view of the Approved Task. Changes to the code are no longer allowed.

 

Task Parameters

Parameters are variable data that can optionally be made available to a Task, and can be changed after a Task has become approved. For example, a Task may be set to gather data and compare to a specific threshold. If that threshold is hard-coded in the Task, a code change would be required to change the threshold value. By using a Parameter, the threshold can be changed at any time.

Parameters can also be provided through the REST API. When an external process initiates a Task, Parameters can be specified.

Within the code of a Task, Parameters are referenced as any other variable, by surrounding them with the escape notation, [$parameter_name$].

To add a new Parameter to a Task, click the Parameters tab in the toolbox.

  1. Click the link labeled "+ Click to Add". A dialog will appear.

  2. Enter a Name and optional Description for the Parameter.

  3. Several options exist for a Parameter:

  • Required - Will highlight the Parameter and insist the user provide a value.

  • Prompt - If selected, the Parameter is available to the user, otherwise this is a 'hidden' parameter.

  • Encrypt - If selected, data entered will be encrypted in the database, and will not be editable later - only replaceable.

    1. A Parameter can be presented as a:

    2. Value - a single value field.

    3. List - an array of one or more values.

    4. Dropdown - a list of values, only one can be selected.

  • A Parameter should have at least one value. Click the link labeled "+ click to add another" to add a value to the Parameter. You may add as many values as needed. Note: If multiple values are added to a single Parameter, the parameter variable will be treated as an array.

  • When finished defining the Parameter, click the Add button.

To remove an existing Parameter, click the [x] icon beside the Parameter name in the list on the Parameters tab.

Finding Tasks

The primary page for dealing with Tasks is the Manage Tasks page. Access it from the top menu by selecting Tasks > Manage Tasks.

This page shows a sortable, pagable list of all the Tasks defined in the system. To quickly filter the list, or to find a specific Task, simply type some text in the box at the top of the page and click Search.

The Task list will update with Tasks matching your search criteria.

Search criteria on the Manage Tasks page will match any of the following properties of a Task: Code, Name, Description or Status.

Advanced Task Search

Tasks can also be searched for text that exists in the properties of the Commands themselves. From the top menu, select Tasks -> Search.

Enter the desired search text into the box and click Search. A list of results will identify the Task, Codeblock and Command where the match was found, as well as a snippet from the code.

Copying Tasks

Tasks can be copied from the Manage Tasks page on the top menu by selecting Tasks -> Manage Tasks.

  1. Using the check boxes on the left hand side of the Task list, select only one Task to be copied. (If you select more than one Task, only the first one selected will be copied.)

  2. Click Copy. A confirmation will appear showing the name of the Task being copied, and requesting information:

    • New Task Code - the code for the new Task

    • New Task Name - the name for the new Task

  3. Click Copy. The Task will be copied and you will be returned to the Manage Tasks page.

 

Deleting Tasks

Tasks can be deleted from the Manage Tasks page on the top menu by selecting Tasks -> Manage Tasks.

  1. Using the check boxes on the left hand side of the Task list, select one or more Tasks to be deleted.
  2. Click the Delete button. A confirmation will appear. Click the Delete button.
  3. The Task(s) will be deleted and you will be returned to the Manage Tasks page.

Scheduled Action Plans, if any, are also removed when you delete a task. Deleting a Task cannot be undone.

Task Activity Log

Tasks can be executed by multiple users as well as schedules. The Task Activity Log page provides visibility into the status of all Tasks, regardless of how or by whom they were started.

The Task Activity Log can be accessed from the top menu by selecting Information -> View Task Status

When a Task is run, it creates a record of that execution called a Task Instance. Every Task Instance has a numeric, ascending identifier. By default, the Activity Log is sorted with the most recent Instances at the top.

The Activity Log can be filtered and sorted, and shows helpful information such as how the Task was started, when and how long it ran, current status, and the Asset if relevant.

Click on a row in the Activity Log to view the detail Run Log for a specific Task Instance. Click the edit icon at the end of the line to jump into the editor for that Task.

Other Reading