Common concepts and XML elements


This topic describes general concepts and XML tags that are common to multiple device adapter types.

Info elements

Several elements exist to support the Device Adapter Capabilities report. These are display only elements and do not affect any processing. Names of such elements end with Info, such as <generalInfo> and <supportedOsVersionInfo>. The value for most of these elements is a simple text string, free of all formatting. 

Two of these elements, <generalInfo> and <templateFormattingInfo>, support contents that are embedded HTML elements. The information in these elements can be voluminous, so presenting a lot of data requires some way to organize it. To enter HTML elements into these tags, first enter a CDATA tag, followed by the HTML elements. Only a restricted set of elements is supported, not the entire HTML grammar. The HTML must also be well-formed; every start tag must have a corresponding end tag.

The following template shows the supported HTML elements, which you can nest, as needed, to present your information:

<generalInfo><![CDATA[
    <table border="1">
        <tr><th>column header</th></tr>
        <tr><td>column data</td></tr>
    </table>
    <ul class="noSpacing">
        <li>list item</li>
    </ul>
    <ol>
        <li>list item</li>
    </ol>
    <p><code>formatted data</code></p>
    <p><b>bolded text</b></p>
    <p><i>italicized text</i></p>
    <p>text <br/> more text</p>
]]></generalInfo>

The only supported attributes are border (for tables) and class="noSpacing" (for more compact unordered lists).

The factory-installed device type adapters have numerous examples that show <generalInfo> and <templateFormattingInfo> CDATA blocks, demonstrating how HTML can be used. Refer to the Cisco IOS  and VMware vSwitch device types.

Using non-printable characters

When interacting with a device, it is sometimes necessary to send it a non-printable character, such as a newline, control-C, or control-Y. XML syntax does not allow you to enter non-printable characters into XML content. BMC Network Automation provides you with a way to enter these characters, as follows:

Enter the value as \xnnn – a backslash, followed by the lowercase letter x, followed by the Hex value of the character (as defined by ASCII) in three digits. For example, the control-C character can be entered as: \x003, and a control-Y can be entered as: \x019.

This notation is recognized in the following XML elements. Some accept it in the value of the element; some accept it in an attribute.

Tag

Supported in value?

Attributes

<assign>

yes

value

<capture>

no

buffer

defValue

prefix

suffix

xpath

<requestHeader>

yes

 

<requestBody>

yes

 

<error>

yes

 

<response>

yes

value

<syntaxScanInteraction>

no

help

<interaction>

no

kickAtResponseTimeout

<command>

yes

 

<prompt>

yes

 

<kickAtResponseTimeout>

yes

 

<textProcessor>

no

search

replace

Back to top

Properties and keyword substitution

The device type and custom action XML elements support a sort of programming language, where you have statements, if tests, and while or for loops. You also have the notion of variables in the form of properties. A property can either exist or not exist. When it exists, it has a value that can be examined, used, and changed. The existence of a property can also be tested.

To refer to a property, you use a keyword and the system performs a keyword substitution. A keyword is a string with the pattern %...% (a property name surrounded by percent signs). For instance, %property1% refers to the current value of property1. When such a keyword is encountered in the XML code and if a property named property1 exists within the context of the current device connection, its value is substituted in place of the keyword. Otherwise, an empty string is substituted. For example, if the command you want the device to execute is coded as show interface %mgmtIf% and the mgmtIf property has a value of fa0/2/1, then the resulting command is show interface fa0/2/1.

Property substrings are also recognized. For example, a keyword such as %propertyA[3-5]% is replaced by the substring spanning from the 4th through the 6th characters of propertyA's current value (where character counting begins at zero). For example, if propertyA has a value of abcdefgh, then the keyword would be replaced with def.

You create properties by using the <response><assign>, or <capture> tags. The system also creates properties, passing information from the user and the internal logic for use in the XML code. Device, agent, global, and runtime substitution parameters can be accessed as properties. For example, %device.realm% refers to the device's realm name.

Keyword substitution is recognized in the following XML elements under the <deviceCommand> and <httpDeviceCommand> elements (used in device type and custom action adapters). Some accept it in the value of the element; some accept it in an attribute.

