Fork me on GitHub

Command Line Interface

hc utility

Console utility, called hc is a part of the HSN 2.0 system. It can be used to manage and monitor HSN from a command-line. While it may look less appealing, its functionality supersedes that of a Web UI. hc also contains help text, which can be accessed using -h or --help switch at the end.

General information

hc can be used with a number of subcommands. Each of them can either be used by its long name (e.g. job) or by its shortcut (e.g. j - letter in bold in the tables below). Subcommand also have its help text, which can be retrieved by using the -h or --help switch. These subcommands are:


Job management and monitoring: submitting, detailed information and list.


Workflow management: sending, retrieving and getting status information.


Configuration management.


Checking framework status.

Job management and monitoring

To perform job related command write hc job <subcommand> <parameters> (or hc j <subcommand> <parameters>). Available subcommands are:


Lists all jobs that started since the last framework startup.

details <job_id>

Prints details about a job present on a job list.

submit <workflow> <parameters>

Creates a new job, based on a worfklow template and parameters to that template.


Following is the usual series of commands that you will use to submit and monitor a job:

$ hc j s example feeder.uri=/tmp/links.txt
The job descriptor (workflow=webclient) is outgoing...
The job has been accepted. (Id=1097)
$ hc j l
Found 2 job(s):
   id: 1097 status: PROCESSING
   id: 1096 status: COMPLETED
$ hc j d 1097
Job details called
Details about the job:
   job_status   PROCESSING
   task_count_webclient 18635/69986
   job_start_time       2012-12-13 12:48:04
   job_custom_params    {feeder={uri=/tmp/links.txt}}
   job_started_subprocess_count 89848
   task_count_feeder-list       1/1
   task_count_reporter  38413/38413
   job_processing_time_sec      120
   task_count_js-sta    37408/37408
   job_workflow_revision        ff5426656e003bf5d1b898c72ecf9e6cc4b4cd59
   task_count_shell-scdbg       1088/1088
   job_workflow_name    example
   job_active_subprocess_count  54588
   job_active_step      wait
   task_count_swf-cve   1005/1005

Workflow management

This is the most complex part of hc. It support following subcommands:


Lists all workflows in the workflow repository.

get [-f <file>]

Prints or saves the workflow to file.

upload <name> [-f <file>]

Uploads new workflow to the repository. Uses either standard input or file. Workflow will have name name.

disable <name>

Disables workflow name.

enable <name>

Enables workflow name.

history <name>

Lists workflow commits history.

status <name>

Displays the current workflow status (comments, validity, is it enabled or not).


Normally, you would only want to list and upload workflows. This can be achieved using:

$ hc w l
The list workflows is outgoing...
Found 3 workflow(s):
          name: abc
          enabled: True

          name: abc2
          enabled: True

          name: bad
          enabled: False
$ hc w u -f test workflow.hwl
Uploading workflow to framework.
Workflow uploaded as revision f395a08aeabc09f132e64b19470cd81a47c4653b

Configuration management

For now you can only view the current configuration used by framework using the subcommand get.


hc c g
Config get request called
   AMQP.queues.objectStore.high os:h
   AMQP.queues.objectStore.low  os:l        feeder-list webclient capture swf-cve shell-scdbg js-sta reporter norm-url rb-officecat rb-pdffox
   AMQP.queues.framework.high   fw:h
   workflow.repository  /etc/hsn2/workflows/
   AMQP.queues.framework.low    fw:l
   jobs.sequence.file   /opt/hsn2/framework/jobId.seq


Pinging the framework checks its current status. Most of the time you would get two types of responses:

$ hc p
The ping is outgoing...
The framework is alive.

or, when framework is not running or not responding, you will get something similar to:

$ hc p
The ping is outgoing...
2012-12-14 12:30:53,924 ERROR    Response timeout
ERROR:HC:Response timeout
ERROR: Response wait timeout