Saltar a contenido

cla/reg - Manipulación del registro

El registro Clarive sostiene los puntos de extensión en muchas partes del el sistema, tanto el cliente como el servidor.

Estas funciones son sobretodo útiles en init/, puntos de entrada de plug-in para registrar cosas como las operaciones de la paleta (servicios), las entradas de menú, eventos y demás.

cla.register()

Crea una entrada de registro en Clarive.

En el siguiente ejemplo, se crea una nueva entrada en el menú.

var reg = require('cla/reg');
reg.register('menu.admin.test',{ name: 'Test Menu', url: '/comp/testmenu.js' });

cla.launch(clave,opcs)

Lanza un servicio de registro.

var reg = require('cla/reg');
reg.register('service.test',{
    name: 'Foo Service',
    handler: function(){ return 99 }
});

reg.launch('service.test', { name: 'just trying this out', config: { foo: 'bar' } });

Opciones:

  • config - Un objeto de configuración que se enviará al controlador.
  • name - Informa el nombre de la operación para que quede la información de registro es más descriptivo.
  • dataKey - Informa el nombre de la operación para que quede la información capturada en el log sea más descriptiva.
  • stash - Un stash alternativo; por defecto es el stash actual.

Ejemplos de ejecución de servicios.

Para realizar la ejecución de servicios dentro de los plugins, es necesario conocer las variables que se le deben pasar para el correcto funcionamiento del mismo.

Cualquier elemento de la paleta puede ser invocado desde un plugin, y de este modo tenerlo todo de una forma más compacta.

Algunos de los elementos a los que se puede invocar son: Lanzamiento de scripts remotos, envío de archivos por SSH, creación de tópicos, etc...

A continuación, se ponen algunos ejemplos de elementos de la paleta para invocar y las variables necesarias para estos. No todas las variables son siempre necesarias, pero se exponen todas las que son posibles de utilizar.

Ejecución de comandos remotos (service.scripting.remote)

Este servicio es el encargado de realizar ejecuciones de comandos de manera remota.

reg.launch('service.scripting.remote', {
    name: 'Remote launch', // Nombre de la tarea a ejecutar
    config: {
        errors: 'fail', // Tipo de errores que se van a controlar
        server: '1234', // ID del servidor en el que se va a ejecutar
        user: 'clarive', // Usuario para conectar al servidor
        path: 'ls -l', // Comando que se quiere lanzar
        output_error: '', // Expresiones regulares para el control de errores
        output_warn: '', // Expresiones regulares para el control de errores
        output_capture: '', // Expresiones regulares para el control de errores
        output_ok: '', // Expresiones regulares para el control de errores
        meta: {foor: bar}, // Los metadatos del servicio donde se ejecuta
        rc_ok: '200', // Codigo de rc Ok para control de errores
        rc_error: '404', // Codigo de rc Error para control de errores
        rc_warn: '302' // Codigo de rc Warn para control de errores
    }
});

Envío de archivos remoto (service.fileman.ship)

Servicio encargado de realizar el envío de archivos remotamente a otro servidor.

reg.launch('service.fileman.ship', {
    name: 'Remote ship', // Nombre de la tarea a ejecutar
    config: {
        server: '1234', // ID del servidor al que se quiere enviar el archivo
        user: 'clarive', // Usuario para conectar al servidor
        recursive: "0", // Realizar la operación de manera recursiva o no
        local_mode: "local_files", // Modo de envío de archivos locales
        local_path: "Home/", // Ruta al archivo que se quiere enviar
        remote_path: "tmp/", // Directorio del servidor remoto donde quieres enviar el archivo
        exist_mode_local: "skip", // Modo de actuación ante archivos que no encuentre
        rel_path: "file_only", // Modo de envio, solo de archivos, o manteniendo la ruta del job
        exist_mode: "reship", // Modo de actuación ante archivos ya enviados por el job
        backup_mode: "none", // Modo de backup de archivos
        rollback_mode: "none", // Modo de rollback
        track_mode: "none", // Modo de seguimiento de archivos
        audit_tracked: "none", // Modo de auditoria de archivos
        chown: "", // Permisos de chown
        chmod: "", // Permisos de chmod
        max_transfer_chunk_size: "", // Tamaño máximo de transferencia
        copy_attrs: "0" // Copiar atributos de los archivos
    }
});

Cambio de estado de tópicos (service.topic.change_status)

Servicio empleado para cambiar el estado de los tópicos en Clarive.

reg.launch('service.topic.change_status', {
    name: 'Change topic status', // Nombre de la tarea a ejecutar
    config: {
        topics: '123', // ID del tópico que se quiere cambiar
        old_status: '3', // ID del estado del que se parte en el tópico
        new_status: '4', // ID del nuevo estado que se le quiere asignar al tópico
        username: 'clarive' // Usuario al que se le asigna el cambio de estado
    }
});

Creación de tópicos ('service.topic.create')

Servicio empleado para la creación de tópicos en Clarive.

reg.launch('service.topic.create', {
    name: 'Create topic', // Nombre de la tarea a ejecutar
    config: {
        title: 'Topic title', // Título del tópico que se va a crear
        category: '34', // ID de la categoría a la que pertenece el tópico
        status: '3', // ID del estado inicial en el que se crea
        username: 'clarive', // Usuario al que se le asigna la creación del tópico
        variables: {desc: 'hello'} // Las distintas variables o campos que tenga el tópico que se va a crear
    }
});

Actualización de tópicos ('service.topic.update')

Servicio empleado para la actualización del contenido de tópicos en Clarive.

reg.launch('service.topic.update', {
    name: 'Update topic', // Nombre de la tarea a ejecutar
    config: {
        mid: '123', // ID del tópico que se quiere cambiar
        username: 'clarive', // Usuario al que se le asigna la creación del tópico
        variables: {desc: 'hello'} // Las distintas variables o campos que tenga el tópico que se va a actualizar
    }
});

Borrado de tópicos ('service.topic.delete')

Servicio empleado para el borrado de tópicos en Clarive.

reg.launch('service.topic.delete', {
    name: 'Delete topic', // Nombre de la tarea a ejecutar
    config: {
        topics: '123', // ID del tópico que se quiere cambiar
        username: 'clarive' // Usuario al que se le asigna la creación del tópico
    }
});