The Signiant SOAP (Simple Object Access Protocol) API is a mechanism that allows client programs to interact with and execute APIs on a Signiant Manager. A SOAP client is required to perform the communication with the SOAP server (the Manager web application).
Examples using SOAP clients written in Perl are located in the /support/soapSamples
directory found in the installer bundle.
You can view the services available on the Signiant Manager at https://<Signiant_Manager_address>/signiant/services
. The page also displays a link to the WSDL file associated with the service.
Note:<Signiant_Manager_address>
is the fully qualified host name for the Manager.
More detailed information about the APIs provided by a specific service is available at https://<Signiant_Manager_address>/signiant/services/<service_name>
.
To improve Signiant Manager security, only TLS 1.1 and above are supported for Signiant web server communication. Signiant Agents use the highest level of supported TLS to ensure optimum security and communication. If you want to run a Signiant Manager with an SSL protocol lower than TLS 1.1, use setMinimumSSLVersion.pl
.
Note: To enable SSL 3.0, your Signiant Manager and Agents must be running version 11.4 or higher.
If SSL V3 is disabled on your Signiant Manager, and you have written Perl scripts that use the Net::SSL
Perl module for HTTPS communication, you must modify your Perl script to use IO::Socket::SSL
module.
Replace use Net::SSL
with the following:
if (eval {require IO::Socket::SSL;1})
{
IO::Socket::SSL->import();
IO::Socket::SSL::set_defaults(SSL_verify_mode => SSL_VERIFY_NONE);
}
else
{
require Net::SSL;
Net::SSL->import();
}
If the SSL verify mode needs to verify the server certificate, insert the following:
if (eval {require IO::Socket::SSL;1})
{
IO::Socket::SSL->import();
my $caCertString = '<PEM encoded CA certificate string>';
require IO::Socket::SSL::Utils;
IO::Socket::SSL::Utils->import('PEM_string2cert');
my $caCertHandle = PEM_string2cert($caCertString);
IO::Socket::SSL::set_defaults(
SSL_verify_mode => SSL_VERIFY_PEER,
SSL_ca => [$caCertHandle]
);
}
else
{
require Net::SSL;
Net::SSL->import();
}
The following SOAP methods manipulate variables that are defined in a job template:
Passing the variables over SOAP requires that they be passed as two SOAP encoded arrays.
Syntax:
my $variableNames = SOAP::Data->value(["{variable1name}","{variable2name}","{variable3name}"]);
my $variableValues = SOAP::Data->value(["{variable1value}","{variable2value}","{variable3value}"]);
Example:
In the following example, the job template being used has five variables defined: SrcAgent
, TgtAgents
, srcdir
, tgtdir
, comp
and inc
.
my $variableNames = SOAP::Data->value(["SrcAgent","TgtAgents","srcdir","tgtdir","comp","inc"]);
my $variableValues = SOAP::Data->value(["se-src1.senet.com", "se-tgt1.senet.com", "c:/input", "c:/temp", "Yes", "Yes"]);
Note: With any of the methods that take arrays of variables, the values must be string, even if they are numeric.
For information on encoding the various prompt types, refer to the Prompt Types table in the Component Development Developer’s Guide.
Creating and starting jobs on a Signiant Manager requires that input values be specified.
To avoid ambiguity, job variables require a fully qualified name. Failure to provide the appropriate name will result in SOAP faults such as:
com.signiant.mobilize.service.SigniantFault info = "You must supply / choose a value for Prompt Name"
message = "Client.SchedulerError"
To determine the appropriate prompt names:
The values in the Name column are those that should be used.
Several SOAP methods require the frequency of a job’s execution. This can be one of the following formats:
When passing an Agent parameter via SOAP, you may specify groups. Since groups are unique to an organization, the group name must be prefixed with the organization ID:
<group_name>!<organization_number>
Example: MXUsers!5
When an exception occurs while processing a SOAP request, the server will return a SOAP fault message.
Errors may occur when processing a request itself, or may occur as the result of an outside condition, such as the database becoming unavailable.
The fault generated will have three fields describing the error in increasing level of detail for the client:
Server.Misconfiguration
There is a problem with the server configuration or a fatal error occurred at the server that is being communicated back to the client.
Client.XMLParseError
The server was unable to parse the SOAP request. There is a problem with the client’s configuration.
Client.AuthenticationError
The server was unable to authenticate the user and password for this request. Make sure that the SOAP method contains those parameters, and that the client can properly send them.
Client.UnknownMethod
The client attempted to make an unknown call to the server.
Client.InvalidParameter
The client sent an invalid parameter to the server or the number of parameters is not correct.
Client.ScheduleError
The server received an error from the scheduler with the job parameters specified. The server was unable to schedule that job with those parameters. The detail string identifies the reasons.
The Scheduler Service provides the following methods for scheduling jobs:
Add a single variable value to a job.
addJobVariable(string username, string password, string jobGroupName, string jobName, string name, string value)
Returns an integer indicating whether or not an error occurred in adding the variable. 0 indicates the argument was added. 1 indicates that an error occurred.
Send a command to a job.
commandForJob(string username, string password, string jobName, string jobGroupName, string command)
dds_schclnt help
.Valid commands
delete
force
: Runkill
suspend
: Suspend future runsresume
: Enable future runscontinue
: Continue an interrupted jobsetbwlimit
: Set the bandwidth limit, bandwidth floor or the bandwidth ceiling on running jobs.
Syntax: setbwlimit_<limit>:<floor>:<ceiling>
.setbwlimits_100000:50000:100000
sets the limit to 100,000 bytes/sec, the floor to 50,000 bytes/sec and the ceiling to 100,000 bytes/sec.setbwlimits_:50000:
to set only the floor.setbwlimit_<limit>
is still supported.Results returned from commands are not passed back to the SOAP client. Returns an integer indicating whether an error occurred in sending the command. Zero (0) indicates the command was sent: 1 indicates that an error occurred.
Retrieve the active filename for a job.
getActiveFilename(string username, string password, string jobName, string jobGroupName)
Returns the active filename value for the job.
Retrieve the active status message for a job.
getActiveStatus(string username, string password, string jobName, string jobGroupName)
Returns the active status message if the solution developer has provided one in the Job Template.
Retrieve the job run start time.
getJobRunStartTime(string username, string password, string jobRunId)
Returns the start time for the job.
Retrieve the active status message for a job (synonymous with getActiveStatus).
getActiveStatusMsg(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
See getActiveStatus.
Returns the current state for a job.
getJobActiveState(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns one of the following states:
Returns the information pertaining to the specified job in the given job group.
getJobInfo(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns a hash of all of the variables related to a given job including the Job Template Name, Job Template Library Name, as well as all of the job template specific parameters.
Returns the information pertaining to the specified job in the given job group.
getJobInfoVO(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns an Array of Key Value Objects of all of the variables related to a given job including the Job Template Name, Job Template Library Name, as well as all of the job template specific parameters.
Returns the condition preventing automated job executions.
getJobScheduledState(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns one of the following states:
Returns the Signiant Contract_ID for a given group.
getJobGroupId(string username, string password, string groupName)
See getActiveStatus.
Returns the Contract_ID for the given Job Group
Returns the status of the last run for this job.
getJobStatus(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns a list of states separated by + character:
Returns the exit code from the last scheduled occurrence of a job.
getLastJobResult(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns the integer exit code of the last job execution.
Return information for a running job.
getStats(string username, string password, string jobName, string jobGroupName, int runNumber, string fields, string fieldSep, string recordSep)
Values for “fields” Parameter Name:
agent_stat_time
: Specifies the controlling agent time (system epoch time in microseconds) when the statistic record was generated, equivalent to interval_end_time
for running transfers in the job_run_stat_interval
table.agent_start_time
: Specifies the controlling agent process start-up time (system epoch time in microseconds) saved in the database as a timestamp.agent_end_time
: Specifies the controlling agent process end time (system epoch time in microseconds) saved in the database as a timestamp.bandwidth_throttle
: Specifies the bandwidth throttle being applied at the end of the reporting interval (in bytes/seconds). A value of 0 indicates that no bandwidth throttling was being applied at the end of the reporting interval.byte_count
: Specifies the total number of data bytes in the known files to transfer.direction
: Report on the direction associated with this component run.directories_deleted
: Specifies the number of directories explicitly deleted by the target agent. Does not include files/directories implicitly deleted during (overlay) transfers.directories_skipped
: Specifies the number of directories (as files) skipped.directories_transferred
: Specifies the number of directories (as files) successfully transferred.directory_count
: Specifies the known number of directories (as files) to transfer.effective_bytes
: Specifies an aggregate value equal to file_data_bytes + file_bytes_skipped + the sum of the data counts of all currently-active streams
.failed_directories
: Specifies the number of directories (as files) that failed to transfer.failed_files
: Specifies the number of files that did not transfer.file_attr_bytes
: Specifies the number of uncompressed file attribute bytes transferred.file_attr_bytes_comp
: Specifies the number of compressed file attribute bytes transferred.file_bytes_deleted
: Specifies the number of file data bytes deleted.file_bytes_skipped
: Specifies the number of file data bytes not transferred because the files were skipped.file_count
: Specifies the known number of files to transfer.file_data_bytes
: Specifies the number of uncompressed file data bytes transferred.file_data_bytes_comp
: Specifies the number of compressed file data bytes transferred.files_deleted
: Specifies the number of files explicitly deleted by the target agent.files_skipped
: The number of files that were not transferred. A file is skipped when it already exists on the target and is the same as the source (i.e., it has not changed).files_transferred
: Specifies the number of files successfully transferred.job_id
: The number Signiant uses to identify this instance of job.mxpackage_id
: The mxpackage_id associated with this component.names_cmd_end_time
: Specifies the time the names command has completed for a file transfer.ntwk_bytes_ack
: The total number of bytes acknowledged.ntwk_bytes_recvd
: Specifies the number of bytes received by the controlling agent from the network.ntwk_bytes_sent
: Specifies the number of bytes sent by the controlling agent on the network.ovhd_src_cchnl
: Control channel overhead source to target.ovhd_src_mnfst_comp
: Specifies the number of compressed source-to-target file manifest overhead bytes.ovhd_src_prtcl
: Specifies the number of source-to-target transfer protocol overhead bytes.ovhd_src_rsync
: Specifies the number of non-data RSYNC overhead bytes flowing from source agent to target agent.ovhd_tgt_cchnl
: Control channel overhead target to source.ovhd_tgt_mnfst_comp
: Specifies the number of compressed target-to-source file manifest overhead bytes.ovhd_tgt_prtcl
: Specifies the number of target-to-source transfer protocol overhead bytes.ovhd_tgt_rsync
: Specifies the number of non-data RSYNC overhead bytes flowing from target agent to source agent.package_name
: The name of the job template with which the job is associated. Click on the name to open the associated job template.package_type
: Indicates the kind of template with which the job is associated (FILE_TRF, PROCESS_TRF, REMOTE_CMD).proc_data_bytes_sent
: Specifies either the number of bytes (a) sent by the controlling (source) agent of a process push transfer or (b) received by the controlling (target) agent of a process pull transfer; or the number of bytes sent by the controlling (source) agent across all channels of a streaming transfer.proc_data_bytes_unconsumed
: Specifies the number of bytes received by the target agent of a process transfer that were not delivered to the target data sink command.remote_end_time
: Specifies the remote agent process end time (system epoch time in microseconds) saved in the database as a timestamp.remote_start_time
: Specifies the remote agent start-up time (system epoch time in microseconds) saved in the database as a timestamp.rsync_bytes_skipped
: Specifies the number of file data bytes not transferred because the RSYNC algorithm deemed them unchanged.sf_bytes_recvd
: Specifies the number of bytes received by the controlling agent from the Security Framework (SF) layer.sf_bytes_sent
: Specifies the number of bytes sent by the controlling agent to the Security Framework (SF) layer.source_host
: The name of the host that initiates the transfer.status
: Indicates the current state of a transfer (PENDING, RUNNING, COMPLETE, PAUSED).stat_version
: Captures the actual stat_version for the job stat.target_filebytes
: The total number of file bytes sent in the packet.target_host
: The name of the host to which the data is being transferred.time_est
: Estimated time of completion.tnnl_data_bytes_recvd
: Specifies the number of bytes received by the controlling (source) agent across all channels of a streaming transfer.tnnl_data_bytes_sent
: Specifies the number of bytes the controlling (source) agent has sent.total_errors
: General error counter for all exceptions detected by or reported to the controlling agent with respect to the remote agent.transfer_end_time
: Specifies the end time for transfers with the remote agent (system epoch time in microseconds) saved in the database as a timestamp.transfer_rate
: Calculated transfer rate. A push equals ntwk_bytes_sent/(transfer_end_time - transfer_start_time)/ 1000000
. For pulls, ntwk_bytes_recd
is used.transfer_rate_max
: Highest transfer rate calculated across all reported stat records for this transfer. By default, stats are reported every 60 seconds. Transfer rate for a push equals ntwk_bytes_sent/(transfer_end_time - transfer_start_time)/1000000
. For pulls. ntwk_bytes_recd
is used.ntwk_bytes_sent/(transfer_end_time - transfer_start_time)/1000000
. For pulls, ntwk_bytes_recd
is used.transfer_start_time
: Specifies the start time for transfers with the remote agent (system epoch time in microseconds) saved in the database as a timestamp.transport_type
: Indicates the kind of transfer (UDP, TCP).udp_aggressiveness
: Indicates the UDP aggressiveness level, one of: (HIGH, MEDIUM, LOW).udp_ceiling
: Specifies the current UDP ceiling (in bytes/seconds). A value of 0 indicates an unlimited ceiling.udp_floor
: Specifies the current UDP floor (in bytes/seconds). A value of 0 indicates the default floor value, which is currently 40MB/s (5mb/s).udp_header_size
: Specifies the number of header bytes in a UDP transport packet (for use in UDP byte count computation).udp_payload_size
: Specifies the number of payload bytes in a UDP transport packet (for use in UDP byte count computation).udp_pkts_ack
: The total number of UDP packets.udp_pkts_recvd
: Specifies the total number of UDP packets received by both the controlling and remote agents.udp_pkts_resent
: Specifies the total number of UDP packets resent by both the controlling and remote agents.udp_pkts_rjctd
: Specifies the total number of UDP packets rejected by both the controlling and remote agents.udp_pkts_sent
: Specifies the total number of UDP packets sent by both the controlling and remote agents.unrecovered_errors
: Error counter for all unrecoverable exceptions declared by the controlling agent with respect to the remote agent.rmt_cmd_twu
: The Total work unitsrmt_cmd_wuc
: The number of work units completed.Note: The following fields associated with the getStats method have been deprecated:
elapse_time
, files_to_transfer
, bytes_to_transfer
, bytes_transferred
, bytes_effective
, bytes_incr_ovhd
.
Job Template Name, Type, Src Agent, Tgt Agent are always returned as the first four fields of each record. Other fields are returned in the order they were specified.
Returns the jobs contained in this job group.
listJobs(string username, string password, string jobGroupName)
Returns an array of all job names contained in the job group.
Returns the list of job groups.
listGroups(string username, string password)
Returns a hash of the group names and their associated Contract_IDs.
Returns the list of job groups.
listGroupsVO(string username, string password)
Returns an Array of Key Value Objects of the group names and their associated Contract_IDs.
Returns the jobs contained in this job group and their position in the queue. The currently running job’s position is 0.
listQueuedJobs(string username, string password, string jobGroupName)
Returns a comma-separated, ordered list of all job names contained in the queued job group.
Example: jobName1:0, jobName2:1, jobName3:2
Note: Unscheduled jobs in the specified job group will not be returned.
Returns the list of resource controls.
listResource(string username, string password)
Returns a list ( hash) of the resource controls.
Returns the list of resource controls.
listResourceControlsVO(string username, string password)
Returns a list (an Array of Key Value Objects) of the resource controls.
Returns the queue for a specified resource control.
listResourceControlQueue(string username, string password, string resourceControlName)
Returns the queued list ( hash) for the named resource control. The values returned in each record are consumerId, job name, job group name, resource name, component name, component state, source agent, target agent, requesting agent , component type and order in the queue.
Returns the queue for a specified resource control.
listResourceControlQueueVO(string username, string password, string resourceControlName)
Returns the queued list ( an Array of Key Value Objects) for the named resource control. The values returned in each record are consumerId, job name, job group name, resource name, component name, component state, source agent, target agent, requesting agent , component type and order in the queue.
Returns the list of all resource controls currently affecting a job.
listResourceForJob(string username, string password, string jobGroupName, string jobName)
Returns the queued list ( hash) for the job. The values returned in each record are consumerId, job name, job group name, resource name, component name, component state, source agent, target agent, requesting agent, component type and order in the queue.
Returns the list of all resource controls currently affecting a job.
listResourceForJobVO(string username, string password, string jobGroupName, string jobName)
Returns the queued list ( an Array of Key Value Objects) for the job. The values returned in each record are consumerId, job name, job group name, resource name, component name, component state, source agent, target agent, requesting agent, component type and order in the queue.
Modifies the priority of running or queued job.
modifyJobPriority(string username, string password, string jobGroupName, string jobName, string priority)
Returns an integer indicating whether or not an error occurred in modifying the job priority. 0 indicates the job has been created and 1 indicates that an error occurred.
Moves the position of a queued job within a queued job group.
moveJobInQueue(string username, string password, string jobGroupName, string jobName, int offset)
Returns an integer indicating the result of the move. 0 indicates the queued job was moved as requested. 1 indicates the job is not currently in the queue. 2 indicates the job is currently running and cannot be moved. 3 indicates the job cannot be moved ahead of the running job and will be queued to run next.
Moves the position of a queued job within a resource control queue.
moveJobInResourceQueue(string username, string password, long consumerId, int offset)
Returns an integer indicating the result of the move. 0 indicates the queued job was moved as requested. 1 indicates the job is not currently in the queue. 2 indicates the job is currently running and cannot be moved. 3 indicates the job cannot be moved ahead of the running job and will be queued to run next.
Creates a new job using default parameters.
The newJob method simply creates the job in a single step, but does not execute it. A client application must call different methods after the newJob command to specify parameters to the job including the scheduling parameters required by the scheduler. The job’s status will be invalid until all required parameters are set.
newJob(string username, string password, string jobGroupName, string jobName, string jobTemplateLibraryName, string jobTemplateName)
Returns an integer indicating whether or not an error occurred in creating the job. Zero (0) indicates the job has been created: 1 indicates that an error occurred.
Creates a job group using the provided name. You cannot create a job group with the name of an already existing job group.
newJobGroup(string username, string password, string groupName)
Returns an integer indicating whether or not an error occurred while adding the job group. Returns the Contract_ID for the given Job Group.
removeJob(string username, string password, string jobName, string jobGroupName)
See getActiveStatus.
Returns an integer indicating whether or not an error occurred in removing the job. 0 indicates the job was removed. 1 indicates that an error occurred.
Removes a variable from the list of variables for a job.
removeJobVariable(string username, string password, string jobGroupName, string jobName, string name)
Returns an integer indicating whether or not an error occurred in removing the variable. 0 indicates the variable was removed. 1 indicates that an error occurred.
Resets the entire list of variables associated with a job.
Note: If the job has previously set variables that the user has not reset with a new value, the variable will be reset to an empty value.
resetAllJobVariables(string username, string password, string jobGroupName, string jobName, array variables array variableValues)
Returns an integer indicating whether or not an error occurred in resetting the variables. Zero (0) indicates the variables were reset: 1 indicates that an error occurred.
Runs the specified job.
Note: Signiant recommends you use commandForJob
with the command option of force. See commandForJob
for the complete list of parameters.
runJob(string username, string password, string jobName, string jobGroupName, int timeout)
Returns an integer indicating whether or not an error occurred when running the job. 0 indicates the job started successfully. 1 indicates that an error occurred.
Specify a variable for a job.
setJobVariable(string username, string password, string jobGroupName, string jobName, string name, string value)
See addJobVariable.
Returns an integer indicating whether or not an error occurred in setting the variable. 0 indicates the variable was set. 1 indicates that an error occurred.
Specify variables for a job.
setJobVariables(string username, string password, string jobGroupName, string jobName, array variables array variableValues)
See resetAllJobVariables.
Returns an integer indicating whether or not an error occurred in setting the variables. 0 indicates the variables were set. 1 indicates that an error occurred.
Creates a new job and set job parameters.
shortCreateJob(string username, string password, string jobName, string jobGroupName, string jobTemplateLibraryName, string jobTemplateName, string timezone, array variables, array variableValues)
Returns an integer indicating whether or not an error occurred in creating the job. Zero (0) indicates the job was created: 1 indicates that an error occurred.
Updates the parameters for a job.
shortUpdateJob(string username, string password, string jobName, string jobGroupName, string timezone, array variables, array variableValues)
Returns an integer indicating whether or not an error occurred in updating the job. Zero (0) indicates the job has been updated: 1 (one) indicates that an error occurred.
You can ensure that SOAP initiated jobs are running properly by monitoring them using getJobActiveStatus and getLastJobResult.
To monitor a SOAP initiated job:
getJobActiveState
to return the job status. The job status will be one of the following:
getLastJobResult
to view the exit code for the job. A 0 indicates job success. A positive value indicates a failure. The return codes are the same as those displayed in the GUI.getLastJobResult
returns an error, do the appropriate action (for example, resubmit or force the job).shortUpdateJob
to reevaluate the job, use removeJob
to delete the job, or use shortCreateJob
to resubmit the job.The Job Template Library APIs allow clients to list template libraries available to specific users, create new job template libraries, and import/export job template libraries.
Returns the names of job template libraries available to the specified username.
getJobTemplateLibrary(string username, string password)
Returns a comma-separated list of Job Template Library names available to the specified user in the following format:
Creator!jobTemplateLibraryName
Creates a new Job Template Library on the Manager. The username specified will be designated as the owner of the new Job Template Library.
newJobTemplateLibrary(string username, string password, string newJobTemplateLibraryName)
Returns 0 if the creation is successful or a SOAP fault if an error occurred.
Export a Job Template Library in XML format.
exportJobTemplateLibrary(string username, string password, string jobTemplateLibraryName)
Returns the Job Template Library in XML format. A SOAP fault is returned if an error occurred.
Import an XML formatted Job Template Library.
importJobTemplateLibrary(string username, string password, string jobTemplateLibraryXML)
Note: If the name provided already exists, the existing Job Template Library is over-written. Execution may take several seconds while the XML for the Job Template Library is parsed.
Returns the ID number of imported Job Template Library if no error occurred. The command returns a SOAP fault if any errors occurred.