Apache Strongmail
Apache Strongmail is an Apache httpd-based Strongmail web server component, identified by its strongmail configuration file (strongmail-server.conf). It is designed to help developers and operators manage and deliver Strongmail email services, enabling versioned discovery of the running Strongmail webserver instance for inventory and monitoring.
Platforms supported by the pattern
The pattern discovers Apache Strongmail deployments on the UNIX system.
Software instance triggers
The following table gives details about the pattern trigger:
| Pattern | Trigger | Cmd | Argument |
| ApacheStrongmail | process | bin/httpd$ | (?i)-(?:d|f) *[^ ]*/strongmail(?:\b|_) |
Software Instance type attributes
The pattern in this module sets the following attributes:
Pattern name | Software Instance type |
|---|---|
| ApacheStrongmail | Apache Strongmail Webserver |
Simple identification mappings
The following components or processes are identified by using the simple identity mappings that map the product's known processes:
Name | Command |
|---|---|
Apache Strongmail Webserver | (?i)strongmail(?:_|/|-|)?(\d(?:[\-_\.]?\d+)*) |
Versioning
Version information for the product is collected by using the path and package versioning methods.
Path versioning
The pattern first attempts path versioning. It inspects the process command path and its arguments for a Strongmail configuration reference and then applies the following regex:
(?i)strongmail(?:_|/|-|)?(\d(?:[\-_\.]?\d+)*)
Where
- (?i) stands for case-insensitive.
- strongmail stands for the literal product name.
- (?:_|/|-|)? stands for the optional single separator: underscore, slash, hyphen, or nothing.
- \d stands for the initial digit.
- (?:[\-_\.]?\d+)* stands for zero or more sequences of an optional separator (- _ .) followed by one or more digits.
Captured group examples:
strongmail1 -> 1
strongmail_1.2.3 -> 1.2.3
strongmail/2-5_7 -> 2-5_7
strongmail-10.11.12 -> 10.11.12
strongmail_3_4-5.6 -> 3_4-5.6
Normalization (internal convention): Separators such as '-', '_', and multiple separators are typically converted to '.' when forming the Software Instance version string (for example, 2-5_7 -> 2.5.7). If no normalization logic runs, the raw captured text is used.
Fallback: If no path match is found, the pattern scans the package list for entries containing strongmail and applies the same regex to the package name to derive the version.
Failure: If neither path nor package yields a match, the Software Instance is created without a version attribute.
Edge cases:
- strongmail.conf (no digits) stands for no version.
- strongmail_v1.2 (v breaks pattern) stands for no version unless the alternate package source contains a valid form.
Package versioning
If path versioning fails (no path_version), the pattern invokes:
check_packages := [regex'(?i)^strongmail-apache'];
full_version := DiscoveryFunctions.packageVersioning(host, check_packages);
The pattern iterates the host package inventory and finds the first package name matching ^strongmail-apache (case-insensitive). It then extracts the version component by using DiscoveryFunctions, typically stripping the package name and architecture to return the upstream version and release information.
Examples (package name -> full_version):
strongmail-apache-1.2.3-4.el7.x86_64 -> 1.2.3-4.el7
strongmail-apache-2.0.0.x86_64 -> 2.0.0
strongmail-apache-10.11.12-1 -> 10.11.12-1
Product version derivation:
product_version := first match of (\d+(?:\.\d+)?) in full_version.
Examples:
full_version: 1.2.3-4.el7 -> product_version: 1.2
full_version: 2.0.0 -> product_version: 2.0
full_version: 10.11.12-1 -> product_version: 10.11
If the regex fails (which is a rare case), product_version defaults to full_version.
Failure: If no matching package is found, full_version remains empty, and no version attributes are set on the Software Instance.
Testing
The pattern has been tested against the available customer data on Linux hosts.