Actors
======
.. raw:: html
.. _actor-fact-checker:
Fact Checker
------------
.. image:: factchecker.png
:height: 100px
The Fact Checker is responsible for getting the facts about a system. It produces a :ref:`document-fact`.
.. _actor-prescriber:
Prescriber
----------
.. image:: prescriber.png
:height: 100px
XXX to be defined
.. _actor-inspector:
Inspector
---------
.. image:: inspector.png
:height: 100px
:align: left
The Inspector inspects the current state of resources.
It accepts an :ref:`document-identity` and returns an :ref:`document-observation` conforming to the schema for the given resource type.
For example, to inspect the state of the file ``/tmp/foo`` pass this document to the appropriate inspector:
.. code-block:: javascript
{
"kind": "file",
"name": "/tmp/foo"
}
The inspector will return a document conforming to the :ref:`file-observation-schema`:
.. code-block:: javascript
{
"kind": "file",
"name": "/tmp/foo",
"exists": true,
"size": 3493,
"sha": "c30a7f7531c41ec102fb5510d58166b502f68437",
"user": "foo",
"group": "bar",
...
}
.. _actor-choreographer:
Choreographer
-------------
.. image:: choreographer.png
:height: 100px
Takes the facts, prescription, observed state and lays out the steps.
.. _actor-performer:
Performer
---------
.. image:: performer.png
:height: 100px
:align: left
The Performer makes necessary changes to a machine in order to conform to a prescribed state.
It accepts a :ref:`document-prescription` and XXX what it returns is currently undefined.
For example, you might give it this prescription to ensure that the file at ``/tmp/foo`` exists and has attributes described:
.. code-block:: javascript
{
"kind": "file",
"name": "/tmp/foo",
"exists": true,
"user": "jim",
"group": "jimsgroup",
"content": "This is the content of the file"
}
.. _actor-historian:
Historian
---------
.. image:: historian.png
:height: 100px
Collects logs and things.