Skip navigation links

Package org.lsst.ccs.localdb.configdb.model

Package class diagram package org.lsst.ccs.localdb.configdb.model
Overview

See: Description

Package org.lsst.ccs.localdb.configdb.model Description

Overview

The org.lsst.ccs.config package deals with configuration data. Data used to fire subsystems and modules may be modified for testing purposes or to run the code in specific conditions.

This data is registered to a database so it can be queried to run a worker subsystem and to know about any parameter value which was used at a given moment in time.

This means that the database registers configuration data and worker subsystem executions (An agent on the buses listens to subsystem start and end operations and must know which configuration set was used).

Data describing a subsystem and its configuration is split in two parts:

Other Objects are stored in the database : Since historical data is important to know what happened the deprecated descriptions and configurations are kept in the database. Each deprecated Data is described by a different class with slightly different properties.
Important note: objects that are "alive" and objects that are "in history" should be recorded in different database tables. This pattern is important for databse management. There are right now two exceptions (that may need to modify the code)

So , due to this dual vision ("alive" and "in history"), each description or configuration is known by client codes through abstract classes and there are different actual (package friendly) subclasses to describe objects that are "alive" and object that are deprecated.
Thus :

The reason for the presence of "ghost" objects if this: All these objects are immutable once registered in the database (except date for ghost objects, and list of values in ConfigurationParameterValue objects handled during engineering mode) The handling of complex strategies on top of the database is made through a ConfigurationFacade Object. But this is still a rather low level methods collection.
So client codes are encouraged to use higher level codes that deal only with abstract classes:
A Collection of codes that can be used to start a subsystem can be found in the org.lsst.ccs.startup package: some use purely local data, some use a remote configuration service.

Implementation of Configuration server can be found in org.lsst.ccs.config.remote package.

Skip navigation links

Copyright © 2020 LSST. All rights reserved.