# Server Types

To document

### Enroll callback Tasks

Muppy permet de personnaliser le processus d' enrôlement des Hosts à l'aide de Task d'un type particulier nommé **Enroll Callback Task.**

Ces callbacks sont appelées a différents step du process d'enrôlement et permettent d'ajuster la configuration système des Hosts:

* Modification des partitions et points montages
* Modifications des limites systèmes

Les **Enroll Callback Task** ont une signature particulière, un paramètre **step** permet d'indiquer à quelle étape du processus d' enrôlement elles sont invoquées.

### Exemple de Enroll Callback Task

```python
@fabric_task()
def template_enroll_callback_task(
        cnx, host_obj,
        step:str,
        _imq_logger=None
    ):
    """ Template Enroll callback task
    :param step: The step whose end triggered this task:
       any of 'begin', 'apt_update_upgrade', 'install_mpy_required_packages', 
       'ufw_configure', 'collect_facts' and 'reboot'.
    :returns: any (not used)
    
    Database Environment is flushed and commited at Task end so you don't need 
    to do it.
    
    """
    odoo_env = host_obj.env
    _commit = odoo_env.cr.commit
    _task_logger = _imq_logger or _logger
    _task_logger.info("Processing Enrollment step '%s' on  host:'%s'.", step, host_obj)
    # ...
    return True

```

### Mise en oeuvre

Les **Enroll Callback Task** sont définies dans le Server Type et invoqués lors de l'exécution du de l'enrôlement.
