SURVIVOR: Transport Module Specification
Specification
Specification
Transport modules must be reentrant. That is, if a transport module is run more than once simultaneously, all instances must run to completion without interference. Transport modules must not change their process group by any means, including via `setsid()`, `setpgid()`, `setpgrp()`, or any similar function. Transport modules must handle their own parallelization. If a module is passed more than one host name to connect to, it is up to the module to determine the best way to handle it. Each module must place its source code in a directory underneath `survivor/src/modules/transport/` with the following conventions: The name of the directory must be `transport/modulename/`. A Makefile.in must be present, with directives for `clean`, `veryclean`, `all`, `install`, and `install-remote`. The `install` should, except in exceptional circumstances, install the module into `@prefix@/mod/transport`, owned by `@INST_USER@` and `@INST_GROUP@`, mode 555. The `install-remote` directive should be the same as `install`, except where it does not make sense for the module to be installed as part of a remote distribution. (Transport modules typically do not need to be installed remotely.) Documentation describing the module should be in `doc/tm-modulename.html` Transport modules must accept the following arguments: -v A flag indicating the module should validate its configuration. The module must test for any dependencies (executables, libraries, modules, configuration files, etc) required for normal successful execution. If valid, exit with MODEXEC_OK (using scalar value 0 and the string "Module OK" as the comment, where Module is the name of the module), otherwise exit with MODEXEC_PROBLEM, following the output format specification described below. Transport modules receive the rest of their data via a SurvivorTransportData document, where Host Host to perform the check on. Absence of this argument should cause the transport module to exit immediately with an appropriate return code. Timeout The timeout for this module. After `timeout` seconds, the transport module may be gracelessly terminated. The transport module may use this timeout value to exit gracefully before time expires. If this option is not provided, the module may act as if there is no timeout. ModuleOption The names and values of the arguments provided in `check.cf`. This element should conform to the Module XML Argument Specification. RemoteModule Module The remote module to execute, as specified in the configuration files. ModType The type of remote module, as supported by the remote gateway. This argument is provided automatically by the system. ModuleOption The names and values of the remote module arguments provided in `check.cf` or `dependency.cf`. This element should conform to the Module XML Argument Specification. Transport modules should not write output files. Transport modules must generate output compliant with the appropriate specification for the type of module being executed remotely. Transport modules must exit with a return code compliant with the appropriate specification for the type of module being executed remotely. $Date: 2006/11/20 00:08:46 $ $Revision: 0.7 $ | keywords