Tag

Supported in value?

Attributes

<assign>

yes

property

value

<loop>

no

start

stop

 

<error>

yes

 

<response>

yes

 

<interaction>

no

pauseSeconds

<command>

yes

sensitivePhrase

<prompt>

yes

 

<sleep>

no

timeSeconds

<capture>

 

buffer

prefix

suffix

xpath

<get>

yes

sensitivePhrase

<post>

yes

sensitivePhrase

<put>

yes

sensitivePhrase

<requestHeader>

yes

 

<requestBody>

yes

 

<delete>

yes

 

Scope of properties

Normally, once a property is created, it exists for the duration of the connection to the device (that is, until the logout is completed, the connection is broken, and the device action completes). However, some properties are removed based on the their names:

  • cmd.*: Any property whose name starts with cmd. exists only to the end of the <deviceCommand> or <httpDeviceCommand> block. It does not cross command blocks.
  • loop.*: Any property whose name starts with loop. exists only to the end of the <loop> block. To be more precise, any property named with the namespace attribute as the prefix exists only to the end of its <loop> block, with the default namespace being loop.
  • disc.*: Any property whose name starts with disc. is removed during a re-login (such as after a reboot) so that it can be re-discovered correctly. It does not cross device sessions. These properties are also displayed in the transcript.
  • fileContents: If a command is performing a configuration snapshot and it captures to the fileContents property, the property is cleared after the data is used to create a configuration (basically at the end of the <deviceCommand> that takes snapshot of the particular configuration). It does not cross commands.

Once a property is removed, you cannot use it in the XML logic unless you create it again. These naming conventions help reduce memory usage (by releasing unneeded properties) and reduce the chance of coding errors (by limiting what properties are available, so you do not code the wrong variable where it should not exist).

Back to top

Properties set by the system

The following table lists all of the properties populated by the system from the information stored in its database or provided by the user, and describes when they are populated and available for use in the XML code.

In addition, the system populates properties for device, agent, runtime, and global substitution parameters that can be referred to using keywords. The properties are populated prior to the login command. About-substitution-parameters lists the names of the device and agent parameters. For instance, %agent.localhostName% can be coded to plug in the device agent's host name.

Property

Description

Initialization time

accessMode

Primary or auxiliary interface access mode (depending on which interface is used to make the connection); one of telnet, ssh2, https11, https10, http11, http10, webService, or auto

set prior to making the initial connection

accessPort

Primary or auxiliary interface port (depending on which interface is used to make the connection)

set prior to making the initial connection

address

Address of the device agent or of the device agent's proxy file server, overridden by the device's NAT address from the primary or auxiliary interface port (depending on which interface is used to make the connection), overridden by the image file server address (when an image file is being transferred)

set before calling any commands that are capable of transferring files (those that copy configuration files or image files)

cfgBinary

true or false indicating if the configuration file being deployed contains binary data; useful for preventing such files from being deployed in tunneled mode (where the device does not understand the binary stream)

set before calling any configuration deploy commands

CR

Literal carriage return character (\r or hex \x00D or unicode \u000D)

set prior to making the initial connection

defaultResponseTimeoutSeconds

From the property, deviceDefaultResponseTimeoutSeconds in the global.properties.imported file, defaulting to 60

set prior to making the initial connection

deviceAddress

Primary or auxiliary interface address (depending on which interface is used to make the connection)

set prior to making the initial connection

deviceCategory

Name of the category of the device

set prior to making the initial connection

deviceName

Name of the device

set prior to making the initial connection

disconnectTimeoutSeconds

From the property, deviceDisconnectTimeoutSeconds in the global.properties.imported file, defaulting to 15

set prior to making the initial connection

discoverTransferMode

true or false indicating if the device file transfer mode is set to auto

set for the login command

doCommitAllContexts

From user; true or false depending on the user's selection of the Commit All Security Contexts When Applicable option in the Commit action.

set for the commit command

 

empty

Literal “” or the empty string; %empty% is useful in conditions for checking whether another property has a non-zero-length value

set prior to making the initial connection

endpointAddress

