Distributed Service Management Toolkit
An open platform for managing
planetary-scale services.

Home

Documentation
  DSMT HowTo
  DSMT Overview
  DSMTC Reference
  RPMGEN

Publications
  ICAC2005 Paper
  PlanetLab Presentation

Services
  Managed slices
  Services
  Channels

Support

Download

DSMT Documentation: printable format

org.dsmt.component.deployment-agent: Deployment agent loader

Part of DSMT. This is the component that runs on the sliver and installs the application and reports on the installation status.

Functional Group: Installation Control

The deployment-agent controls the installation and operation of the application. It receives commands and operates on the application. These commands are received on the slice command channel and, based on their contents, the operation is preformed.

The deployment agent uses yum for managing the installation of requested application.

  • APPCONFIG command executes "yum -y install dsmtw_APPNAME"
  • UNINSTALL command executes "yum -y remove APPNAME".
  • UPDATE command executes "yum -y update APPNAME".
  • START/STOP commands execute the script created by dsmtw_ rpm.

The yum commands enlisted above act on the rpm files generated by rpmgen.

When rpmgen is executed with a tarball as argument, the tool first creates an rpm of the form <appname>-<version>-<build>.i386.rpm, and then creates a rpm wrapper - dsmtw_<appname>-<version>-<build>.i386.rpm. When rpmgen is executed with an rpm as argument, then it only creates the dsmtw_ wrapper. The dsmtw_ rpm is created with a dependency on the <appname>.rpm. The function of dsmtw_ rpm is to create a helper script for the deployment agent. This script will be used for starting , stopping and checking on the availability of the installed application.

Channel: /org/dsmt/ns/deployment/$sliceName/org.dsmt.component.deployment-agent/command/

Listens:

Event:
Service: $sliceName_mgr
Payload type: xmlns:pl="http://psepr.org/xs/payload/attribute"
payload field value of field description
field status Fixed value of "status".
value A comma separated list of attributes of the form:
COMMAND,HOSTNAME,APPNAME,PROCNAME
Where,

COMMAND can be any of the following:

  • "APPCONFIG": Triggers the installation of APPNAME.
  • "UNINSTALL": removes APPNAME.
  • "UPDATE": updates APPNAME.
  • "START": starts APPNAME (if the start script has been provided to rpmgen ).
  • "STOP": stops APPNAME (if the stop script has been provided to rpmgen ).

HOSTNAME defines the target machine for the given command.

APPNAME defines the canonical name of the application affected by this command.

PROCNAME defines the process name of the given APPNAME. This process name can be used for monitoring the current status of the application.

Functional Group: Progress

The component outputs installation progress information. As the installation progresses, the various installation states are reported. The states are:

  • undefined: unknown state
  • requested: installation has been requested
  • initiated: installation is stated and progressing
  • instantiated: installation is complete
  • running: monitored application is running
  • failed: monitored application has failed
  • terminated: termination has been requested and is progressing

Channel: /org/dsmt/ns/deployment/$sliceName/org.dsmt.component.deployment-agent/status/

Generates:

Event:
Service: $sliceName_mgr
Payload type: xmlns:pl="http://psepr.org/xs/payload/attribute"
payload field value of field description
field deployment-status Fixed value of "deployment-status".
value A comma separated list of attribute value pairs. The required pairs are:
  • hostname=HOSTNAME
  • component=org.dsmt.component.deployment-agent
  • slice=SLICENAME
  • state=STATE
  • managed=MANAGEDCOMPONENT
  • emit-rate=EMITSECONDS
where STATE is one of:
  • requested
  • instantiated
  • initalized
  • running
  • failed
  • terminated
  • undefined
and MANAGEDCOMPONENT is the name of the module going through the specified state which, for the deployment-agent, is the application.

The deployment-agent periodically outputs this status information and EMITSECONDS is the number of seconds between emissions.


Revision History

1.4 2005-05-23 Robert Adams Added trailing slash to channel name
1.3 2005-05-12 Robert Adams Added 'emit-rate attribute/value. Changed state 'filed' to 'failed'.
1.2 2005-05-11 Robert Adams Corrected component name and managed component information in the value.
1.1 2005-05-09 Robert Adams Added 'Installation control' functional group and added documentation for same.
1.0 2005-04-27 Robert Adams Robert.Adams@intel.com Initial version

Last modified 1189654470
Copyright 2008, Robert Adams. All rights reserved. License and copyright information.