Layout and Setup

Note

Introduction to the Model Description Setup

Model Description is a collection of YAML files within one directory that may contain sub-directories.

Important

Layout requirements:

  1. Should be a subdirectory

  2. Should contain model.cfg in the root of it.

Essentially, a directory with a file model.cfg is the root of the model. All other directories, filenames and their placement is completely free. At the end, model will be scanned and merged into one YAML tree and then processed accordingly.

Example:

my_model/
        |
        +-- model.cfg
        |
        +-- actions/
        |          |
        |          +-- network-actions.cfg
        |          |
        |          +-- disk-actions.cfg
        |
        +-- constraints.cfg
        |
        +-- entities.cfg

The most important here is model.cfg, which is equivalent to index.html in a static website.

Model.cfg

Model description index file has the following structure:

name: My Great Model
version: "0.1"
description: |
    This is a description of this model
    that gives you more idea what it is etc.
maintainer: John Smith <john.smith@example.com>
checkbook: null
config: null

The following fields are supported:

name

Name of the model.

version

Model version.

description

Multi-line model description.

maintainer

Model maintainer (name, email)

config

Global configuration section. It is applied to the whole session, globally. However different model can have a different configuration.

checkbook

Checkbook is a list of sections that groups relations those needs to be checked. An example:

checkbook:
  my_label:
    - relation-one
    - relation-two

  my_other_label:
    - relation-one
    - relation-three

In this case user can call my_label and SysInspect will only go through relations, grouped inside that section, leaving all other untouched. If checkbook is omitted, then all relations will be examined, one after another.