From user; the endpoint address entered into a Find Endpoint or Quarantine action

set for the getNextSwitch command

endpointMacAddress

Discovered when searching for an endpoint, contains the endpoint's MAC address on its connected switch

set for the getNextSwitch command

eraseFilesystem

From user; true or false based on the user choice to delete the current image prior to deployment of a new image, on IOS systems that do not support a delete command for a single file (necessitating the entire filesystem to be erased)

set for Cisco IOS devices only, for the image deploy command

escape

Literal ASCII escape character (hex \x01B or unicode \u001B)

set prior to making the initial connection

fileContents.*

From the script being deployed using tunneled mode, divided into lines with successive lines assigned to fileContents.0, fileContents.1, fileContents.2, etc.

set for the deploy command

fileDigestValue

Calculated MD5 digest or checksum value of the operating system image file that you are deploying

set for the image verification command

ftpPassword

FTP password specified in the device agent (unencrypted)

set before calling any methods that are capable of transferring files (those that copy configuration files or image files)

ftpRestrictedPathAccess

From the FTP User Restricted to Home Directory setting on the Admin > Device Agent page

When this flag is checked, the property value is set to true to allow for the conditional FTP command syntax

set prior to making the initial connection

ftpUsername

FTP user name specified in the device agent

set before calling any methods that are capable of transferring files (those that copy configuration files or image files)

imageArchive

Set to true when an image filename matches the <imageArchiveFilename> regular expression. During Snapshot OS Image, the current image filename is evaluated; during Deploy OS Image, the new image filename is evaluated.

set for the image snapshot and image deploy commands

imageRecoveryInProgress

Set to true when an image deploy command is being called to recover the original image; else does not exist

set prior to the deploy image command

injectionTemplate

Set to true or false to indicate if the template being deployed contains an injection template

set before calling any configuration deploy commands

isWindowsOS

Set to true if the underlying operating system is Windows; else, false

set prior to making the initial connection

LF

Literal newline or line feed character (\n or hex \x00A or unicode \u000A)

set prior to making the initial connection

managedBySerial

Set to true when the device security profile indicates that login is through a terminal server, to execute the extra terminal server login steps; else, does not exist

set for the login command

maxBinaryTransferDurationSeconds

From the system parameter, Timeout for Image File Transfers

set before calling any commands that are capable of transferring files (those that copy image files)

maxTextTransferDurationSeconds

From the system parameter, Timeout for Script File Transfers

set before calling any commands that are capable of transferring files (those that copy configuration files)

mergeType

Indicates how the script is to be deployed; one of smartMerge or fullMerge, based on user's selection of the Incremental Merge or Full Merge options in the Deploy to Active action. Used if the device has distinct commands for the two modes and does its own Smart Merge

set before calling any configuration deploy commands

password

The login password; from device security profile, or from job if the system parameter is set to enter credentials at job creation time (unencrypted)

set for the login command

privPassword

The privileged password; from device security profile, or from job if the system parameter is set to enter credentials at job creation time (unencrypted)

set for the login command

privUsername

The privileged user name; from device security profile, or from job if the system parameter is set to enter credentials at job creation time

set for the login command

rebootTimeoutSeconds

From the system parameter, Timeout for Re-Establishing Connection After a Reboot

set for the image deploy command

reconnectTimeoutSeconds

From the attribute, reconnectTimeoutSeconds in <interaction> or <httpInteraction>

set for the login command when re-logging in

saveChoice

From user reboot mode choice indicating what to do if prompted about unsaved changes; value is y when user selected to save; value is n when user selected to discard; property is non-existent during reboots done as part of a Deploy to Stored or custom action.

set for the reboot command

scpPassword

SCP password specified in the device agent (unencrypted)

set before calling any file-transfer-capable method (those that copy configuration files or image files)

scpRelativeHomeDirectory

SCP transfer relative home directory specified in the device agent

set before calling any file-transfer-capable method (those that copy configuration files or image files)

scpUsername

SCP user name specified in the device agent

set before calling any file-transfer-capable method (those that copy configuration files or image files)

securityContextNameFromUser

The security context name from the device

 

set for the login command

