Previous Topic: Application Descriptor Language (ADL) OverviewNext Topic: Overview


Component Descriptor Syntax

This section contains the following topics:

Overview

Volume Entity

Resource Entity

Input and Output Entities

Interface Entity

Property Entity

cfgfiles Entity

Virtualization Entity

kernel, os_info Entity

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').
In the absence of this attribute, .migrateable=1 is assumed by default. This is unlike most other Boolean attributes defined in ADL - they usually default to 0.

.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.