The component descriptor contains one component entity, defining either a singleton component or an instantiable class of components. There is no difference between the definition of a singleton and a class, except that instantiable classes are required to reside in a library of components referred to as a catalog. Also, either type of component can be used in an assembly, but a singleton can appear only once in the structure of an application, while an instantiable component can be used multiple times.
Below are two examples of the component descriptor structure; the first example is the current standard form, the second example shows the old format of the boot information specification. The old format is fully supported for compatibility with existing catalog appliances.
component name
{
volume sname : dev= pathname [, mount= pathname][, ro] [, high_bw]
resource cpu : min= val , max= val
resource mem : min= val , max= val , abs= val
resource bw : min= val , max= val
(input|output) sname : protocol= name [, mandatory ][, alias = dnsname ]
interface sname
property sname : type=(string|integer|ip_addr) [, filter= regexp ] \
[,min= val ,max= val ] [, (mandatory| dflt= val) ]
property sname : type=(string|integer) [, values= v1|v2|v3... ] \
[, (mandatory| dflt= val ) ]
.config_mode=(dhcp|volfix)
virtualization: modes="[xen_pv][,xen_hvm][,vmware][,...]"
{
path = filename
initrd = filename
options = " string "
console = " string "
device_schema = " string "
}
visual
{
...
}
}
component name
{
volume sname : dev= pathname, [, ro] [, high_bw]
resource cpu : min= val , max= val
resource mem : min= val , max= val , abs= val
resource bw : min= val , max= val
(input|output) sname : protocol= name = [, mandatory][, alias = dnsname =]
interface sname
property sname : type=(string|integer|ip_addr) [, filter= regexp ] \
[,min= val ,max= val ] [, (mandatory| dflt= val) ]
property sname : type=(string|integer) [, values= v1|v2|v3... ] \
[, (mandatory| dflt= val ) ]
cfgfiles
[
vol= sname , path= filename
vol= sname , path= filename
...
]
kernel: path= filename [, initrd = filename ] [, options = " string" ]
visual
{
...
}
}
The component entity has the following attributes defined:
|
.migrateable |
If set, it allows the component to be moved from one CPU to another (provided that the component is running in a virtual machine and there is VM migration support). There is no need to specify this attribute in a component - the default, if not specified, is 1 (TRUE). This is a Boolean attribute (valid values: 0,no,false,1,yes,true; also may be specified inline without value at all, meaning '1'). |
|
.server |
If .migrateable is set to 0, defines the name of the server on which this component is to run. This attribute, with the .migrateable attribute are usually set from an outer assembly, not in the component descriptor itself. The compiler will display a warning if this attribute is set in the component. |
|
.standby |
If set, this means the component is not started automatically when the application is started. The .standby attribute is not meant to be set in a component descriptor directly. Typically, it is set from an assembly that contains the component or re-directed to the top-level assembly of an application to allow enabling/disabling parts of the application by modifying the application's properties (stored in the top assembly - see the Package Descriptor). This is a Boolean attribute. |
|
.boot_tout |
Boot timeout, in seconds. If specified and set to a non-zero value, indicates the amount of time the application controller is to wait for the component to become active before assuming that it has failed to start. If this attribute is omitted or is set to zero, a default value that is configured for the CA AppLogic® controller is used. |
|
.os_type |
obsolete This attribute should not be used in newly created descriptors. See the virtualization entity description instead. .os_type specifies the OS that this component uses. This information is necessary for support of multiple OS types running in virtual machines. The value provided is not interpreted by the ADL build system; together with the data in 'kernel' entity described below it is intended to be passed along to the VM boot loader. If not specified, 'linux' is assumed. |
|
.config_mode |
Specifies how the component should be configured. The allowed values are: dhcp and volfix. The default is dhcp. This attribute should be used explicitly only for backward compatibility, if the volfix functionality should be retained for a given component. This attribute is ignored and the mode is set to volfix if the descriptor does not have the virtualization entity. This is to allow old descriptors (which belong to components that rely on volfix and do not support the dhcp configuration) to work without modification. |
|
.field_opt |
A bitmask of options for enabling various debugging and troubleshooting support. This attribute does not follow the normal rules for overriding property values from an assembly, which apply to all other pre-defined attributes - the .field_opt value specified for a component is kept as class field options, while any setting of the same attribute for an instance of the component in an assembly is kept as instance field options. |
|
.category |
An arbitrary string that defines the general category to which the component belongs. It is allowed by the ADL syntax, but is not interpreted in any way. It is intended for use by the CA AppLogic® visual tools to organize components in component libraries (catalogs). |
|
.description |
A short description of the component. Similarly to .category , the value of this attribute is arbitrary and intended for documentation purposes only. |
|
.console |
OS System console configuration parameters. The format of this string is not part of ADL, the currently supported console parameters are defined in the Grid User Guide. If ".console" is not specified for a component, CA AppLogic® uses a system-default configuration setting. Unless overridden manually by a user with administrator privileges, the system default setting defines the component's console to be ssh on port 22. |
All component attributes are optional and need not be present in the descriptor.
All the attributes are also valid properties of the component, which can be overridden in an assembly that contains the component.
Note: The attribute names are prefixed with a dot to avoid name conflicts with regular properties. See the property entity below.
The table below is a summary of the valid sub-entities in a component, followed by sections that explain each sub-entity in detail.
|
volume |
Defines a volume that contains a file system used by the component. At least one volume entity must appear in each component. |
|
resource |
Defines the requirements of the component toward the hardware resources that must be made available for it to run. |
|
input, output |
Define terminals of the component, which are network interfaces intended for connection with other components in the same application. |
|
interface |
Used to enable and configure network interfaces that are not meant for connecting to other components (as the input and output terminals are) |
|
property |
Defines a configurable property of the component. |
|
cfgfiles |
Defines a list of configuration files that need to be verified for property markup and updated accordingly. |
|
kernel |
obsolete - Use virtualization instead. This entity contains OS-specific boot information, its contents depend on the value of the .os_type attribute of the component. |
|
virtualization |
Defines the virtual environment for which the component is designed and contains boot-specific options to be provided to the component's boot loader. The 'mode' field is still supported for backward compatibility with older descriptor files. |
|
visual |
Visual presentation data. ADL does not define the contents of this entity. It is intended for a GUI editor to store information related to how the component displays in the editor window. For example, the color, icon shape, and layout of terminals. The contents of this entity must conform to the general syntax rules of UDL, which were presented in the Syntax Rules that Apply to All Descriptor Types section. Also, for additional details, refer to the UDL specification. |
|
Copyright © 2012 CA.
All rights reserved.
|
|