securityContextTypeFromUser

The type of security context from the device; one of admin, system, userDefined, or none

set for the login command

space

Literal space or blank character (hex \x020 or unicode \u0020)

set prior to making initial connection

squeezeTimeoutSeconds

From the property, squeezeTimeoutSeconds in the global.properties.imported file, defaulting to 900

set for the discover image details command

stopTunnelingOnSyntaxErrors

From user's selection for the Stop on Syntax Errors (Only Tunneled Transfers) option in the advanced options of the Deploy to Active action

set for the Deploy to Active action

tab

Literal ASCII tab character (\t or hex \009 or unicode \u0009)

set prior to making the initial connection

targetImageFilesystem

From the user's choice of where to deploy a new operating system image file

set prior to running the discover image details command

targetSecurityContextName

Name of the security context that is used to create (or destroy) a new guest context on a load balancer or firewall host during container configuration. This value is system for the Cisco FWSM device type. It can be null.

set after successful login

terminalLogin

Set to true when user is connecting to the device via a Telnet or SSH Session or the SSH proxy
Note that only the login <deviceCommand> is executed when initiating this connection.

set for the login command

terminalPrivLogin

Set to true when user is connecting to the device via the SSH proxy and has not used the -non-priv argument

set for the login command

terminalServerPassphrase

From device security profile (unencrypted)

set for the login command

terminalServerPassword

From device security profile (unencrypted)

set for the login command

terminalServerUsername

From device security profile

set for the login command

transferActivation

Operating system image activation key

set for the image deploy command

transferAlias

When deploying an operating system image file, the name that the image file will have when it is deployed in the device's filesystem; this is usually the name of the device agent's temporary file

set for the image deploy command

transferFilename

Name of the file being transferred between the device and the device agent

set before calling any file-transfer-capable method (those that copy configuration files or image files)

transferMode

Primary or auxiliary interface file transfer mode (depending on which interface is used to make the connection); one of tftp, ftp, scp, tunneled, or auto

set prior to making the initial connection

transferPath

Directory where the temporary file resides in the device agent's filesystem

set before calling any file-transfer-capable method (those that copy configuration files or image files)

username

The login user name, from device security profile, or from job if the system parameter is set to enter credentials at job creation time

 set for the login command

Back to top

Properties used by the system

Once a <deviceCommand> or <httpDeviceCommand> completes execution, control returns to the Java logic, which might look for properties to be populated by the XML logic. If a property is not populated, no error occurs, but the system might be lacking information it displays to the user. The following table describes those properties:

Property

Purpose

Initialized by

cfgFilename

Contains the name of a configuration file on the device; used to set the file name of a binary configuration

snapshot commands

decodedContents

Contains the ASCII or user-readable version of a binary configuration; used when the <supportedTrail> specifies <capturesDecoded> as true

snapshot commands

disc.model

Contains the discovered model of the device, which is saved and displayed with the device thereafter; if no model can be discovered, the device defaults to the Unknown model

discover core

disc.imageName

Contains the discovered operating system image name and version, which is saved and displayed with the device and configurations thereafter and used for OS image name auto-grouping; this is a displayable name and appears in the OS image library

discover core

disc.imageFilename

Contains the name of the currently running operating system image file on the device; used during image snapshot to preserve the name as the device identifies it, either on the remote image file server or in the OS image library

discover core or discover image details

disc.version

Contains the discovered operating system version major.minor.build parts; used for testing against the minVersion value of subsequent <deviceCommand> or <httpDeviceCommand>

discover core

disc.versionShort

Contains the discovered operating system version major.minor parts; used for OS major/minor release auto-grouping

discover core

disc.supportsFtp

disc.supportsScp

When the property exists, then that access mode is considered to be supported; used when the device file transfer mode is set to auto, to set the transfer mode to a concrete mode

discover core

disc.imageFilesystem

Contains the name of the filesystem where the current operating system file is located; used to determine if a new image file will fit, when it is being deployed onto the same file system

discover core

disc.imageFileSize

Contains the size of the current operating system image file; used to determine if a new image file will fit without deleting the current image file

discover image details

disc.imageFilesystemTotalSize

disc.imageFilesystemTotalSizeUnits

disc.imageFilesystemUsedSize

disc.imageFilesystemUsedSizeUnits

disc.imageFilesystemFreeSize

disc.imageFilesystemFreeSizeUnits

disc.targetImageFilesystemFreeSize

disc.targetImageFilesystemTotalSize

disc.targetImageFilesystemUsedSize

disc.targetImageFilesystemFreeSize

disc.targetImageFilesystemTotalSize

disc.targetImageFileSizeUnits

Used to verify whether the new operating system image file will fit on the disk, when device supports size discovery by discovering combination of these properties

discover core and/or discover image details

disc.memoryTotalSize

disc.memoryTotalSizeUnits

disc.memoryUsedSize

disc.memoryUsedSizeUnits

disc.memoryFreeSize

disc.memoryFreeSizeUnits

Used to verify whether the new operating system image will fit in memory, when device supports size discovery by discovering combination of these properties and when device requires memory sizing be validated

discover core and/or discover image details

disc.baseHostname

disc.securityContextName

disc.securityContextType

Contains the name of the host system that owns a security context, the discovered context name and type; the name and type are used to validate user input for those values (to verify the context being accessed is the context the user specified); the name is used to populate the user-defined context name when the user enters none; the base host name is used to auto-group the security contexts that reside on the same host together

discover core

disc.endpointPortLoc

disc.endpointPortType

Where the endpoint being searched for in a Find Endpoint or Quarantine action is physically attached; contains the switch port location and type; used to quarantine

get next switch command

disc.nextSwitchAddress

The next switch in the path to reach the endpoint being searched for during the Find Endpoint or Quarantine actions; used to find the device in the database that is to be searched next for the endpoint

get next switch command

disc.supportsVlanAcl

Whether or not the device supports VLAN ACLs; used to quarantine using the right type of ACL

discover ACL details

fileContents

Contains configuration captured from a command's output, usually in a snapshot command in tunneled mode

snapshot commands

filenameUsedByDevice

Contains a file name that the device uses in file transfer requests as the destination file name; used to find the file on the device agent's filesystem after the file transfer is done

snapshot commands

result.*

Contains results gathered while running a custom action; displayed in job details; used to populate dynamic fields when custom action is configured to do so

custom action commands

hardwareInventoryIosEntity.name.*

hardwareInventoryIosEntity.descr.*

hardwareInventoryIosEntity.pid.*

hardwareInventoryIosEntity.vid.*

hardwareInventoryIosEntity.sn.*

Results of capturing the name, descr, pid, vid, and sn columns of a show inventory command's output; used to populate the Cisco IOS hardware inventory

discover core

hardwareInventoryMemory.name.*

hardwareInventoryMemory.bytesUsed.*

hardwareInventoryMemory.bytesTotal.*

hardwareInventoryMemory.bytesFree.*

Results of capturing memory information; used to populate the Cisco IOS hardware inventory; for used, total, and free, these contain bytes counts; all three need not be discovered; if only two are discovered, the third is calculated

discover core

hardwareInventoryFileSystem.name.*

hardwareInventoryFileSystem.bytesUsed.*

hardwareInventoryFileSystem.bytesTotal.*

hardwareInventoryFileSystem.bytesFeee.*

Results of capturing filesystem information; used to populate the Cisco IOS hardware inventory; for used, total, and free, these contain bytes counts; all three need not be discovered; if only two are discovered, the third is calculated

discover core

imageChecksumVerified

When the device is able to verify an image file but is unable to emit the file's MD5 checksum, result of performing a verification of a new operating system image file; a true value indicates success; anything else or this property not existing indicates a failure

verify image

imageDigestValue

The MD5 checksum calculated in a new operating system image file copied into the device

verify image

transferredBytes

Number indicating how many bytes were transferred in a TFTP PUT request (copying a file from the device to the device agent); used to determine if a possibly asynchronous TFTP request is completed and the file is fully written to the device agent's filesystem

snapshot commands

useDigest

When this property exists, indicates that the device, during a new operating system image file verification, has calculated and emitted the new file's MD5 checksum, which the system can use to compare against the MD5 checksum it calculated for the file residing in the device agent

verify image

Back to top

Conditional expressions

When developing the logic to execute commands or requests on a device, you might need to perform conditional processing. For example, the <condition> element allows you to check if some state is present and execute its inner elements only when true; the inner elements are skipped otherwise. The syntax for a conditional expression supports many types of checks and comparisons and is a little language of its own. The following describes the language in detail. It can be used in the following elements:

  • <condition test="expression">
  • <assert test="expression">
  • <break condition="expression">
  • <loop condition="expression">

An expression is made up of boolean tests on string values (either a literal value or a keyword), where two operands are combined with an operator, with one or more spaces before and after the operator. The result of the test is either true or false. The expression is made up of the following clauses, which can be grouped using parentheses (to indicate precedence and to ensure correct evaluation):

Clause

Description

c1 -AND- c2

Logical AND of the two boolean conditions (true if both conditions are true)

v1 -CONTAINS- v2

Tests whether the string value v2 is contained within the string value v1

v1 -EQ- v2

The strings on the left and the right have the same value

-EXISTS- p1

The property by the name following the operator exists; the syntax here requires the use of only the property name (not a keyword with percent signs); for example, -EXISTS- cmd.myPropertyName

v1 -GE- v2

v1 is greater than or equal to v2

v1 -GT- v2

v1 is greater than v2

v1 -LE- v2

v1 is less than or equal to v2

v1 -LT- v2

v1 is less than v2

-NOT- c1

The logical reverse of the expression (true flips to false, and false flips to true)

c1 -OR- c2

Logical OR of the two boolean conditions (true if either or both conditions are true)

c1 -XOR- c2

Logical exclusive OR of the two boolean conditions (true if one condition is true, but not both)

The order of precedence must be specified by using parentheses, as shown in the following example:

(-NOT- (-EXISTS- property1)) -OR- (%property2% -EQ- valueA) -OR- (%property3% -GT- valueB)

When string inequality comparisons are evaluated, if both values involved start with numeric digits, the algorithm attempts to perform a numeric rather than a string-based comparison. Numeric comparisons can have embedded decimals. For example, “1.1.10 -GT- 1.1.9" evaluates to true.

Typing is implicit. It cannot be declared explicitly. It is usually helpful to think of all values as text strings, especially when keywords are involved, plugging in varying values. Keep in mind that numeric values are supported and are compared in the natural way.

Arithmetic expressions

Certain numeric values in the XML syntax support the use of an arithmetic expression, where you can calculate a value from hard-coded numbers or keywords. This is an expression whose result is a number (versus the preceding conditional expression, whose result is a boolean true or false).

Arithmetic expressions are supported in the following XML elements:

  • <interaction reconnectTimeoutSeconds="expression">
  • <httpInteraction reconnectTimeoutSeconds="expression">
  • <interaction timeoutSeconds="expression">
  • <httpInteraction timeoutSeconds="expression">

An arithmetic expression is made up of two decimal digit operands with an operator in between, with one or more spaces before and after the operator. The following arithmetic expressions are supported. They can be combined using parentheses to ensure accurate evaluation.

Clause

Description

n1 -PLUS- n2

Adds the values of n1 and n2

n1 -MINUS- n2

Subtracts n2 from n1

n1 -MULT- n2

Multiplies n1 by n2

n1 -DIV- n2

Divides n1 by n2

n1 -MOD- n2

Remainder after dividing n1 by n2

Back to top

Regular expressions

Java-style regular expression syntax (also known as regex syntax) is supported in numerous device adapter elements and attributes. A regex specifies a pattern for matching strings. The following table provides summary of commonly-used syntax. You can find the complete information in the javadoc page for the java.util.regex.Pattern class available from Oracle. 

Character(s)

Description

Meaning

^

caret

Matches the start of the line

$

dollar sign

Matches the end of the line

.

dot

Matches a single character

.*

dot followed by asterisk

Matches any number of any character; the dot means any character and the asterisk means any number of them

.+

dot followed by plus sign

Matches one or more of any character; the dot means any character and the plus sign means one or more

\s

backslash followed by lowercase letter s

Matches any single whitespace character

\s*

backslash followed by lowercase letter s followed by asterisk

Matches any number of whitespace characters, including none

\S

backslash followed by uppercase letter S

Matches any single non-whitespace character

\S+

backslash followed by uppercase letter S followed by plus sign

Matches one or more non-whitespace characters

\d

backslash followed by lowercase letter d

Matches a single decimal digit

\d+

backslash followed by lowercase letter d followed by plus sign

Matches one or more decimal digits

\

backslash

Escapes a regex metacharacter

For example: \$ looks for a literal dollar sign; \. looks for a literal dot

(\S+)

left parenthesis, followed by backslash, followed by uppercase letter S, followed by right parenthesis

Matches one or more non-whitespace characters, creating a capture group to extract the text that matched (which can be referred to by number and substituted in elsewhere)

(abc|def|ghi)

left and right parentheses around strings to match separated by bar

Matches one of the enclosed strings – either abc, def, or ghi

Note that this also defines a capture group which may or may not be desirable depending on the context; make this a non-capturing group by adding ?: after the left parenthesis: (?:abc|def|ghi)

Regular expressions can be used in the following XML elements and attributes in those elements:

Tag

Supported in value?

Attributes

<blockSearch>

yes for <commandPattern> element

yes for <searchPattern> element

 

<capture>

no

buffer

<commentBlocks>

yes for <begin> elements

yes for <end> elements

yes for <include> elements

yes for <exclude> elements

yes for <mask> elements

 

<commentLines>

yes for <line> elements

 

<contextDefiner>

yes for <command> element

yes for <parentBlock> element

 

<error>

yes

 

<imageArchiveFilename>

yes

 

<prompt>

yes

 

<response>

yes

 

<sensitiveLines>

yes for <line> elements

 

<sortedCommand>

yes for <line> elements

parentBlockPattern

<sortedParameter>

yes for <command> element

 

<syntaxScanInteraction>

yes for <ignoredLine> element

 

<syntaxError>

yes

 

Back to top

Syntax not to be used

If you examine a factory-installed device adapter, one of your older custom adapters, or the DeviceTypeMap.xsd schema file, you might notice elements and attributes that are not documented elsewhere in this topic or related topics. You should not use these elements in your own adapters. The syntax may be obsolete, or may be intended for internal BMC use only. Obsolete elements can still be present and are considered valid, but the setting is ignored. The following table describes such elements:

Element/Attribute

Status

Explanation

<id>

internal use

Before BMC Network Automation used GUIDs to identify adapters, it used simple numeric IDs, which were not used anymore when device adapters were made more user-extensible.

<supportsSsh1Access>

obsolete as of 8.3.00

BMC Network Automation has dropped support for SSH protocol version 1.

<supportsPrivPassword>

obsolete as of 8.7.00.001

Indicated that device had a privileged mode; dropped when such information became unnecessary.

<rebootsAfterLoad>

obsolete as of 8.7.00.001

Indicated that deploy of an operating system image automatically rebooted; dropped when such information became unnecessary.

<supportsDiskImageLoad>

obsolete as of 8.2.00

Indicated that a file system was available for image deployment; replaced with <supportedFileSystems>.

<supportsPCMCIAFlashCardImageLoad>

obsolete as of 8.2.00

Indicated that a file system was available for image deployment; replaced with <supportedFileSystems>.

<containerVlbClassName>

obsolete as of 8.1.04

Indicated a virtual load balancer Java class name for CLM container management; dropped when such information became unnecessary.

<javaDeviceCommand>
<javaCall>

internal use

Used to implement a custom protocol to a device, where Java code development is required, which is not user-extensible.

key="some.property.name"

internal use

Used internally for name and message localization (into the local language), where values are extracted from a properties file that you cannot change and should not use. If you copy/paste an element from a factory-installed adapter with a key attribute, you should delete the key attribute and enter a value for the element in your local language.

For example, if a factory-installed adapter has:

<name key="trailName.someTrailIdString"/>

When you copy this to your own adapter, replace it with:

<name>My Own Trail Name</name>

Back to top

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*